{"version":3,"file":"opTree.js","mappings":"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CL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,c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AK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,MAAO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","sources":["webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\assert.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\internal\\assert\\assertion_error.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\internal\\errors.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\assert\\build\\internal\\util\\comparisons.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\modules\\charts_ops\\op_tree.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\modules\\css.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\modules\\fontawesome\\css\\fontawesome.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-html\\directive.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-html\\directives\\class-map.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\src\\utils.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\base64-js\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\buffer\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\call-bind\\callBound.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\call-bind\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\console-browserify\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\define-properties\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\es6-object-assign\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\for-each\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\function-bind\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\function-bind\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\get-intrinsic\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\gopd\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-property-descriptors\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-proto\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-symbols\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-symbols\\shams.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has-tostringtag\\shams.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\has\\src\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\highcharts\\highcharts.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\highcharts\\modules\\heatmap.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\highcharts\\modules\\treemap.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\ieee754\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\inherits\\inherits_browser.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-arguments\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-callable\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-generator-function\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\polyfill.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-nan\\shim.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\is-typed-array\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\polyfill.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-is\\shim.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-keys\\implementation.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-keys\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\object-keys\\isArguments.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\process\\browser.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\util\\support\\isBufferBrowser.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\util\\support\\types.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\util\\util.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\which-typed-array\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\available-typed-arrays\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\decorators\\query-assigned-elements.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\css-tag.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\reactive-element.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-element\\index.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-element\\lit-element.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\lit-html\\lit-html.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\@lit\\reactive-element\\decorators\\custom-element.js","webpack://anaptyxi2027/d:\\source\\repos\\Anaptyxi2027\\node_modules\\xlsx\\xlsx.mjs"],"sourcesContent":["// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n    _require$codes = _require.codes,\n    ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n    ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n    ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n    ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n    ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n    inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n    isPromise = _require$types.isPromise,\n    isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n  var comparison = require('./internal/util/comparisons');\n\n  isDeepEqual = comparison.isDeepEqual;\n  isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n  return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n  if (obj.message instanceof Error) throw obj.message;\n  throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n  var argsLen = arguments.length;\n  var internalMessage;\n\n  if (argsLen === 0) {\n    internalMessage = 'Failed';\n  } else if (argsLen === 1) {\n    message = actual;\n    actual = undefined;\n  } else {\n    if (warned === false) {\n      warned = true;\n      var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n      warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n    }\n\n    if (argsLen === 2) operator = '!=';\n  }\n\n  if (message instanceof Error) throw message;\n  var errArgs = {\n    actual: actual,\n    expected: expected,\n    operator: operator === undefined ? 'fail' : operator,\n    stackStartFn: stackStartFn || fail\n  };\n\n  if (message !== undefined) {\n    errArgs.message = message;\n  }\n\n  var err = new AssertionError(errArgs);\n\n  if (internalMessage) {\n    err.message = internalMessage;\n    err.generatedMessage = true;\n  }\n\n  throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n  if (!value) {\n    var generatedMessage = false;\n\n    if (argLen === 0) {\n      generatedMessage = true;\n      message = 'No value argument passed to `assert.ok()`';\n    } else if (message instanceof Error) {\n      throw message;\n    }\n\n    var err = new AssertionError({\n      actual: value,\n      expected: true,\n      message: message,\n      operator: '==',\n      stackStartFn: fn\n    });\n    err.generatedMessage = generatedMessage;\n    throw err;\n  }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  } // eslint-disable-next-line eqeqeq\n\n\n  if (actual != expected) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: '==',\n      stackStartFn: equal\n    });\n  }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  } // eslint-disable-next-line eqeqeq\n\n\n  if (actual == expected) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: '!=',\n      stackStartFn: notEqual\n    });\n  }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  }\n\n  if (isDeepEqual === undefined) lazyLoadComparison();\n\n  if (!isDeepEqual(actual, expected)) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: 'deepEqual',\n      stackStartFn: deepEqual\n    });\n  }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  }\n\n  if (isDeepEqual === undefined) lazyLoadComparison();\n\n  if (isDeepEqual(actual, expected)) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: 'notDeepEqual',\n      stackStartFn: notDeepEqual\n    });\n  }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  }\n\n  if (isDeepEqual === undefined) lazyLoadComparison();\n\n  if (!isDeepStrictEqual(actual, expected)) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: 'deepStrictEqual',\n      stackStartFn: deepStrictEqual\n    });\n  }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  }\n\n  if (isDeepEqual === undefined) lazyLoadComparison();\n\n  if (isDeepStrictEqual(actual, expected)) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: 'notDeepStrictEqual',\n      stackStartFn: notDeepStrictEqual\n    });\n  }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  }\n\n  if (!objectIs(actual, expected)) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: 'strictEqual',\n      stackStartFn: strictEqual\n    });\n  }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n  if (arguments.length < 2) {\n    throw new ERR_MISSING_ARGS('actual', 'expected');\n  }\n\n  if (objectIs(actual, expected)) {\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: 'notStrictEqual',\n      stackStartFn: notStrictEqual\n    });\n  }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n  var _this = this;\n\n  _classCallCheck(this, Comparison);\n\n  keys.forEach(function (key) {\n    if (key in obj) {\n      if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n        _this[key] = actual[key];\n      } else {\n        _this[key] = obj[key];\n      }\n    }\n  });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n  if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n    if (!message) {\n      // Create placeholder objects to create a nice output.\n      var a = new Comparison(actual, keys);\n      var b = new Comparison(expected, keys, actual);\n      var err = new AssertionError({\n        actual: a,\n        expected: b,\n        operator: 'deepStrictEqual',\n        stackStartFn: fn\n      });\n      err.actual = actual;\n      err.expected = expected;\n      err.operator = fn.name;\n      throw err;\n    }\n\n    innerFail({\n      actual: actual,\n      expected: expected,\n      message: message,\n      operator: fn.name,\n      stackStartFn: fn\n    });\n  }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n  if (typeof expected !== 'function') {\n    if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n    if (arguments.length === 2) {\n      throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n    } // Handle primitives properly.\n\n\n    if (_typeof(actual) !== 'object' || actual === null) {\n      var err = new AssertionError({\n        actual: actual,\n        expected: expected,\n        message: msg,\n        operator: 'deepStrictEqual',\n        stackStartFn: fn\n      });\n      err.operator = fn.name;\n      throw err;\n    }\n\n    var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n    // as well.\n\n    if (expected instanceof Error) {\n      keys.push('name', 'message');\n    } else if (keys.length === 0) {\n      throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n    }\n\n    if (isDeepEqual === undefined) lazyLoadComparison();\n    keys.forEach(function (key) {\n      if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n        return;\n      }\n\n      compareExceptionKey(actual, expected, key, msg, keys, fn);\n    });\n    return true;\n  } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n  if (expected.prototype !== undefined && actual instanceof expected) {\n    return true;\n  }\n\n  if (Error.isPrototypeOf(expected)) {\n    return false;\n  }\n\n  return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n  if (typeof fn !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n  }\n\n  try {\n    fn();\n  } catch (e) {\n    return e;\n  }\n\n  return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n  // Accept native ES6 promises and promises that are implemented in a similar\n  // way. Do not accept thenables that use a function as `obj` and that have no\n  // `catch` handler.\n  // TODO: thenables are checked up until they have the correct methods,\n  // but according to documentation, the `then` method should receive\n  // the `fulfill` and `reject` arguments as well or it may be never resolved.\n  return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n  return Promise.resolve().then(function () {\n    var resultPromise;\n\n    if (typeof promiseFn === 'function') {\n      // Return a rejected promise if `promiseFn` throws synchronously.\n      resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n      if (!checkIsPromise(resultPromise)) {\n        throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n      }\n    } else if (checkIsPromise(promiseFn)) {\n      resultPromise = promiseFn;\n    } else {\n      throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n    }\n\n    return Promise.resolve().then(function () {\n      return resultPromise;\n    }).then(function () {\n      return NO_EXCEPTION_SENTINEL;\n    }).catch(function (e) {\n      return e;\n    });\n  });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n  if (typeof error === 'string') {\n    if (arguments.length === 4) {\n      throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n    }\n\n    if (_typeof(actual) === 'object' && actual !== null) {\n      if (actual.message === error) {\n        throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n      }\n    } else if (actual === error) {\n      throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n    }\n\n    message = error;\n    error = undefined;\n  } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n  }\n\n  if (actual === NO_EXCEPTION_SENTINEL) {\n    var details = '';\n\n    if (error && error.name) {\n      details += \" (\".concat(error.name, \")\");\n    }\n\n    details += message ? \": \".concat(message) : '.';\n    var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n    innerFail({\n      actual: undefined,\n      expected: error,\n      operator: stackStartFn.name,\n      message: \"Missing expected \".concat(fnType).concat(details),\n      stackStartFn: stackStartFn\n    });\n  }\n\n  if (error && !expectedException(actual, error, message, stackStartFn)) {\n    throw actual;\n  }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n  if (actual === NO_EXCEPTION_SENTINEL) return;\n\n  if (typeof error === 'string') {\n    message = error;\n    error = undefined;\n  }\n\n  if (!error || expectedException(actual, error)) {\n    var details = message ? \": \".concat(message) : '.';\n    var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n    innerFail({\n      actual: actual,\n      expected: error,\n      operator: stackStartFn.name,\n      message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n      stackStartFn: stackStartFn\n    });\n  }\n\n  throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    args[_key2 - 1] = arguments[_key2];\n  }\n\n  expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n  for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n    args[_key3 - 1] = arguments[_key3];\n  }\n\n  return waitForActual(promiseFn).then(function (result) {\n    return expectsError.apply(void 0, [rejects, result].concat(args));\n  });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n  for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n    args[_key4 - 1] = arguments[_key4];\n  }\n\n  expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n  for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n    args[_key5 - 1] = arguments[_key5];\n  }\n\n  return waitForActual(fn).then(function (result) {\n    return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n  });\n};\n\nassert.ifError = function ifError(err) {\n  if (err !== null && err !== undefined) {\n    var message = 'ifError got unwanted exception: ';\n\n    if (_typeof(err) === 'object' && typeof err.message === 'string') {\n      if (err.message.length === 0 && err.constructor) {\n        message += err.constructor.name;\n      } else {\n        message += err.message;\n      }\n    } else {\n      message += inspect(err);\n    }\n\n    var newErr = new AssertionError({\n      actual: err,\n      expected: null,\n      operator: 'ifError',\n      message: message,\n      stackStartFn: ifError\n    }); // Make sure we actually have a stack trace!\n\n    var origStack = err.stack;\n\n    if (typeof origStack === 'string') {\n      // This will remove any duplicated frames from the error frames taken\n      // from within `ifError` and add the original error frames to the newly\n      // created ones.\n      var tmp2 = origStack.split('\\n');\n      tmp2.shift(); // Filter all frames existing in err.stack.\n\n      var tmp1 = newErr.stack.split('\\n');\n\n      for (var i = 0; i < tmp2.length; i++) {\n        // Find the first occurrence of the frame.\n        var pos = tmp1.indexOf(tmp2[i]);\n\n        if (pos !== -1) {\n          // Only keep new frames.\n          tmp1 = tmp1.slice(0, pos);\n          break;\n        }\n      }\n\n      newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n    }\n\n    throw newErr;\n  }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n    args[_key6] = arguments[_key6];\n  }\n\n  innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n  equal: assert.strictEqual,\n  deepEqual: assert.deepStrictEqual,\n  notEqual: assert.notStrictEqual,\n  notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n    inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n    ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n  count = Math.floor(count);\n  if (str.length == 0 || count == 0) return '';\n  var maxCount = str.length * count;\n  count = Math.floor(Math.log(count) / Math.log(2));\n\n  while (count) {\n    str += str;\n    count--;\n  }\n\n  str += str.substring(0, maxCount - str.length);\n  return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n  deepStrictEqual: 'Expected values to be strictly deep-equal:',\n  strictEqual: 'Expected values to be strictly equal:',\n  strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n  deepEqual: 'Expected values to be loosely deep-equal:',\n  equal: 'Expected values to be loosely equal:',\n  notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n  notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n  notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n  notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n  notEqual: 'Expected \"actual\" to be loosely unequal to:',\n  notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n  var keys = Object.keys(source);\n  var target = Object.create(Object.getPrototypeOf(source));\n  keys.forEach(function (key) {\n    target[key] = source[key];\n  });\n  Object.defineProperty(target, 'message', {\n    value: source.message\n  });\n  return target;\n}\n\nfunction inspectValue(val) {\n  // The util.inspect default values could be changed. This makes sure the\n  // error messages contain the necessary information nevertheless.\n  return inspect(val, {\n    compact: false,\n    customInspect: false,\n    depth: 1000,\n    maxArrayLength: Infinity,\n    // Assert compares only enumerable properties (with a few exceptions).\n    showHidden: false,\n    // Having a long line as error is better than wrapping the line for\n    // comparison for now.\n    // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n    // have meta information about the inspected properties (i.e., know where\n    // in what line the property starts and ends).\n    breakLength: Infinity,\n    // Assert does not detect proxies currently.\n    showProxy: false,\n    sorted: true,\n    // Inspect getters as we also check them when comparing entries.\n    getters: true\n  });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n  var other = '';\n  var res = '';\n  var lastPos = 0;\n  var end = '';\n  var skipped = false;\n  var actualInspected = inspectValue(actual);\n  var actualLines = actualInspected.split('\\n');\n  var expectedLines = inspectValue(expected).split('\\n');\n  var i = 0;\n  var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n  // for the `strictEqual` operator.\n\n  if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n    operator = 'strictEqualObject';\n  } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n  // equal, check further special handling.\n\n\n  if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n    var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n    // kMaxShortLength and if neither is an object and at least one of them is\n    // not `zero`, use the strict equal comparison to visualize the output.\n\n    if (inputLength <= kMaxShortLength) {\n      if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n        // -0 === +0\n        return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n      }\n    } else if (operator !== 'strictEqualObject') {\n      // If the stderr is a tty and the input length is lower than the current\n      // columns per line, add a mismatch indicator below the output. If it is\n      // not a tty, use a default value of 80 characters.\n      var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n      if (inputLength < maxLength) {\n        while (actualLines[0][i] === expectedLines[0][i]) {\n          i++;\n        } // Ignore the first characters.\n\n\n        if (i > 2) {\n          // Add position indicator for the first mismatch in case it is a\n          // single line and the input length is less than the column length.\n          indicator = \"\\n  \".concat(repeat(' ', i), \"^\");\n          i = 0;\n        }\n      }\n    }\n  } // Remove all ending lines that match (this optimizes the output for\n  // readability by reducing the number of total changed lines).\n\n\n  var a = actualLines[actualLines.length - 1];\n  var b = expectedLines[expectedLines.length - 1];\n\n  while (a === b) {\n    if (i++ < 2) {\n      end = \"\\n  \".concat(a).concat(end);\n    } else {\n      other = a;\n    }\n\n    actualLines.pop();\n    expectedLines.pop();\n    if (actualLines.length === 0 || expectedLines.length === 0) break;\n    a = actualLines[actualLines.length - 1];\n    b = expectedLines[expectedLines.length - 1];\n  }\n\n  var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n  // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n  if (maxLines === 0) {\n    // We have to get the result again. The lines were all removed before.\n    var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n    // TODO: Accept env to always show the full error.\n\n\n    if (_actualLines.length > 30) {\n      _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n      while (_actualLines.length > 27) {\n        _actualLines.pop();\n      }\n    }\n\n    return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n  }\n\n  if (i > 3) {\n    end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n    skipped = true;\n  }\n\n  if (other !== '') {\n    end = \"\\n  \".concat(other).concat(end);\n    other = '';\n  }\n\n  var printedLines = 0;\n  var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n  var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n  for (i = 0; i < maxLines; i++) {\n    // Only extra expected lines exist\n    var cur = i - lastPos;\n\n    if (actualLines.length < i + 1) {\n      // If the last diverging line is more than one line above and the\n      // current line is at least line three, add some of the former lines and\n      // also add dots to indicate skipped entries.\n      if (cur > 1 && i > 2) {\n        if (cur > 4) {\n          res += \"\\n\".concat(blue, \"...\").concat(white);\n          skipped = true;\n        } else if (cur > 3) {\n          res += \"\\n  \".concat(expectedLines[i - 2]);\n          printedLines++;\n        }\n\n        res += \"\\n  \".concat(expectedLines[i - 1]);\n        printedLines++;\n      } // Mark the current line as the last diverging one.\n\n\n      lastPos = i; // Add the expected line to the cache.\n\n      other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n      printedLines++; // Only extra actual lines exist\n    } else if (expectedLines.length < i + 1) {\n      // If the last diverging line is more than one line above and the\n      // current line is at least line three, add some of the former lines and\n      // also add dots to indicate skipped entries.\n      if (cur > 1 && i > 2) {\n        if (cur > 4) {\n          res += \"\\n\".concat(blue, \"...\").concat(white);\n          skipped = true;\n        } else if (cur > 3) {\n          res += \"\\n  \".concat(actualLines[i - 2]);\n          printedLines++;\n        }\n\n        res += \"\\n  \".concat(actualLines[i - 1]);\n        printedLines++;\n      } // Mark the current line as the last diverging one.\n\n\n      lastPos = i; // Add the actual line to the result.\n\n      res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n      printedLines++; // Lines diverge\n    } else {\n      var expectedLine = expectedLines[i];\n      var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n      // a trailing comma. In that case it is actually identical and we should\n      // mark it as such.\n\n      var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n      // add a comma at the end of the actual line. Otherwise the output could\n      // look weird as in:\n      //\n      //   [\n      //     1         // No comma at the end!\n      // +   2\n      //   ]\n      //\n\n      if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n        divergingLines = false;\n        actualLine += ',';\n      }\n\n      if (divergingLines) {\n        // If the last diverging line is more than one line above and the\n        // current line is at least line three, add some of the former lines and\n        // also add dots to indicate skipped entries.\n        if (cur > 1 && i > 2) {\n          if (cur > 4) {\n            res += \"\\n\".concat(blue, \"...\").concat(white);\n            skipped = true;\n          } else if (cur > 3) {\n            res += \"\\n  \".concat(actualLines[i - 2]);\n            printedLines++;\n          }\n\n          res += \"\\n  \".concat(actualLines[i - 1]);\n          printedLines++;\n        } // Mark the current line as the last diverging one.\n\n\n        lastPos = i; // Add the actual line to the result and cache the expected diverging\n        // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n        res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n        other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n        printedLines += 2; // Lines are identical\n      } else {\n        // Add all cached information to the result before adding other things\n        // and reset the cache.\n        res += other;\n        other = ''; // If the last diverging line is exactly one line above or if it is the\n        // very first line, add the line to the result.\n\n        if (cur === 1 || i === 0) {\n          res += \"\\n  \".concat(actualLine);\n          printedLines++;\n        }\n      }\n    } // Inspected object to big (Show ~20 rows max)\n\n\n    if (printedLines > 20 && i < maxLines - 2) {\n      return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n    }\n  }\n\n  return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n  _inherits(AssertionError, _Error);\n\n  function AssertionError(options) {\n    var _this;\n\n    _classCallCheck(this, AssertionError);\n\n    if (_typeof(options) !== 'object' || options === null) {\n      throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n    }\n\n    var message = options.message,\n        operator = options.operator,\n        stackStartFn = options.stackStartFn;\n    var actual = options.actual,\n        expected = options.expected;\n    var limit = Error.stackTraceLimit;\n    Error.stackTraceLimit = 0;\n\n    if (message != null) {\n      _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n    } else {\n      if (process.stderr && process.stderr.isTTY) {\n        // Reset on each call to make sure we handle dynamically set environment\n        // variables correct.\n        if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n          blue = \"\\x1B[34m\";\n          green = \"\\x1B[32m\";\n          white = \"\\x1B[39m\";\n          red = \"\\x1B[31m\";\n        } else {\n          blue = '';\n          green = '';\n          white = '';\n          red = '';\n        }\n      } // Prevent the error stack from being visible by duplicating the error\n      // in a very close way to the original in case both sides are actually\n      // instances of Error.\n\n\n      if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n        actual = copyError(actual);\n        expected = copyError(expected);\n      }\n\n      if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n      } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n        // In case the objects are equal but the operator requires unequal, show\n        // the first object and say A equals B\n        var base = kReadableOperator[operator];\n        var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n        if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n          base = kReadableOperator.notStrictEqualObject;\n        } // Only remove lines in case it makes sense to collapse those.\n        // TODO: Accept env to always show the full error.\n\n\n        if (res.length > 30) {\n          res[26] = \"\".concat(blue, \"...\").concat(white);\n\n          while (res.length > 27) {\n            res.pop();\n          }\n        } // Only print a single input.\n\n\n        if (res.length === 1) {\n          _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n        } else {\n          _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n        }\n      } else {\n        var _res = inspectValue(actual);\n\n        var other = '';\n        var knownOperators = kReadableOperator[operator];\n\n        if (operator === 'notDeepEqual' || operator === 'notEqual') {\n          _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n          if (_res.length > 1024) {\n            _res = \"\".concat(_res.slice(0, 1021), \"...\");\n          }\n        } else {\n          other = \"\".concat(inspectValue(expected));\n\n          if (_res.length > 512) {\n            _res = \"\".concat(_res.slice(0, 509), \"...\");\n          }\n\n          if (other.length > 512) {\n            other = \"\".concat(other.slice(0, 509), \"...\");\n          }\n\n          if (operator === 'deepEqual' || operator === 'equal') {\n            _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n          } else {\n            other = \" \".concat(operator, \" \").concat(other);\n          }\n        }\n\n        _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n      }\n    }\n\n    Error.stackTraceLimit = limit;\n    _this.generatedMessage = !message;\n    Object.defineProperty(_assertThisInitialized(_this), 'name', {\n      value: 'AssertionError [ERR_ASSERTION]',\n      enumerable: false,\n      writable: true,\n      configurable: true\n    });\n    _this.code = 'ERR_ASSERTION';\n    _this.actual = actual;\n    _this.expected = expected;\n    _this.operator = operator;\n\n    if (Error.captureStackTrace) {\n      // eslint-disable-next-line no-restricted-syntax\n      Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n    } // Create error message including the error code in the name.\n\n\n    _this.stack; // Reset the name.\n\n    _this.name = 'AssertionError';\n    return _possibleConstructorReturn(_this);\n  }\n\n  _createClass(AssertionError, [{\n    key: \"toString\",\n    value: function toString() {\n      return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n    }\n  }, {\n    key: inspect.custom,\n    value: function value(recurseTimes, ctx) {\n      // This limits the `actual` and `expected` property default inspection to\n      // the minimum depth. Otherwise those values would be too verbose compared\n      // to the actual error message which contains a combined view of these two\n      // input values.\n      return inspect(this, _objectSpread({}, ctx, {\n        customInspect: false,\n        depth: 0\n      }));\n    }\n  }]);\n\n  return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError =\n  /*#__PURE__*/\n  function (_Base) {\n    _inherits(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      var _this;\n\n      _classCallCheck(this, NodeError);\n\n      _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n      _this.code = code;\n      return _this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  if (assert === undefined) assert = require('../assert');\n  assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n  msg += \". Received type \".concat(_typeof(actual));\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n  var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n  if (util === undefined) util = require('util/');\n  var inspected = util.inspect(value);\n\n  if (inspected.length > 128) {\n    inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n  }\n\n  return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n  var type;\n\n  if (value && value.constructor && value.constructor.name) {\n    type = \"instance of \".concat(value.constructor.name);\n  } else {\n    type = \"type \".concat(_typeof(value));\n  }\n\n  return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  if (assert === undefined) assert = require('../assert');\n  assert(args.length > 0, 'At least one arg needs to be specified');\n  var msg = 'The ';\n  var len = args.length;\n  args = args.map(function (a) {\n    return \"\\\"\".concat(a, \"\\\"\");\n  });\n\n  switch (len) {\n    case 1:\n      msg += \"\".concat(args[0], \" argument\");\n      break;\n\n    case 2:\n      msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n      break;\n\n    default:\n      msg += args.slice(0, len - 1).join(', ');\n      msg += \", and \".concat(args[len - 1], \" arguments\");\n      break;\n  }\n\n  return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n  var array = [];\n  set.forEach(function (value) {\n    return array.push(value);\n  });\n  return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n  var array = [];\n  map.forEach(function (value, key) {\n    return array.push([key, value]);\n  });\n  return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n  return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n  return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n    isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n    isArrayBufferView = _require$types.isArrayBufferView,\n    isDate = _require$types.isDate,\n    isMap = _require$types.isMap,\n    isRegExp = _require$types.isRegExp,\n    isSet = _require$types.isSet,\n    isNativeError = _require$types.isNativeError,\n    isBoxedPrimitive = _require$types.isBoxedPrimitive,\n    isNumberObject = _require$types.isNumberObject,\n    isStringObject = _require$types.isStringObject,\n    isBooleanObject = _require$types.isBooleanObject,\n    isBigIntObject = _require$types.isBigIntObject,\n    isSymbolObject = _require$types.isSymbolObject,\n    isFloat32Array = _require$types.isFloat32Array,\n    isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n  if (key.length === 0 || key.length > 10) return true;\n\n  for (var i = 0; i < key.length; i++) {\n    var code = key.charCodeAt(i);\n    if (code < 48 || code > 57) return true;\n  } // The maximum size for an array is 2 ** 32 -1.\n\n\n  return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n  return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\n\n\nfunction compare(a, b) {\n  if (a === b) {\n    return 0;\n  }\n\n  var x = a.length;\n  var y = b.length;\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i];\n      y = b[i];\n      break;\n    }\n  }\n\n  if (x < y) {\n    return -1;\n  }\n\n  if (y < x) {\n    return 1;\n  }\n\n  return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n  return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n  if (a.byteLength !== b.byteLength) {\n    return false;\n  }\n\n  for (var offset = 0; offset < a.byteLength; offset++) {\n    if (a[offset] !== b[offset]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n  if (a.byteLength !== b.byteLength) {\n    return false;\n  }\n\n  return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n  return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n  if (isNumberObject(val1)) {\n    return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n  }\n\n  if (isStringObject(val1)) {\n    return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n  }\n\n  if (isBooleanObject(val1)) {\n    return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n  }\n\n  if (isBigIntObject(val1)) {\n    return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n  }\n\n  return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n  // All identical values are equivalent, as determined by ===.\n  if (val1 === val2) {\n    if (val1 !== 0) return true;\n    return strict ? objectIs(val1, val2) : true;\n  } // Check more closely if val1 and val2 are equal.\n\n\n  if (strict) {\n    if (_typeof(val1) !== 'object') {\n      return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n    }\n\n    if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n      return false;\n    }\n\n    if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n      return false;\n    }\n  } else {\n    if (val1 === null || _typeof(val1) !== 'object') {\n      if (val2 === null || _typeof(val2) !== 'object') {\n        // eslint-disable-next-line eqeqeq\n        return val1 == val2;\n      }\n\n      return false;\n    }\n\n    if (val2 === null || _typeof(val2) !== 'object') {\n      return false;\n    }\n  }\n\n  var val1Tag = objectToString(val1);\n  var val2Tag = objectToString(val2);\n\n  if (val1Tag !== val2Tag) {\n    return false;\n  }\n\n  if (Array.isArray(val1)) {\n    // Check for sparse arrays and general fast path\n    if (val1.length !== val2.length) {\n      return false;\n    }\n\n    var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n    var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n    if (keys1.length !== keys2.length) {\n      return false;\n    }\n\n    return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n  } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n  // wan't to early return out of the rest of the checks. However we can check\n  // if the second value is one of these values and the first isn't.\n\n\n  if (val1Tag === '[object Object]') {\n    // return keyCheck(val1, val2, strict, memos, kNoIterator);\n    if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n      return false;\n    }\n  }\n\n  if (isDate(val1)) {\n    if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n      return false;\n    }\n  } else if (isRegExp(val1)) {\n    if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n      return false;\n    }\n  } else if (isNativeError(val1) || val1 instanceof Error) {\n    // Do not compare the stack as it might differ even though the error itself\n    // is otherwise identical.\n    if (val1.message !== val2.message || val1.name !== val2.name) {\n      return false;\n    }\n  } else if (isArrayBufferView(val1)) {\n    if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n      if (!areSimilarFloatArrays(val1, val2)) {\n        return false;\n      }\n    } else if (!areSimilarTypedArrays(val1, val2)) {\n      return false;\n    } // Buffer.compare returns true, so val1.length === val2.length. If they both\n    // only contain numeric keys, we don't need to exam further than checking\n    // the symbols.\n\n\n    var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n    var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n    if (_keys.length !== _keys2.length) {\n      return false;\n    }\n\n    return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n  } else if (isSet(val1)) {\n    if (!isSet(val2) || val1.size !== val2.size) {\n      return false;\n    }\n\n    return keyCheck(val1, val2, strict, memos, kIsSet);\n  } else if (isMap(val1)) {\n    if (!isMap(val2) || val1.size !== val2.size) {\n      return false;\n    }\n\n    return keyCheck(val1, val2, strict, memos, kIsMap);\n  } else if (isAnyArrayBuffer(val1)) {\n    if (!areEqualArrayBuffers(val1, val2)) {\n      return false;\n    }\n  } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n    return false;\n  }\n\n  return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n  return keys.filter(function (k) {\n    return propertyIsEnumerable(val, k);\n  });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n  // For all remaining Object pairs, including Array, objects and Maps,\n  // equivalence is determined by having:\n  // a) The same number of owned enumerable properties\n  // b) The same set of keys/indexes (although not necessarily the same order)\n  // c) Equivalent values for every corresponding key/index\n  // d) For Sets and Maps, equal contents\n  // Note: this accounts for both named and indexed properties on Arrays.\n  if (arguments.length === 5) {\n    aKeys = Object.keys(val1);\n    var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n    if (aKeys.length !== bKeys.length) {\n      return false;\n    }\n  } // Cheap key test\n\n\n  var i = 0;\n\n  for (; i < aKeys.length; i++) {\n    if (!hasOwnProperty(val2, aKeys[i])) {\n      return false;\n    }\n  }\n\n  if (strict && arguments.length === 5) {\n    var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n    if (symbolKeysA.length !== 0) {\n      var count = 0;\n\n      for (i = 0; i < symbolKeysA.length; i++) {\n        var key = symbolKeysA[i];\n\n        if (propertyIsEnumerable(val1, key)) {\n          if (!propertyIsEnumerable(val2, key)) {\n            return false;\n          }\n\n          aKeys.push(key);\n          count++;\n        } else if (propertyIsEnumerable(val2, key)) {\n          return false;\n        }\n      }\n\n      var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n      if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n        return false;\n      }\n    } else {\n      var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n      if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n        return false;\n      }\n    }\n  }\n\n  if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n    return true;\n  } // Use memos to handle cycles.\n\n\n  if (memos === undefined) {\n    memos = {\n      val1: new Map(),\n      val2: new Map(),\n      position: 0\n    };\n  } else {\n    // We prevent up to two map.has(x) calls by directly retrieving the value\n    // and checking for undefined. The map can only contain numbers, so it is\n    // safe to check for undefined only.\n    var val2MemoA = memos.val1.get(val1);\n\n    if (val2MemoA !== undefined) {\n      var val2MemoB = memos.val2.get(val2);\n\n      if (val2MemoB !== undefined) {\n        return val2MemoA === val2MemoB;\n      }\n    }\n\n    memos.position++;\n  }\n\n  memos.val1.set(val1, memos.position);\n  memos.val2.set(val2, memos.position);\n  var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n  memos.val1.delete(val1);\n  memos.val2.delete(val2);\n  return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n  // Go looking.\n  var setValues = arrayFromSet(set);\n\n  for (var i = 0; i < setValues.length; i++) {\n    var val2 = setValues[i];\n\n    if (innerDeepEqual(val1, val2, strict, memo)) {\n      // Remove the matching element to make sure we do not check that again.\n      set.delete(val2);\n      return true;\n    }\n  }\n\n  return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n  switch (_typeof(prim)) {\n    case 'undefined':\n      return null;\n\n    case 'object':\n      // Only pass in null as object!\n      return undefined;\n\n    case 'symbol':\n      return false;\n\n    case 'string':\n      prim = +prim;\n    // Loose equal entries exist only if the string is possible to convert to\n    // a regular number and not NaN.\n    // Fall through\n\n    case 'number':\n      if (numberIsNaN(prim)) {\n        return false;\n      }\n\n  }\n\n  return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n  var altValue = findLooseMatchingPrimitives(prim);\n  if (altValue != null) return altValue;\n  return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n  var altValue = findLooseMatchingPrimitives(prim);\n\n  if (altValue != null) {\n    return altValue;\n  }\n\n  var curB = b.get(altValue);\n\n  if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n    return false;\n  }\n\n  return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n  // This is a lazily initiated Set of entries which have to be compared\n  // pairwise.\n  var set = null;\n  var aValues = arrayFromSet(a);\n\n  for (var i = 0; i < aValues.length; i++) {\n    var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n    // heavy sets but it is a minor slow down for primitives. As they are fast\n    // to check this improves the worst case scenario instead.\n\n    if (_typeof(val) === 'object' && val !== null) {\n      if (set === null) {\n        set = new Set();\n      } // If the specified value doesn't exist in the second set its an not null\n      // object (or non strict only: a not matching primitive) we'll need to go\n      // hunting for something thats deep-(strict-)equal to it. To make this\n      // O(n log n) complexity we have to copy these values in a new set first.\n\n\n      set.add(val);\n    } else if (!b.has(val)) {\n      if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n      if (!setMightHaveLoosePrim(a, b, val)) {\n        return false;\n      }\n\n      if (set === null) {\n        set = new Set();\n      }\n\n      set.add(val);\n    }\n  }\n\n  if (set !== null) {\n    var bValues = arrayFromSet(b);\n\n    for (var _i = 0; _i < bValues.length; _i++) {\n      var _val = bValues[_i]; // We have to check if a primitive value is already\n      // matching and only if it's not, go hunting for it.\n\n      if (_typeof(_val) === 'object' && _val !== null) {\n        if (!setHasEqualElement(set, _val, strict, memo)) return false;\n      } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n        return false;\n      }\n    }\n\n    return set.size === 0;\n  }\n\n  return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n  // To be able to handle cases like:\n  //   Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n  // ... we need to consider *all* matching keys, not just the first we find.\n  var setValues = arrayFromSet(set);\n\n  for (var i = 0; i < setValues.length; i++) {\n    var key2 = setValues[i];\n\n    if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n      set.delete(key2);\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n  var set = null;\n  var aEntries = arrayFromMap(a);\n\n  for (var i = 0; i < aEntries.length; i++) {\n    var _aEntries$i = _slicedToArray(aEntries[i], 2),\n        key = _aEntries$i[0],\n        item1 = _aEntries$i[1];\n\n    if (_typeof(key) === 'object' && key !== null) {\n      if (set === null) {\n        set = new Set();\n      }\n\n      set.add(key);\n    } else {\n      // By directly retrieving the value we prevent another b.has(key) check in\n      // almost all possible cases.\n      var item2 = b.get(key);\n\n      if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n        if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n        // keys.\n\n        if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n        if (set === null) {\n          set = new Set();\n        }\n\n        set.add(key);\n      }\n    }\n  }\n\n  if (set !== null) {\n    var bEntries = arrayFromMap(b);\n\n    for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n      var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n          key = _bEntries$_i[0],\n          item = _bEntries$_i[1];\n\n      if (_typeof(key) === 'object' && key !== null) {\n        if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n      } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n        return false;\n      }\n    }\n\n    return set.size === 0;\n  }\n\n  return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n  // Sets and maps don't have their entries accessible via normal object\n  // properties.\n  var i = 0;\n\n  if (iterationType === kIsSet) {\n    if (!setEquiv(a, b, strict, memos)) {\n      return false;\n    }\n  } else if (iterationType === kIsMap) {\n    if (!mapEquiv(a, b, strict, memos)) {\n      return false;\n    }\n  } else if (iterationType === kIsArray) {\n    for (; i < a.length; i++) {\n      if (hasOwnProperty(a, i)) {\n        if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n          return false;\n        }\n      } else if (hasOwnProperty(b, i)) {\n        return false;\n      } else {\n        // Array is sparse.\n        var keysA = Object.keys(a);\n\n        for (; i < keysA.length; i++) {\n          var key = keysA[i];\n\n          if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n            return false;\n          }\n        }\n\n        if (keysA.length !== Object.keys(b).length) {\n          return false;\n        }\n\n        return true;\n      }\n    }\n  } // The pair must have equivalent values for every corresponding key.\n  // Possibly expensive deep test:\n\n\n  for (i = 0; i < keys.length; i++) {\n    var _key = keys[i];\n\n    if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n  return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n  return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n  isDeepEqual: isDeepEqual,\n  isDeepStrictEqual: isDeepStrictEqual\n};","import { customElement, property } from \"lit/decorators.js\";\r\nimport { html, css, LitElement } from \"lit\";\r\nimport Highcharts from 'highcharts/highcharts';\r\nimport STRINGS from '~/lang/strings_el.json';\r\nimport Utils from '~/utils.js';\r\nimport addTreemap from 'highcharts/modules/treemap';\r\nimport addHeatmap from 'highcharts/modules/heatmap';\r\nimport fontAwesome from '~/modules/fontawesome/css/fontawesome.js';\r\nimport style from '~/modules/css.js';\r\nimport * as XLSX from \"xlsx\";\r\n\r\naddTreemap(Highcharts);\r\naddHeatmap(Highcharts);\r\n\r\n@customElement(\"op-tree\")\r\nexport class OpTree extends LitElement {\r\n    static get properties() {\r\n        return {\r\n            classes: { type: Object },\r\n            data: {type: Array, attribute: true, reflect: true },\r\n            tableConf: {type: Array}\r\n        }\r\n    }\r\n\r\n    static styles = [fontAwesome,style]\r\n    constructor(){\r\n        super();\r\n        this.classes = { wrapper: true, switchedView: false };\r\n        this.data=[];\r\n        this.secondDataset=[];\r\n        this.tableConf = [\r\n            {property: 'Titlos', header: 'XX'},\r\n            {property: 'Sinolo', header: STRINGS.CHARTS.OPROGRAMMES_WATERFALL.AMOUNT_TOTAL}\r\n        ]\r\n    }\r\n    firstUpdated(changedProperties) {\r\n        this.fetchData();\r\n    }\r\n\r\n    fetchData() {\r\n        fetch('https://2027.anaptyxi.gov.gr/GetData.ashx?chart=op_cumulative')\r\n            .then(response => {\r\n                return response.json();\r\n            })\r\n            .then(data => {\r\n                if (data.errMsg) {\r\n                    throw new Error(STRINGS.ERRORS.NETWORK_ERROR);\r\n                }else{\r\n                    this.data = data;\r\n                    fetch('https://2027.anaptyxi.gov.gr/GetData.ashx?chart=op')\r\n                        .then(response2 => {\r\n                            return response2.json();\r\n                        })\r\n                        .then(data2 => {\r\n                            if (data2.errMsg) {\r\n                                throw new Error(STRINGS.ERRORS.NETWORK_ERROR);\r\n                            }else{\r\n                                this.secondDataset = data2.filter(a=>(a.ID>=608 && a.ID<=620)).sort((a,b)=>(a.Sinolo<b.Sinolo?1:-1));                               \r\n                                this._enableChart();\r\n                                this.initGrid();\r\n                            }\r\n                        });\r\n                }\r\n            })\r\n            .catch((error) => {\r\n                console.error('Error:', error);\r\n            });\r\n    }\r\n  \r\n    render() {\r\n        return Utils.getChartContainer.call(this,this.data,STRINGS.CHARTS.OPROGRAMMES.TITLE);\r\n    }  \r\n    subTable(data){\r\n        let retvalue=[];\r\n        let html=\"<table style='table-layout: fixed;border:1px solid #ccc;width:100%;'><tbody>\";\r\n        let temp=null;\r\n        let amount=null;\r\n        for (let i=0;i<data.length;i++){\r\n            amount = new Intl.NumberFormat('el-GR').format(data[i].Sinolo); \r\n            html+=\"<tr class='\"+(i%2==0?\"even\":\"odd\")+\"'>\";\r\n            html+=\"<td style='padding: 2px 5px;' class='dt-head-center'>\"+data[i].Titlos+\"</td>\";\r\n            html+=\"<td style='padding: 2px 5px;width: 158px; text-align: right;' class'dt-head-center dt-body-right sorting_1'>\"+amount+\"</td>\";\r\n            html+=\"</tr>\";\r\n        }\r\n        html+=\"</tbody></table>\"\r\n        return html;\r\n    }\r\n    initGrid(){\r\n        let grid = this.shadowRoot.querySelector(\"#grid\");\r\n        let self=this;\r\n        grid.options={\r\n            data: this.data, \r\n            info: false,\r\n            paging: false,\r\n            searching: false,\r\n            columns: [\r\n                {data: 'Titlos', title: STRINGS.CHARTS.OPROGRAMMES.XCOLUMN,className: 'dt-head-center'},\r\n                {data: 'Sinolo', width: Utils.amountColWidth, title: STRINGS.CHARTS.OPROGRAMMES.AMOUNT_TOTAL+\"<br>€\", className: 'dt-head-center dt-body-right',type: 'num-fmt', render: function (data, type, row) {\r\n                    return type===\"sort\"?data:data.toLocaleString('el-GR');\r\n                }\r\n            }\r\n            ],\r\n            order: [[1, 'desc']],\r\n            createdRow: function( row, data, dataIndex ) {\r\n                if (data.ID==1001){\r\n                    row.classList.add('dt-control');\r\n                    let table=this;\r\n                    row.addEventListener(\"click\",(e)=>{\r\n                        var tr = e.currentTarget;\r\n                        if (tr.classList.contains(\"dt-control\")) {\r\n                            let row = table.dataTable().api().row(tr);\r\n                            if (row.child.isShown()) {\r\n                                row.child.hide();\r\n                            }\r\n                            else {\r\n                                row.child(self.subTable(self.secondDataset)).show();\r\n                            }\r\n                        }\r\n                    });\r\n                    row.setAttribute(\"part\",\"innerrow\");\r\n                }\r\n                if (data.ID>=608 && data.ID<=620){\r\n                    row.classList.add('togglable');\r\n                }\r\n            },\r\n            // initComplete: (e)=>{\r\n            //     e.nTable.setAttribute(\"part\",\"wtf\");\r\n            // }\r\n        };\r\n    }\r\n    \r\n    _switchView(){\r\n        this.classes.switchedView=!this.classes.switchedView;\r\n        this.shadowRoot.querySelector(\".wrapper\").classList.toggle(\"switchedView\");\r\n    }\r\n    _download(){\r\n        let filename='Export.xlsx';\r\n        let exportData = this.data.map(a=>{\r\n            let item={};\r\n            item[STRINGS.CHARTS.OPROGRAMMES.XCOLUMN]=a.Titlos;\r\n            item[STRINGS.CHARTS.OPROGRAMMES.AMOUNT_TOTAL]=a.Sinolo;\r\n            return item;\r\n        });\r\n        var ws = XLSX.utils.json_to_sheet(exportData);\r\n        var wb = XLSX.utils.book_new();\r\n        XLSX.utils.book_append_sheet(wb, ws, \"Data\");\r\n        XLSX.writeFile(wb,filename);\r\n\r\n    }\r\n    \r\n    _enableChart() {\r\n        Highcharts.chart(\r\n            this.shadowRoot.querySelector('#container'), {\r\n                chart: {\r\n                    \r\n                },\r\n                colors: Utils.getHighchartColors(),\r\n                title: {\r\n                    text: undefined\r\n                },\r\n                credits: {\r\n                    enabled: false\r\n                },\r\n                xAxis: {\r\n            \r\n                },\r\n                series: [{\r\n                    data: this.data.map((a)=>{\r\n                        return {\r\n                            name: a.Titlos,\r\n                            value: a.Sinolo   \r\n                        }\r\n                    }),\r\n                \r\n                    type: 'treemap',\r\n                    states: {\r\n                        inactive: {\r\n                            opacity: 1\r\n                        }\r\n                    },\r\n                    dataLabels: {\r\n                        useHTML: true,\r\n                        color: '#FFFFFF',\r\n                        align: 'center',\r\n                        className: 'centeredHighchart'\r\n                    },\r\n                    tooltip: {\r\n                        pointFormatter: function() {\r\n                            let x = Utils.round(this.value,2);\r\n                            return this.name+': <b>'+this.value.toLocaleString('el-GR')+\" €</b>\";\r\n                        },\r\n                        useHTML: true\r\n                    },\r\n                    borderRadius: 5\r\n                }],\r\n                plotOptions: {\r\n                    treemap: {\r\n                        colorByPoint: true\r\n                    }\r\n                },\r\n                \r\n        });\r\n      }\r\n}","import { css } from 'lit-element';\r\nexport default css`\r\n.title{\r\n    font-weight: bold;\r\n    font-size: 20px;\r\n    color: #fff;\r\n}\r\n.header{\r\n    position: relative;\r\n    padding-right: 75px;\r\n    padding-left: 10px;\r\n    padding-top: 5px;\r\n    padding-bottom: 7px;\r\n    border-bottom: 1px solid #333;\r\n    background: linear-gradient(90deg, rgba(15,80,142,1) 0%, rgba(30,192,235,1) 50%, rgba(126,196,82,1) 100%);\r\n}\r\n.header .actions{\r\n    position: absolute;\r\n    right: 0;\r\n    top: 3px;\r\n    padding: 5px 10px;\r\n}\r\n.wrapper{\r\n    border: 1px solid #333;\r\n    border-radius: 5px;\r\n    margin: 0 0px;\r\n    overflow: hidden;\r\n}\r\n.header .actions button{\r\n    padding: 5px 10px;\r\n}\r\n.header .actions .fa-chart-simple{\r\n    display:none;\r\n}\r\n\r\n.wrapper.switchedView .header .actions .fa-chart-simple{\r\n    display: inline-block;\r\n}\r\n.wrapper.switchedView .header .actions .fa-table{\r\n    display: none;\r\n}\r\n.wrapper .chartPane.tab-pane{\r\n    display: block;\r\n}\r\n.wrapper .gridPane.tab-pane{\r\n    display: none;\r\n}\r\n.wrapper.switchedView .chartPane.tab-pane{\r\n    display: none;\r\n}\r\n.wrapper .gridPane.tab-pane{\r\n    display: block;\r\n}\r\n.hTooltipHeader{\r\n    font-weight: bold;\r\n    margin-bottom: 5px;\r\n    text-decoration: underline;\r\n    font-size: 12px;\r\n}\r\n.hTooltipBody{\r\n    \r\n}\r\n\r\n.tab-content {\r\n  > .tab-pane {\r\n    display: none;\r\n  }\r\n  > .active {\r\n    display: block;\r\n  }\r\n}\r\n.switchedView .tab-content {\r\n    > .tab-pane {\r\n      display: block;\r\n    }\r\n    > .active {\r\n      display: none;\r\n    }\r\n  }\r\ntable.dataTable thead th {\r\n    text-align: center !important;\r\n}\r\n.centeredHighchart{\r\n    text-align: center;\r\n}\r\nop-tree::part(thegrid) .dt-control:before{\r\n    content:\"X\";\r\n    display: block;\r\n    left:0;\r\n    top:0;\r\n}\r\n\r\n@media (max-width:576px){\r\n    #gridContainer{\r\n        display: none;\r\n    }\r\n}\r\n`;","/*!\r\n * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com\r\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\r\n * Copyright 2023 Fonticons, Inc.\r\n */\r\nimport { css } from 'lit-element';\r\nexport default css`\r\n.fa{font-family:var(--fa-style-family,\"Font Awesome 6 Free\");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:\"Font Awesome 6 Free\"}.fa-brands,.fab{font-family:\"Font Awesome 6 Brands\"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}\r\n.fa-0:before{content:\"\\\\30\"}.fa-1:before{content:\"\\\\31\"}.fa-2:before{content:\"\\\\32\"}.fa-3:before{content:\"\\\\33\"}.fa-4:before{content:\"\\\\34\"}.fa-5:before{content:\"\\\\35\"}.fa-6:before{content:\"\\\\36\"}.fa-7:before{content:\"\\\\37\"}.fa-8:before{content:\"\\\\38\"}.fa-9:before{content:\"\\\\39\"}.fa-fill-drip:before{content:\"\\\\f576\"}.fa-arrows-to-circle:before{content:\"\\\\e4bd\"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:\"\\\\f138\"}.fa-at:before{content:\"\\\\40\"}.fa-trash-alt:before,.fa-trash-can:before{content:\"\\\\f2ed\"}.fa-text-height:before{content:\"\\\\f034\"}.fa-user-times:before,.fa-user-xmark:before{content:\"\\\\f235\"}.fa-stethoscope:before{content:\"\\\\f0f1\"}.fa-comment-alt:before,.fa-message:before{content:\"\\\\f27a\"}.fa-info:before{content:\"\\\\f129\"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:\"\\\\f422\"}.fa-explosion:before{content:\"\\\\e4e9\"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:\"\\\\f15c\"}.fa-wave-square:before{content:\"\\\\f83e\"}.fa-ring:before{content:\"\\\\f70b\"}.fa-building-un:before{content:\"\\\\e4d9\"}.fa-dice-three:before{content:\"\\\\f527\"}.fa-calendar-alt:before,.fa-calendar-days:before{content:\"\\\\f073\"}.fa-anchor-circle-check:before{content:\"\\\\e4aa\"}.fa-building-circle-arrow-right:before{content:\"\\\\e4d1\"}.fa-volleyball-ball:before,.fa-volleyball:before{content:\"\\\\f45f\"}.fa-arrows-up-to-line:before{content:\"\\\\e4c2\"}.fa-sort-desc:before,.fa-sort-down:before{content:\"\\\\f0dd\"}.fa-circle-minus:before,.fa-minus-circle:before{content:\"\\\\f056\"}.fa-door-open:before{content:\"\\\\f52b\"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:\"\\\\f2f5\"}.fa-atom:before{content:\"\\\\f5d2\"}.fa-soap:before{content:\"\\\\e06e\"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:\"\\\\f86d\"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:\"\\\\f539\"}.fa-bridge-circle-check:before{content:\"\\\\e4c9\"}.fa-pump-medical:before{content:\"\\\\e06a\"}.fa-fingerprint:before{content:\"\\\\f577\"}.fa-hand-point-right:before{content:\"\\\\f0a4\"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:\"\\\\f689\"}.fa-forward-step:before,.fa-step-forward:before{content:\"\\\\f051\"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:\"\\\\f5b8\"}.fa-flag-checkered:before{content:\"\\\\f11e\"}.fa-football-ball:before,.fa-football:before{content:\"\\\\f44e\"}.fa-school-circle-exclamation:before{content:\"\\\\e56c\"}.fa-crop:before{content:\"\\\\f125\"}.fa-angle-double-down:before,.fa-angles-down:before{content:\"\\\\f103\"}.fa-users-rectangle:before{content:\"\\\\e594\"}.fa-people-roof:before{content:\"\\\\e537\"}.fa-people-line:before{content:\"\\\\e534\"}.fa-beer-mug-empty:before,.fa-beer:before{content:\"\\\\f0fc\"}.fa-diagram-predecessor:before{content:\"\\\\e477\"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:\"\\\\f176\"}.fa-burn:before,.fa-fire-flame-simple:before{content:\"\\\\f46a\"}.fa-male:before,.fa-person:before{content:\"\\\\f183\"}.fa-laptop:before{content:\"\\\\f109\"}.fa-file-csv:before{content:\"\\\\f6dd\"}.fa-menorah:before{content:\"\\\\f676\"}.fa-truck-plane:before{content:\"\\\\e58f\"}.fa-record-vinyl:before{content:\"\\\\f8d9\"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:\"\\\\f587\"}.fa-bong:before{content:\"\\\\f55c\"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:\"\\\\f67b\"}.fa-arrow-down-up-across-line:before{content:\"\\\\e4af\"}.fa-spoon:before,.fa-utensil-spoon:before{content:\"\\\\f2e5\"}.fa-jar-wheat:before{content:\"\\\\e517\"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:\"\\\\f674\"}.fa-file-circle-exclamation:before{content:\"\\\\e4eb\"}.fa-circle-h:before,.fa-hospital-symbol:before{content:\"\\\\f47e\"}.fa-pager:before{content:\"\\\\f815\"}.fa-address-book:before,.fa-contact-book:before{content:\"\\\\f2b9\"}.fa-strikethrough:before{content:\"\\\\f0cc\"}.fa-k:before{content:\"\\\\4b\"}.fa-landmark-flag:before{content:\"\\\\e51c\"}.fa-pencil-alt:before,.fa-pencil:before{content:\"\\\\f303\"}.fa-backward:before{content:\"\\\\f04a\"}.fa-caret-right:before{content:\"\\\\f0da\"}.fa-comments:before{content:\"\\\\f086\"}.fa-file-clipboard:before,.fa-paste:before{content:\"\\\\f0ea\"}.fa-code-pull-request:before{content:\"\\\\e13c\"}.fa-clipboard-list:before{content:\"\\\\f46d\"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:\"\\\\f4de\"}.fa-user-check:before{content:\"\\\\f4fc\"}.fa-vial-virus:before{content:\"\\\\e597\"}.fa-sheet-plastic:before{content:\"\\\\e571\"}.fa-blog:before{content:\"\\\\f781\"}.fa-user-ninja:before{content:\"\\\\f504\"}.fa-person-arrow-up-from-line:before{content:\"\\\\e539\"}.fa-scroll-torah:before,.fa-torah:before{content:\"\\\\f6a0\"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:\"\\\\f458\"}.fa-toggle-off:before{content:\"\\\\f204\"}.fa-archive:before,.fa-box-archive:before{content:\"\\\\f187\"}.fa-person-drowning:before{content:\"\\\\e545\"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:\"\\\\f886\"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:\"\\\\f58a\"}.fa-spray-can:before{content:\"\\\\f5bd\"}.fa-truck-monster:before{content:\"\\\\f63b\"}.fa-w:before{content:\"\\\\57\"}.fa-earth-africa:before,.fa-globe-africa:before{content:\"\\\\f57c\"}.fa-rainbow:before{content:\"\\\\f75b\"}.fa-circle-notch:before{content:\"\\\\f1ce\"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:\"\\\\f3fa\"}.fa-paw:before{content:\"\\\\f1b0\"}.fa-cloud:before{content:\"\\\\f0c2\"}.fa-trowel-bricks:before{content:\"\\\\e58a\"}.fa-face-flushed:before,.fa-flushed:before{content:\"\\\\f579\"}.fa-hospital-user:before{content:\"\\\\f80d\"}.fa-tent-arrow-left-right:before{content:\"\\\\e57f\"}.fa-gavel:before,.fa-legal:before{content:\"\\\\f0e3\"}.fa-binoculars:before{content:\"\\\\f1e5\"}.fa-microphone-slash:before{content:\"\\\\f131\"}.fa-box-tissue:before{content:\"\\\\e05b\"}.fa-motorcycle:before{content:\"\\\\f21c\"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:\"\\\\f562\"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:\"\\\\f5ae\"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:\"\\\\e068\"}.fa-mars-and-venus-burst:before{content:\"\\\\e523\"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:\"\\\\f152\"}.fa-cut:before,.fa-scissors:before{content:\"\\\\f0c4\"}.fa-sun-plant-wilt:before{content:\"\\\\e57a\"}.fa-toilets-portable:before{content:\"\\\\e584\"}.fa-hockey-puck:before{content:\"\\\\f453\"}.fa-table:before{content:\"\\\\f0ce\"}.fa-magnifying-glass-arrow-right:before{content:\"\\\\e521\"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:\"\\\\f566\"}.fa-users-slash:before{content:\"\\\\e073\"}.fa-clover:before{content:\"\\\\e139\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\\\f3e5\"}.fa-star-and-crescent:before{content:\"\\\\f699\"}.fa-house-fire:before{content:\"\\\\e50c\"}.fa-minus-square:before,.fa-square-minus:before{content:\"\\\\f146\"}.fa-helicopter:before{content:\"\\\\f533\"}.fa-compass:before{content:\"\\\\f14e\"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:\"\\\\f150\"}.fa-file-circle-question:before{content:\"\\\\e4ef\"}.fa-laptop-code:before{content:\"\\\\f5fc\"}.fa-swatchbook:before{content:\"\\\\f5c3\"}.fa-prescription-bottle:before{content:\"\\\\f485\"}.fa-bars:before,.fa-navicon:before{content:\"\\\\f0c9\"}.fa-people-group:before{content:\"\\\\e533\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\\\\f253\"}.fa-heart-broken:before,.fa-heart-crack:before{content:\"\\\\f7a9\"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:\"\\\\f360\"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:\"\\\\f597\"}.fa-film:before{content:\"\\\\f008\"}.fa-ruler-horizontal:before{content:\"\\\\f547\"}.fa-people-robbery:before{content:\"\\\\e536\"}.fa-lightbulb:before{content:\"\\\\f0eb\"}.fa-caret-left:before{content:\"\\\\f0d9\"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:\"\\\\f06a\"}.fa-school-circle-xmark:before{content:\"\\\\e56d\"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:\"\\\\f08b\"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:\"\\\\f13a\"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:\"\\\\f13e\"}.fa-cloud-showers-heavy:before{content:\"\\\\f740\"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:\"\\\\f58f\"}.fa-sitemap:before{content:\"\\\\f0e8\"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:\"\\\\f4b9\"}.fa-memory:before{content:\"\\\\f538\"}.fa-road-spikes:before{content:\"\\\\e568\"}.fa-fire-burner:before{content:\"\\\\e4f1\"}.fa-flag:before{content:\"\\\\f024\"}.fa-hanukiah:before{content:\"\\\\f6e6\"}.fa-feather:before{content:\"\\\\f52d\"}.fa-volume-down:before,.fa-volume-low:before{content:\"\\\\f027\"}.fa-comment-slash:before{content:\"\\\\f4b3\"}.fa-cloud-sun-rain:before{content:\"\\\\f743\"}.fa-compress:before{content:\"\\\\f066\"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:\"\\\\e2cd\"}.fa-ankh:before{content:\"\\\\f644\"}.fa-hands-holding-child:before{content:\"\\\\e4fa\"}.fa-asterisk:before{content:\"\\\\2a\"}.fa-check-square:before,.fa-square-check:before{content:\"\\\\f14a\"}.fa-peseta-sign:before{content:\"\\\\e221\"}.fa-header:before,.fa-heading:before{content:\"\\\\f1dc\"}.fa-ghost:before{content:\"\\\\f6e2\"}.fa-list-squares:before,.fa-list:before{content:\"\\\\f03a\"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:\"\\\\f87b\"}.fa-cart-plus:before{content:\"\\\\f217\"}.fa-gamepad:before{content:\"\\\\f11b\"}.fa-circle-dot:before,.fa-dot-circle:before{content:\"\\\\f192\"}.fa-dizzy:before,.fa-face-dizzy:before{content:\"\\\\f567\"}.fa-egg:before{content:\"\\\\f7fb\"}.fa-house-medical-circle-xmark:before{content:\"\\\\e513\"}.fa-campground:before{content:\"\\\\f6bb\"}.fa-folder-plus:before{content:\"\\\\f65e\"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:\"\\\\f1e3\"}.fa-paint-brush:before,.fa-paintbrush:before{content:\"\\\\f1fc\"}.fa-lock:before{content:\"\\\\f023\"}.fa-gas-pump:before{content:\"\\\\f52f\"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:\"\\\\f593\"}.fa-map-location:before,.fa-map-marked:before{content:\"\\\\f59f\"}.fa-house-flood-water:before{content:\"\\\\e50e\"}.fa-tree:before{content:\"\\\\f1bb\"}.fa-bridge-lock:before{content:\"\\\\e4cc\"}.fa-sack-dollar:before{content:\"\\\\f81d\"}.fa-edit:before,.fa-pen-to-square:before{content:\"\\\\f044\"}.fa-car-side:before{content:\"\\\\f5e4\"}.fa-share-alt:before,.fa-share-nodes:before{content:\"\\\\f1e0\"}.fa-heart-circle-minus:before{content:\"\\\\e4ff\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\\\\f252\"}.fa-microscope:before{content:\"\\\\f610\"}.fa-sink:before{content:\"\\\\e06d\"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:\"\\\\f290\"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:\"\\\\f881\"}.fa-mitten:before{content:\"\\\\f7b5\"}.fa-person-rays:before{content:\"\\\\e54d\"}.fa-users:before{content:\"\\\\f0c0\"}.fa-eye-slash:before{content:\"\\\\f070\"}.fa-flask-vial:before{content:\"\\\\e4f3\"}.fa-hand-paper:before,.fa-hand:before{content:\"\\\\f256\"}.fa-om:before{content:\"\\\\f679\"}.fa-worm:before{content:\"\\\\e599\"}.fa-house-circle-xmark:before{content:\"\\\\e50b\"}.fa-plug:before{content:\"\\\\f1e6\"}.fa-chevron-up:before{content:\"\\\\f077\"}.fa-hand-spock:before{content:\"\\\\f259\"}.fa-stopwatch:before{content:\"\\\\f2f2\"}.fa-face-kiss:before,.fa-kiss:before{content:\"\\\\f596\"}.fa-bridge-circle-xmark:before{content:\"\\\\e4cb\"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:\"\\\\f589\"}.fa-chess-bishop:before{content:\"\\\\f43a\"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:\"\\\\f58c\"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:\"\\\\f2a4\"}.fa-road-circle-check:before{content:\"\\\\e564\"}.fa-dice-five:before{content:\"\\\\f523\"}.fa-rss-square:before,.fa-square-rss:before{content:\"\\\\f143\"}.fa-land-mine-on:before{content:\"\\\\e51b\"}.fa-i-cursor:before{content:\"\\\\f246\"}.fa-stamp:before{content:\"\\\\f5bf\"}.fa-stairs:before{content:\"\\\\e289\"}.fa-i:before{content:\"\\\\49\"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:\"\\\\f6f2\"}.fa-pills:before{content:\"\\\\f484\"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:\"\\\\f581\"}.fa-tooth:before{content:\"\\\\f5c9\"}.fa-v:before{content:\"\\\\56\"}.fa-bangladeshi-taka-sign:before{content:\"\\\\e2e6\"}.fa-bicycle:before{content:\"\\\\f206\"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:\"\\\\e579\"}.fa-head-side-cough-slash:before{content:\"\\\\e062\"}.fa-ambulance:before,.fa-truck-medical:before{content:\"\\\\f0f9\"}.fa-wheat-awn-circle-exclamation:before{content:\"\\\\e598\"}.fa-snowman:before{content:\"\\\\f7d0\"}.fa-mortar-pestle:before{content:\"\\\\f5a7\"}.fa-road-barrier:before{content:\"\\\\e562\"}.fa-school:before{content:\"\\\\f549\"}.fa-igloo:before{content:\"\\\\f7ae\"}.fa-joint:before{content:\"\\\\f595\"}.fa-angle-right:before{content:\"\\\\f105\"}.fa-horse:before{content:\"\\\\f6f0\"}.fa-q:before{content:\"\\\\51\"}.fa-g:before{content:\"\\\\47\"}.fa-notes-medical:before{content:\"\\\\f481\"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\\\\f2c9\"}.fa-dong-sign:before{content:\"\\\\e169\"}.fa-capsules:before{content:\"\\\\f46b\"}.fa-poo-bolt:before,.fa-poo-storm:before{content:\"\\\\f75a\"}.fa-face-frown-open:before,.fa-frown-open:before{content:\"\\\\f57a\"}.fa-hand-point-up:before{content:\"\\\\f0a6\"}.fa-money-bill:before{content:\"\\\\f0d6\"}.fa-bookmark:before{content:\"\\\\f02e\"}.fa-align-justify:before{content:\"\\\\f039\"}.fa-umbrella-beach:before{content:\"\\\\f5ca\"}.fa-helmet-un:before{content:\"\\\\e503\"}.fa-bullseye:before{content:\"\\\\f140\"}.fa-bacon:before{content:\"\\\\f7e5\"}.fa-hand-point-down:before{content:\"\\\\f0a7\"}.fa-arrow-up-from-bracket:before{content:\"\\\\e09a\"}.fa-folder-blank:before,.fa-folder:before{content:\"\\\\f07b\"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:\"\\\\f478\"}.fa-radiation:before{content:\"\\\\f7b9\"}.fa-chart-simple:before{content:\"\\\\e473\"}.fa-mars-stroke:before{content:\"\\\\f229\"}.fa-vial:before{content:\"\\\\f492\"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:\"\\\\f624\"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:\"\\\\e2ca\"}.fa-e:before{content:\"\\\\45\"}.fa-pen-alt:before,.fa-pen-clip:before{content:\"\\\\f305\"}.fa-bridge-circle-exclamation:before{content:\"\\\\e4ca\"}.fa-user:before{content:\"\\\\f007\"}.fa-school-circle-check:before{content:\"\\\\e56b\"}.fa-dumpster:before{content:\"\\\\f793\"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:\"\\\\f5b6\"}.fa-building-user:before{content:\"\\\\e4da\"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:\"\\\\f191\"}.fa-highlighter:before{content:\"\\\\f591\"}.fa-key:before{content:\"\\\\f084\"}.fa-bullhorn:before{content:\"\\\\f0a1\"}.fa-globe:before{content:\"\\\\f0ac\"}.fa-synagogue:before{content:\"\\\\f69b\"}.fa-person-half-dress:before{content:\"\\\\e548\"}.fa-road-bridge:before{content:\"\\\\e563\"}.fa-location-arrow:before{content:\"\\\\f124\"}.fa-c:before{content:\"\\\\43\"}.fa-tablet-button:before{content:\"\\\\f10a\"}.fa-building-lock:before{content:\"\\\\e4d6\"}.fa-pizza-slice:before{content:\"\\\\f818\"}.fa-money-bill-wave:before{content:\"\\\\f53a\"}.fa-area-chart:before,.fa-chart-area:before{content:\"\\\\f1fe\"}.fa-house-flag:before{content:\"\\\\e50d\"}.fa-person-circle-minus:before{content:\"\\\\e540\"}.fa-ban:before,.fa-cancel:before{content:\"\\\\f05e\"}.fa-camera-rotate:before{content:\"\\\\e0d8\"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:\"\\\\f5d0\"}.fa-star:before{content:\"\\\\f005\"}.fa-repeat:before{content:\"\\\\f363\"}.fa-cross:before{content:\"\\\\f654\"}.fa-box:before{content:\"\\\\f466\"}.fa-venus-mars:before{content:\"\\\\f228\"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:\"\\\\f245\"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:\"\\\\f31e\"}.fa-charging-station:before{content:\"\\\\f5e7\"}.fa-shapes:before,.fa-triangle-circle-square:before{content:\"\\\\f61f\"}.fa-random:before,.fa-shuffle:before{content:\"\\\\f074\"}.fa-person-running:before,.fa-running:before{content:\"\\\\f70c\"}.fa-mobile-retro:before{content:\"\\\\e527\"}.fa-grip-lines-vertical:before{content:\"\\\\f7a5\"}.fa-spider:before{content:\"\\\\f717\"}.fa-hands-bound:before{content:\"\\\\e4f9\"}.fa-file-invoice-dollar:before{content:\"\\\\f571\"}.fa-plane-circle-exclamation:before{content:\"\\\\e556\"}.fa-x-ray:before{content:\"\\\\f497\"}.fa-spell-check:before{content:\"\\\\f891\"}.fa-slash:before{content:\"\\\\f715\"}.fa-computer-mouse:before,.fa-mouse:before{content:\"\\\\f8cc\"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:\"\\\\f090\"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:\"\\\\e070\"}.fa-server:before{content:\"\\\\f233\"}.fa-virus-covid-slash:before{content:\"\\\\e4a9\"}.fa-shop-lock:before{content:\"\\\\e4a5\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\\\\f251\"}.fa-blender-phone:before{content:\"\\\\f6b6\"}.fa-building-wheat:before{content:\"\\\\e4db\"}.fa-person-breastfeeding:before{content:\"\\\\e53a\"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:\"\\\\f2f6\"}.fa-venus:before{content:\"\\\\f221\"}.fa-passport:before{content:\"\\\\f5ab\"}.fa-heart-pulse:before,.fa-heartbeat:before{content:\"\\\\f21e\"}.fa-people-carry-box:before,.fa-people-carry:before{content:\"\\\\f4ce\"}.fa-temperature-high:before{content:\"\\\\f769\"}.fa-microchip:before{content:\"\\\\f2db\"}.fa-crown:before{content:\"\\\\f521\"}.fa-weight-hanging:before{content:\"\\\\f5cd\"}.fa-xmarks-lines:before{content:\"\\\\e59a\"}.fa-file-prescription:before{content:\"\\\\f572\"}.fa-weight-scale:before,.fa-weight:before{content:\"\\\\f496\"}.fa-user-friends:before,.fa-user-group:before{content:\"\\\\f500\"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:\"\\\\f15e\"}.fa-chess-knight:before{content:\"\\\\f441\"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:\"\\\\f59b\"}.fa-wheelchair:before{content:\"\\\\f193\"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:\"\\\\f0aa\"}.fa-toggle-on:before{content:\"\\\\f205\"}.fa-person-walking:before,.fa-walking:before{content:\"\\\\f554\"}.fa-l:before{content:\"\\\\4c\"}.fa-fire:before{content:\"\\\\f06d\"}.fa-bed-pulse:before,.fa-procedures:before{content:\"\\\\f487\"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:\"\\\\f197\"}.fa-face-laugh:before,.fa-laugh:before{content:\"\\\\f599\"}.fa-folder-open:before{content:\"\\\\f07c\"}.fa-heart-circle-plus:before{content:\"\\\\e500\"}.fa-code-fork:before{content:\"\\\\e13b\"}.fa-city:before{content:\"\\\\f64f\"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:\"\\\\f3c9\"}.fa-pepper-hot:before{content:\"\\\\f816\"}.fa-unlock:before{content:\"\\\\f09c\"}.fa-colon-sign:before{content:\"\\\\e140\"}.fa-headset:before{content:\"\\\\f590\"}.fa-store-slash:before{content:\"\\\\e071\"}.fa-road-circle-xmark:before{content:\"\\\\e566\"}.fa-user-minus:before{content:\"\\\\f503\"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:\"\\\\f22a\"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:\"\\\\f79f\"}.fa-clipboard:before{content:\"\\\\f328\"}.fa-house-circle-exclamation:before{content:\"\\\\e50a\"}.fa-file-arrow-up:before,.fa-file-upload:before{content:\"\\\\f574\"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:\"\\\\f1eb\"}.fa-bath:before,.fa-bathtub:before{content:\"\\\\f2cd\"}.fa-underline:before{content:\"\\\\f0cd\"}.fa-user-edit:before,.fa-user-pen:before{content:\"\\\\f4ff\"}.fa-signature:before{content:\"\\\\f5b7\"}.fa-stroopwafel:before{content:\"\\\\f551\"}.fa-bold:before{content:\"\\\\f032\"}.fa-anchor-lock:before{content:\"\\\\e4ad\"}.fa-building-ngo:before{content:\"\\\\e4d7\"}.fa-manat-sign:before{content:\"\\\\e1d5\"}.fa-not-equal:before{content:\"\\\\f53e\"}.fa-border-style:before,.fa-border-top-left:before{content:\"\\\\f853\"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:\"\\\\f5a0\"}.fa-jedi:before{content:\"\\\\f669\"}.fa-poll:before,.fa-square-poll-vertical:before{content:\"\\\\f681\"}.fa-mug-hot:before{content:\"\\\\f7b6\"}.fa-battery-car:before,.fa-car-battery:before{content:\"\\\\f5df\"}.fa-gift:before{content:\"\\\\f06b\"}.fa-dice-two:before{content:\"\\\\f528\"}.fa-chess-queen:before{content:\"\\\\f445\"}.fa-glasses:before{content:\"\\\\f530\"}.fa-chess-board:before{content:\"\\\\f43c\"}.fa-building-circle-check:before{content:\"\\\\e4d2\"}.fa-person-chalkboard:before{content:\"\\\\e53d\"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:\"\\\\f22b\"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:\"\\\\f255\"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:\"\\\\f151\"}.fa-cloud-showers-water:before{content:\"\\\\e4e4\"}.fa-bar-chart:before,.fa-chart-bar:before{content:\"\\\\f080\"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:\"\\\\e05e\"}.fa-less-than-equal:before{content:\"\\\\f537\"}.fa-train:before{content:\"\\\\f238\"}.fa-eye-low-vision:before,.fa-low-vision:before{content:\"\\\\f2a8\"}.fa-crow:before{content:\"\\\\f520\"}.fa-sailboat:before{content:\"\\\\e445\"}.fa-window-restore:before{content:\"\\\\f2d2\"}.fa-plus-square:before,.fa-square-plus:before{content:\"\\\\f0fe\"}.fa-torii-gate:before{content:\"\\\\f6a1\"}.fa-frog:before{content:\"\\\\f52e\"}.fa-bucket:before{content:\"\\\\e4cf\"}.fa-image:before{content:\"\\\\f03e\"}.fa-microphone:before{content:\"\\\\f130\"}.fa-cow:before{content:\"\\\\f6c8\"}.fa-caret-up:before{content:\"\\\\f0d8\"}.fa-screwdriver:before{content:\"\\\\f54a\"}.fa-folder-closed:before{content:\"\\\\e185\"}.fa-house-tsunami:before{content:\"\\\\e515\"}.fa-square-nfi:before{content:\"\\\\e576\"}.fa-arrow-up-from-ground-water:before{content:\"\\\\e4b5\"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:\"\\\\f57b\"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:\"\\\\f2ea\"}.fa-columns:before,.fa-table-columns:before{content:\"\\\\f0db\"}.fa-lemon:before{content:\"\\\\f094\"}.fa-head-side-mask:before{content:\"\\\\e063\"}.fa-handshake:before{content:\"\\\\f2b5\"}.fa-gem:before{content:\"\\\\f3a5\"}.fa-dolly-box:before,.fa-dolly:before{content:\"\\\\f472\"}.fa-smoking:before{content:\"\\\\f48d\"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:\"\\\\f78c\"}.fa-monument:before{content:\"\\\\f5a6\"}.fa-snowplow:before{content:\"\\\\f7d2\"}.fa-angle-double-right:before,.fa-angles-right:before{content:\"\\\\f101\"}.fa-cannabis:before{content:\"\\\\f55f\"}.fa-circle-play:before,.fa-play-circle:before{content:\"\\\\f144\"}.fa-tablets:before{content:\"\\\\f490\"}.fa-ethernet:before{content:\"\\\\f796\"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:\"\\\\f153\"}.fa-chair:before{content:\"\\\\f6c0\"}.fa-check-circle:before,.fa-circle-check:before{content:\"\\\\f058\"}.fa-circle-stop:before,.fa-stop-circle:before{content:\"\\\\f28d\"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:\"\\\\f568\"}.fa-plate-wheat:before{content:\"\\\\e55a\"}.fa-icicles:before{content:\"\\\\f7ad\"}.fa-person-shelter:before{content:\"\\\\e54f\"}.fa-neuter:before{content:\"\\\\f22c\"}.fa-id-badge:before{content:\"\\\\f2c1\"}.fa-marker:before{content:\"\\\\f5a1\"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:\"\\\\f59a\"}.fa-helicopter-symbol:before{content:\"\\\\e502\"}.fa-universal-access:before{content:\"\\\\f29a\"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:\"\\\\f139\"}.fa-lari-sign:before{content:\"\\\\e1c8\"}.fa-volcano:before{content:\"\\\\f770\"}.fa-person-walking-dashed-line-arrow-right:before{content:\"\\\\e553\"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:\"\\\\f154\"}.fa-viruses:before{content:\"\\\\e076\"}.fa-square-person-confined:before{content:\"\\\\e577\"}.fa-user-tie:before{content:\"\\\\f508\"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:\"\\\\f175\"}.fa-tent-arrow-down-to-line:before{content:\"\\\\e57e\"}.fa-certificate:before{content:\"\\\\f0a3\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\\\f122\"}.fa-suitcase:before{content:\"\\\\f0f2\"}.fa-person-skating:before,.fa-skating:before{content:\"\\\\f7c5\"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:\"\\\\f662\"}.fa-camera-retro:before{content:\"\\\\f083\"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:\"\\\\f0ab\"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:\"\\\\f56f\"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:\"\\\\f14c\"}.fa-box-open:before{content:\"\\\\f49e\"}.fa-scroll:before{content:\"\\\\f70e\"}.fa-spa:before{content:\"\\\\f5bb\"}.fa-location-pin-lock:before{content:\"\\\\e51f\"}.fa-pause:before{content:\"\\\\f04c\"}.fa-hill-avalanche:before{content:\"\\\\e507\"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\\\\f2cb\"}.fa-bomb:before{content:\"\\\\f1e2\"}.fa-registered:before{content:\"\\\\f25d\"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:\"\\\\f2bb\"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:\"\\\\f516\"}.fa-subscript:before{content:\"\\\\f12c\"}.fa-diamond-turn-right:before,.fa-directions:before{content:\"\\\\f5eb\"}.fa-burst:before{content:\"\\\\e4dc\"}.fa-house-laptop:before,.fa-laptop-house:before{content:\"\\\\e066\"}.fa-face-tired:before,.fa-tired:before{content:\"\\\\f5c8\"}.fa-money-bills:before{content:\"\\\\e1f3\"}.fa-smog:before{content:\"\\\\f75f\"}.fa-crutch:before{content:\"\\\\f7f7\"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:\"\\\\f0ee\"}.fa-palette:before{content:\"\\\\f53f\"}.fa-arrows-turn-right:before{content:\"\\\\e4c0\"}.fa-vest:before{content:\"\\\\e085\"}.fa-ferry:before{content:\"\\\\e4ea\"}.fa-arrows-down-to-people:before{content:\"\\\\e4b9\"}.fa-seedling:before,.fa-sprout:before{content:\"\\\\f4d8\"}.fa-arrows-alt-h:before,.fa-left-right:before{content:\"\\\\f337\"}.fa-boxes-packing:before{content:\"\\\\e4c7\"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:\"\\\\f0a8\"}.fa-group-arrows-rotate:before{content:\"\\\\e4f6\"}.fa-bowl-food:before{content:\"\\\\e4c6\"}.fa-candy-cane:before{content:\"\\\\f786\"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:\"\\\\f160\"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:\"\\\\f76c\"}.fa-remove-format:before,.fa-text-slash:before{content:\"\\\\f87d\"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:\"\\\\f4da\"}.fa-file-word:before{content:\"\\\\f1c2\"}.fa-file-powerpoint:before{content:\"\\\\f1c4\"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:\"\\\\f07e\"}.fa-house-lock:before{content:\"\\\\e510\"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:\"\\\\f0ed\"}.fa-children:before{content:\"\\\\e4e1\"}.fa-blackboard:before,.fa-chalkboard:before{content:\"\\\\f51b\"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:\"\\\\f4fa\"}.fa-envelope-open:before{content:\"\\\\f2b6\"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:\"\\\\e05f\"}.fa-mattress-pillow:before{content:\"\\\\e525\"}.fa-guarani-sign:before{content:\"\\\\e19a\"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:\"\\\\f021\"}.fa-fire-extinguisher:before{content:\"\\\\f134\"}.fa-cruzeiro-sign:before{content:\"\\\\e152\"}.fa-greater-than-equal:before{content:\"\\\\f532\"}.fa-shield-alt:before,.fa-shield-halved:before{content:\"\\\\f3ed\"}.fa-atlas:before,.fa-book-atlas:before{content:\"\\\\f558\"}.fa-virus:before{content:\"\\\\e074\"}.fa-envelope-circle-check:before{content:\"\\\\e4e8\"}.fa-layer-group:before{content:\"\\\\f5fd\"}.fa-arrows-to-dot:before{content:\"\\\\e4be\"}.fa-archway:before{content:\"\\\\f557\"}.fa-heart-circle-check:before{content:\"\\\\e4fd\"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:\"\\\\f6f1\"}.fa-file-archive:before,.fa-file-zipper:before{content:\"\\\\f1c6\"}.fa-square:before{content:\"\\\\f0c8\"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:\"\\\\f000\"}.fa-couch:before{content:\"\\\\f4b8\"}.fa-cedi-sign:before{content:\"\\\\e0df\"}.fa-italic:before{content:\"\\\\f033\"}.fa-church:before{content:\"\\\\f51d\"}.fa-comments-dollar:before{content:\"\\\\f653\"}.fa-democrat:before{content:\"\\\\f747\"}.fa-z:before{content:\"\\\\5a\"}.fa-person-skiing:before,.fa-skiing:before{content:\"\\\\f7c9\"}.fa-road-lock:before{content:\"\\\\e567\"}.fa-a:before{content:\"\\\\41\"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:\"\\\\e03f\"}.fa-feather-alt:before,.fa-feather-pointed:before{content:\"\\\\f56b\"}.fa-p:before{content:\"\\\\50\"}.fa-snowflake:before{content:\"\\\\f2dc\"}.fa-newspaper:before{content:\"\\\\f1ea\"}.fa-ad:before,.fa-rectangle-ad:before{content:\"\\\\f641\"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:\"\\\\f0a9\"}.fa-filter-circle-xmark:before{content:\"\\\\e17b\"}.fa-locust:before{content:\"\\\\e520\"}.fa-sort:before,.fa-unsorted:before{content:\"\\\\f0dc\"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:\"\\\\f0cb\"}.fa-person-dress-burst:before{content:\"\\\\e544\"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:\"\\\\f53d\"}.fa-vector-square:before{content:\"\\\\f5cb\"}.fa-bread-slice:before{content:\"\\\\f7ec\"}.fa-language:before{content:\"\\\\f1ab\"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:\"\\\\f598\"}.fa-filter:before{content:\"\\\\f0b0\"}.fa-question:before{content:\"\\\\3f\"}.fa-file-signature:before{content:\"\\\\f573\"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:\"\\\\f0b2\"}.fa-house-chimney-user:before{content:\"\\\\e065\"}.fa-hand-holding-heart:before{content:\"\\\\f4be\"}.fa-puzzle-piece:before{content:\"\\\\f12e\"}.fa-money-check:before{content:\"\\\\f53c\"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:\"\\\\f5c0\"}.fa-code:before{content:\"\\\\f121\"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:\"\\\\f7a0\"}.fa-building-circle-exclamation:before{content:\"\\\\e4d3\"}.fa-magnifying-glass-chart:before{content:\"\\\\e522\"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:\"\\\\f08e\"}.fa-cubes-stacked:before{content:\"\\\\e4e6\"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:\"\\\\f159\"}.fa-virus-covid:before{content:\"\\\\e4a8\"}.fa-austral-sign:before{content:\"\\\\e0a9\"}.fa-f:before{content:\"\\\\46\"}.fa-leaf:before{content:\"\\\\f06c\"}.fa-road:before{content:\"\\\\f018\"}.fa-cab:before,.fa-taxi:before{content:\"\\\\f1ba\"}.fa-person-circle-plus:before{content:\"\\\\e541\"}.fa-chart-pie:before,.fa-pie-chart:before{content:\"\\\\f200\"}.fa-bolt-lightning:before{content:\"\\\\e0b7\"}.fa-sack-xmark:before{content:\"\\\\e56a\"}.fa-file-excel:before{content:\"\\\\f1c3\"}.fa-file-contract:before{content:\"\\\\f56c\"}.fa-fish-fins:before{content:\"\\\\e4f2\"}.fa-building-flag:before{content:\"\\\\e4d5\"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:\"\\\\f582\"}.fa-object-ungroup:before{content:\"\\\\f248\"}.fa-poop:before{content:\"\\\\f619\"}.fa-location-pin:before,.fa-map-marker:before{content:\"\\\\f041\"}.fa-kaaba:before{content:\"\\\\f66b\"}.fa-toilet-paper:before{content:\"\\\\f71e\"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:\"\\\\f807\"}.fa-eject:before{content:\"\\\\f052\"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:\"\\\\f35a\"}.fa-plane-circle-check:before{content:\"\\\\e555\"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:\"\\\\f5a5\"}.fa-object-group:before{content:\"\\\\f247\"}.fa-chart-line:before,.fa-line-chart:before{content:\"\\\\f201\"}.fa-mask-ventilator:before{content:\"\\\\e524\"}.fa-arrow-right:before{content:\"\\\\f061\"}.fa-map-signs:before,.fa-signs-post:before{content:\"\\\\f277\"}.fa-cash-register:before{content:\"\\\\f788\"}.fa-person-circle-question:before{content:\"\\\\e542\"}.fa-h:before{content:\"\\\\48\"}.fa-tarp:before{content:\"\\\\e57b\"}.fa-screwdriver-wrench:before,.fa-tools:before{content:\"\\\\f7d9\"}.fa-arrows-to-eye:before{content:\"\\\\e4bf\"}.fa-plug-circle-bolt:before{content:\"\\\\e55b\"}.fa-heart:before{content:\"\\\\f004\"}.fa-mars-and-venus:before{content:\"\\\\f224\"}.fa-home-user:before,.fa-house-user:before{content:\"\\\\e1b0\"}.fa-dumpster-fire:before{content:\"\\\\f794\"}.fa-house-crack:before{content:\"\\\\e3b1\"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:\"\\\\f561\"}.fa-face-surprise:before,.fa-surprise:before{content:\"\\\\f5c2\"}.fa-bottle-water:before{content:\"\\\\e4c5\"}.fa-circle-pause:before,.fa-pause-circle:before{content:\"\\\\f28b\"}.fa-toilet-paper-slash:before{content:\"\\\\e072\"}.fa-apple-alt:before,.fa-apple-whole:before{content:\"\\\\f5d1\"}.fa-kitchen-set:before{content:\"\\\\e51a\"}.fa-r:before{content:\"\\\\52\"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\\\\f2ca\"}.fa-cube:before{content:\"\\\\f1b2\"}.fa-bitcoin-sign:before{content:\"\\\\e0b4\"}.fa-shield-dog:before{content:\"\\\\e573\"}.fa-solar-panel:before{content:\"\\\\f5ba\"}.fa-lock-open:before{content:\"\\\\f3c1\"}.fa-elevator:before{content:\"\\\\e16d\"}.fa-money-bill-transfer:before{content:\"\\\\e528\"}.fa-money-bill-trend-up:before{content:\"\\\\e529\"}.fa-house-flood-water-circle-arrow-right:before{content:\"\\\\e50f\"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:\"\\\\f682\"}.fa-circle:before{content:\"\\\\f111\"}.fa-backward-fast:before,.fa-fast-backward:before{content:\"\\\\f049\"}.fa-recycle:before{content:\"\\\\f1b8\"}.fa-user-astronaut:before{content:\"\\\\f4fb\"}.fa-plane-slash:before{content:\"\\\\e069\"}.fa-trademark:before{content:\"\\\\f25c\"}.fa-basketball-ball:before,.fa-basketball:before{content:\"\\\\f434\"}.fa-satellite-dish:before{content:\"\\\\f7c0\"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:\"\\\\f35b\"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:\"\\\\f3cd\"}.fa-volume-high:before,.fa-volume-up:before{content:\"\\\\f028\"}.fa-users-rays:before{content:\"\\\\e593\"}.fa-wallet:before{content:\"\\\\f555\"}.fa-clipboard-check:before{content:\"\\\\f46c\"}.fa-file-audio:before{content:\"\\\\f1c7\"}.fa-burger:before,.fa-hamburger:before{content:\"\\\\f805\"}.fa-wrench:before{content:\"\\\\f0ad\"}.fa-bugs:before{content:\"\\\\e4d0\"}.fa-rupee-sign:before,.fa-rupee:before{content:\"\\\\f156\"}.fa-file-image:before{content:\"\\\\f1c5\"}.fa-circle-question:before,.fa-question-circle:before{content:\"\\\\f059\"}.fa-plane-departure:before{content:\"\\\\f5b0\"}.fa-handshake-slash:before{content:\"\\\\e060\"}.fa-book-bookmark:before{content:\"\\\\e0bb\"}.fa-code-branch:before{content:\"\\\\f126\"}.fa-hat-cowboy:before{content:\"\\\\f8c0\"}.fa-bridge:before{content:\"\\\\e4c8\"}.fa-phone-alt:before,.fa-phone-flip:before{content:\"\\\\f879\"}.fa-truck-front:before{content:\"\\\\e2b7\"}.fa-cat:before{content:\"\\\\f6be\"}.fa-anchor-circle-exclamation:before{content:\"\\\\e4ab\"}.fa-truck-field:before{content:\"\\\\e58d\"}.fa-route:before{content:\"\\\\f4d7\"}.fa-clipboard-question:before{content:\"\\\\e4e3\"}.fa-panorama:before{content:\"\\\\e209\"}.fa-comment-medical:before{content:\"\\\\f7f5\"}.fa-teeth-open:before{content:\"\\\\f62f\"}.fa-file-circle-minus:before{content:\"\\\\e4ed\"}.fa-tags:before{content:\"\\\\f02c\"}.fa-wine-glass:before{content:\"\\\\f4e3\"}.fa-fast-forward:before,.fa-forward-fast:before{content:\"\\\\f050\"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:\"\\\\f5a4\"}.fa-parking:before,.fa-square-parking:before{content:\"\\\\f540\"}.fa-house-signal:before{content:\"\\\\e012\"}.fa-bars-progress:before,.fa-tasks-alt:before{content:\"\\\\f828\"}.fa-faucet-drip:before{content:\"\\\\e006\"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:\"\\\\f474\"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:\"\\\\f54d\"}.fa-terminal:before{content:\"\\\\f120\"}.fa-mobile-button:before{content:\"\\\\f10b\"}.fa-house-medical-flag:before{content:\"\\\\e514\"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:\"\\\\f291\"}.fa-tape:before{content:\"\\\\f4db\"}.fa-bus-alt:before,.fa-bus-simple:before{content:\"\\\\f55e\"}.fa-eye:before{content:\"\\\\f06e\"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:\"\\\\f5b3\"}.fa-audio-description:before{content:\"\\\\f29e\"}.fa-person-military-to-person:before{content:\"\\\\e54c\"}.fa-file-shield:before{content:\"\\\\e4f0\"}.fa-user-slash:before{content:\"\\\\f506\"}.fa-pen:before{content:\"\\\\f304\"}.fa-tower-observation:before{content:\"\\\\e586\"}.fa-file-code:before{content:\"\\\\f1c9\"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:\"\\\\f012\"}.fa-bus:before{content:\"\\\\f207\"}.fa-heart-circle-xmark:before{content:\"\\\\e501\"}.fa-home-lg:before,.fa-house-chimney:before{content:\"\\\\e3af\"}.fa-window-maximize:before{content:\"\\\\f2d0\"}.fa-face-frown:before,.fa-frown:before{content:\"\\\\f119\"}.fa-prescription:before{content:\"\\\\f5b1\"}.fa-shop:before,.fa-store-alt:before{content:\"\\\\f54f\"}.fa-floppy-disk:before,.fa-save:before{content:\"\\\\f0c7\"}.fa-vihara:before{content:\"\\\\f6a7\"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:\"\\\\f515\"}.fa-sort-asc:before,.fa-sort-up:before{content:\"\\\\f0de\"}.fa-comment-dots:before,.fa-commenting:before{content:\"\\\\f4ad\"}.fa-plant-wilt:before{content:\"\\\\e5aa\"}.fa-diamond:before{content:\"\\\\f219\"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:\"\\\\f585\"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:\"\\\\f4c0\"}.fa-bacterium:before{content:\"\\\\e05a\"}.fa-hand-pointer:before{content:\"\\\\f25a\"}.fa-drum-steelpan:before{content:\"\\\\f56a\"}.fa-hand-scissors:before{content:\"\\\\f257\"}.fa-hands-praying:before,.fa-praying-hands:before{content:\"\\\\f684\"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:\"\\\\f01e\"}.fa-biohazard:before{content:\"\\\\f780\"}.fa-location-crosshairs:before,.fa-location:before{content:\"\\\\f601\"}.fa-mars-double:before{content:\"\\\\f227\"}.fa-child-dress:before{content:\"\\\\e59c\"}.fa-users-between-lines:before{content:\"\\\\e591\"}.fa-lungs-virus:before{content:\"\\\\e067\"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:\"\\\\f588\"}.fa-phone:before{content:\"\\\\f095\"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:\"\\\\f273\"}.fa-child-reaching:before{content:\"\\\\e59d\"}.fa-head-side-virus:before{content:\"\\\\e064\"}.fa-user-cog:before,.fa-user-gear:before{content:\"\\\\f4fe\"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:\"\\\\f163\"}.fa-door-closed:before{content:\"\\\\f52a\"}.fa-shield-virus:before{content:\"\\\\e06c\"}.fa-dice-six:before{content:\"\\\\f526\"}.fa-mosquito-net:before{content:\"\\\\e52c\"}.fa-bridge-water:before{content:\"\\\\e4ce\"}.fa-person-booth:before{content:\"\\\\f756\"}.fa-text-width:before{content:\"\\\\f035\"}.fa-hat-wizard:before{content:\"\\\\f6e8\"}.fa-pen-fancy:before{content:\"\\\\f5ac\"}.fa-digging:before,.fa-person-digging:before{content:\"\\\\f85e\"}.fa-trash:before{content:\"\\\\f1f8\"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:\"\\\\f629\"}.fa-book-medical:before{content:\"\\\\f7e6\"}.fa-poo:before{content:\"\\\\f2fe\"}.fa-quote-right-alt:before,.fa-quote-right:before{content:\"\\\\f10e\"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:\"\\\\f553\"}.fa-cubes:before{content:\"\\\\f1b3\"}.fa-divide:before{content:\"\\\\f529\"}.fa-tenge-sign:before,.fa-tenge:before{content:\"\\\\f7d7\"}.fa-headphones:before{content:\"\\\\f025\"}.fa-hands-holding:before{content:\"\\\\f4c2\"}.fa-hands-clapping:before{content:\"\\\\e1a8\"}.fa-republican:before{content:\"\\\\f75e\"}.fa-arrow-left:before{content:\"\\\\f060\"}.fa-person-circle-xmark:before{content:\"\\\\e543\"}.fa-ruler:before{content:\"\\\\f545\"}.fa-align-left:before{content:\"\\\\f036\"}.fa-dice-d6:before{content:\"\\\\f6d1\"}.fa-restroom:before{content:\"\\\\f7bd\"}.fa-j:before{content:\"\\\\4a\"}.fa-users-viewfinder:before{content:\"\\\\e595\"}.fa-file-video:before{content:\"\\\\f1c8\"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:\"\\\\f35d\"}.fa-table-cells:before,.fa-th:before{content:\"\\\\f00a\"}.fa-file-pdf:before{content:\"\\\\f1c1\"}.fa-bible:before,.fa-book-bible:before{content:\"\\\\f647\"}.fa-o:before{content:\"\\\\4f\"}.fa-medkit:before,.fa-suitcase-medical:before{content:\"\\\\f0fa\"}.fa-user-secret:before{content:\"\\\\f21b\"}.fa-otter:before{content:\"\\\\f700\"}.fa-female:before,.fa-person-dress:before{content:\"\\\\f182\"}.fa-comment-dollar:before{content:\"\\\\f651\"}.fa-briefcase-clock:before,.fa-business-time:before{content:\"\\\\f64a\"}.fa-table-cells-large:before,.fa-th-large:before{content:\"\\\\f009\"}.fa-book-tanakh:before,.fa-tanakh:before{content:\"\\\\f827\"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:\"\\\\f2a0\"}.fa-hat-cowboy-side:before{content:\"\\\\f8c1\"}.fa-clipboard-user:before{content:\"\\\\f7f3\"}.fa-child:before{content:\"\\\\f1ae\"}.fa-lira-sign:before{content:\"\\\\f195\"}.fa-satellite:before{content:\"\\\\f7bf\"}.fa-plane-lock:before{content:\"\\\\e558\"}.fa-tag:before{content:\"\\\\f02b\"}.fa-comment:before{content:\"\\\\f075\"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:\"\\\\f1fd\"}.fa-envelope:before{content:\"\\\\f0e0\"}.fa-angle-double-up:before,.fa-angles-up:before{content:\"\\\\f102\"}.fa-paperclip:before{content:\"\\\\f0c6\"}.fa-arrow-right-to-city:before{content:\"\\\\e4b3\"}.fa-ribbon:before{content:\"\\\\f4d6\"}.fa-lungs:before{content:\"\\\\f604\"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:\"\\\\f887\"}.fa-litecoin-sign:before{content:\"\\\\e1d3\"}.fa-border-none:before{content:\"\\\\f850\"}.fa-circle-nodes:before{content:\"\\\\e4e2\"}.fa-parachute-box:before{content:\"\\\\f4cd\"}.fa-indent:before{content:\"\\\\f03c\"}.fa-truck-field-un:before{content:\"\\\\e58e\"}.fa-hourglass-empty:before,.fa-hourglass:before{content:\"\\\\f254\"}.fa-mountain:before{content:\"\\\\f6fc\"}.fa-user-doctor:before,.fa-user-md:before{content:\"\\\\f0f0\"}.fa-circle-info:before,.fa-info-circle:before{content:\"\\\\f05a\"}.fa-cloud-meatball:before{content:\"\\\\f73b\"}.fa-camera-alt:before,.fa-camera:before{content:\"\\\\f030\"}.fa-square-virus:before{content:\"\\\\e578\"}.fa-meteor:before{content:\"\\\\f753\"}.fa-car-on:before{content:\"\\\\e4dd\"}.fa-sleigh:before{content:\"\\\\f7cc\"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:\"\\\\f162\"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:\"\\\\f4c1\"}.fa-water:before{content:\"\\\\f773\"}.fa-calendar-check:before{content:\"\\\\f274\"}.fa-braille:before{content:\"\\\\f2a1\"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:\"\\\\f486\"}.fa-landmark:before{content:\"\\\\f66f\"}.fa-truck:before{content:\"\\\\f0d1\"}.fa-crosshairs:before{content:\"\\\\f05b\"}.fa-person-cane:before{content:\"\\\\e53c\"}.fa-tent:before{content:\"\\\\e57d\"}.fa-vest-patches:before{content:\"\\\\e086\"}.fa-check-double:before{content:\"\\\\f560\"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:\"\\\\f15d\"}.fa-money-bill-wheat:before{content:\"\\\\e52a\"}.fa-cookie:before{content:\"\\\\f563\"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:\"\\\\f0e2\"}.fa-hard-drive:before,.fa-hdd:before{content:\"\\\\f0a0\"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:\"\\\\f586\"}.fa-dumbbell:before{content:\"\\\\f44b\"}.fa-list-alt:before,.fa-rectangle-list:before{content:\"\\\\f022\"}.fa-tarp-droplet:before{content:\"\\\\e57c\"}.fa-house-medical-circle-check:before{content:\"\\\\e511\"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:\"\\\\f7ca\"}.fa-calendar-plus:before{content:\"\\\\f271\"}.fa-plane-arrival:before{content:\"\\\\f5af\"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:\"\\\\f359\"}.fa-subway:before,.fa-train-subway:before{content:\"\\\\f239\"}.fa-chart-gantt:before{content:\"\\\\e0e4\"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:\"\\\\e1bc\"}.fa-crop-alt:before,.fa-crop-simple:before{content:\"\\\\f565\"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:\"\\\\f3d1\"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:\"\\\\f30a\"}.fa-dna:before{content:\"\\\\f471\"}.fa-virus-slash:before{content:\"\\\\e075\"}.fa-minus:before,.fa-subtract:before{content:\"\\\\f068\"}.fa-chess:before{content:\"\\\\f439\"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:\"\\\\f177\"}.fa-plug-circle-check:before{content:\"\\\\e55c\"}.fa-street-view:before{content:\"\\\\f21d\"}.fa-franc-sign:before{content:\"\\\\e18f\"}.fa-volume-off:before{content:\"\\\\f026\"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:\"\\\\f2a3\"}.fa-cog:before,.fa-gear:before{content:\"\\\\f013\"}.fa-droplet-slash:before,.fa-tint-slash:before{content:\"\\\\f5c7\"}.fa-mosque:before{content:\"\\\\f678\"}.fa-mosquito:before{content:\"\\\\e52b\"}.fa-star-of-david:before{content:\"\\\\f69a\"}.fa-person-military-rifle:before{content:\"\\\\e54b\"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:\"\\\\f07a\"}.fa-vials:before{content:\"\\\\f493\"}.fa-plug-circle-plus:before{content:\"\\\\e55f\"}.fa-place-of-worship:before{content:\"\\\\f67f\"}.fa-grip-vertical:before{content:\"\\\\f58e\"}.fa-arrow-turn-up:before,.fa-level-up:before{content:\"\\\\f148\"}.fa-u:before{content:\"\\\\55\"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:\"\\\\f698\"}.fa-clock-four:before,.fa-clock:before{content:\"\\\\f017\"}.fa-backward-step:before,.fa-step-backward:before{content:\"\\\\f048\"}.fa-pallet:before{content:\"\\\\f482\"}.fa-faucet:before{content:\"\\\\e005\"}.fa-baseball-bat-ball:before{content:\"\\\\f432\"}.fa-s:before{content:\"\\\\53\"}.fa-timeline:before{content:\"\\\\e29c\"}.fa-keyboard:before{content:\"\\\\f11c\"}.fa-caret-down:before{content:\"\\\\f0d7\"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:\"\\\\f7f2\"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\\\\f2c8\"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:\"\\\\f3cf\"}.fa-plane-up:before{content:\"\\\\e22d\"}.fa-piggy-bank:before{content:\"\\\\f4d3\"}.fa-battery-3:before,.fa-battery-half:before{content:\"\\\\f242\"}.fa-mountain-city:before{content:\"\\\\e52e\"}.fa-coins:before{content:\"\\\\f51e\"}.fa-khanda:before{content:\"\\\\f66d\"}.fa-sliders-h:before,.fa-sliders:before{content:\"\\\\f1de\"}.fa-folder-tree:before{content:\"\\\\f802\"}.fa-network-wired:before{content:\"\\\\f6ff\"}.fa-map-pin:before{content:\"\\\\f276\"}.fa-hamsa:before{content:\"\\\\f665\"}.fa-cent-sign:before{content:\"\\\\e3f5\"}.fa-flask:before{content:\"\\\\f0c3\"}.fa-person-pregnant:before{content:\"\\\\e31e\"}.fa-wand-sparkles:before{content:\"\\\\f72b\"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:\"\\\\f142\"}.fa-ticket:before{content:\"\\\\f145\"}.fa-power-off:before{content:\"\\\\f011\"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:\"\\\\f30b\"}.fa-flag-usa:before{content:\"\\\\f74d\"}.fa-laptop-file:before{content:\"\\\\e51d\"}.fa-teletype:before,.fa-tty:before{content:\"\\\\f1e4\"}.fa-diagram-next:before{content:\"\\\\e476\"}.fa-person-rifle:before{content:\"\\\\e54e\"}.fa-house-medical-circle-exclamation:before{content:\"\\\\e512\"}.fa-closed-captioning:before{content:\"\\\\f20a\"}.fa-hiking:before,.fa-person-hiking:before{content:\"\\\\f6ec\"}.fa-venus-double:before{content:\"\\\\f226\"}.fa-images:before{content:\"\\\\f302\"}.fa-calculator:before{content:\"\\\\f1ec\"}.fa-people-pulling:before{content:\"\\\\e535\"}.fa-n:before{content:\"\\\\4e\"}.fa-cable-car:before,.fa-tram:before{content:\"\\\\f7da\"}.fa-cloud-rain:before{content:\"\\\\f73d\"}.fa-building-circle-xmark:before{content:\"\\\\e4d4\"}.fa-ship:before{content:\"\\\\f21a\"}.fa-arrows-down-to-line:before{content:\"\\\\e4b8\"}.fa-download:before{content:\"\\\\f019\"}.fa-face-grin:before,.fa-grin:before{content:\"\\\\f580\"}.fa-backspace:before,.fa-delete-left:before{content:\"\\\\f55a\"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:\"\\\\f1fb\"}.fa-file-circle-check:before{content:\"\\\\e5a0\"}.fa-forward:before{content:\"\\\\f04e\"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:\"\\\\f3ce\"}.fa-face-meh:before,.fa-meh:before{content:\"\\\\f11a\"}.fa-align-center:before{content:\"\\\\f037\"}.fa-book-dead:before,.fa-book-skull:before{content:\"\\\\f6b7\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\\\\f2c2\"}.fa-dedent:before,.fa-outdent:before{content:\"\\\\f03b\"}.fa-heart-circle-exclamation:before{content:\"\\\\e4fe\"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:\"\\\\f015\"}.fa-calendar-week:before{content:\"\\\\f784\"}.fa-laptop-medical:before{content:\"\\\\f812\"}.fa-b:before{content:\"\\\\42\"}.fa-file-medical:before{content:\"\\\\f477\"}.fa-dice-one:before{content:\"\\\\f525\"}.fa-kiwi-bird:before{content:\"\\\\f535\"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:\"\\\\f0ec\"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:\"\\\\f2f9\"}.fa-cutlery:before,.fa-utensils:before{content:\"\\\\f2e7\"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:\"\\\\f161\"}.fa-mill-sign:before{content:\"\\\\e1ed\"}.fa-bowl-rice:before{content:\"\\\\e2eb\"}.fa-skull:before{content:\"\\\\f54c\"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:\"\\\\f519\"}.fa-truck-pickup:before{content:\"\\\\f63c\"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:\"\\\\f30c\"}.fa-stop:before{content:\"\\\\f04d\"}.fa-code-merge:before{content:\"\\\\f387\"}.fa-upload:before{content:\"\\\\f093\"}.fa-hurricane:before{content:\"\\\\f751\"}.fa-mound:before{content:\"\\\\e52d\"}.fa-toilet-portable:before{content:\"\\\\e583\"}.fa-compact-disc:before{content:\"\\\\f51f\"}.fa-file-arrow-down:before,.fa-file-download:before{content:\"\\\\f56d\"}.fa-caravan:before{content:\"\\\\f8ff\"}.fa-shield-cat:before{content:\"\\\\e572\"}.fa-bolt:before,.fa-zap:before{content:\"\\\\f0e7\"}.fa-glass-water:before{content:\"\\\\e4f4\"}.fa-oil-well:before{content:\"\\\\e532\"}.fa-vault:before{content:\"\\\\e2c5\"}.fa-mars:before{content:\"\\\\f222\"}.fa-toilet:before{content:\"\\\\f7d8\"}.fa-plane-circle-xmark:before{content:\"\\\\e557\"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:\"\\\\f157\"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:\"\\\\f158\"}.fa-sun:before{content:\"\\\\f185\"}.fa-guitar:before{content:\"\\\\f7a6\"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:\"\\\\f59c\"}.fa-horse-head:before{content:\"\\\\f7ab\"}.fa-bore-hole:before{content:\"\\\\e4c3\"}.fa-industry:before{content:\"\\\\f275\"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:\"\\\\f358\"}.fa-arrows-turn-to-dots:before{content:\"\\\\e4c1\"}.fa-florin-sign:before{content:\"\\\\e184\"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:\"\\\\f884\"}.fa-less-than:before{content:\"\\\\3c\"}.fa-angle-down:before{content:\"\\\\f107\"}.fa-car-tunnel:before{content:\"\\\\e4de\"}.fa-head-side-cough:before{content:\"\\\\e061\"}.fa-grip-lines:before{content:\"\\\\f7a4\"}.fa-thumbs-down:before{content:\"\\\\f165\"}.fa-user-lock:before{content:\"\\\\f502\"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:\"\\\\f178\"}.fa-anchor-circle-xmark:before{content:\"\\\\e4ac\"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:\"\\\\f141\"}.fa-chess-pawn:before{content:\"\\\\f443\"}.fa-first-aid:before,.fa-kit-medical:before{content:\"\\\\f479\"}.fa-person-through-window:before{content:\"\\\\e5a9\"}.fa-toolbox:before{content:\"\\\\f552\"}.fa-hands-holding-circle:before{content:\"\\\\e4fb\"}.fa-bug:before{content:\"\\\\f188\"}.fa-credit-card-alt:before,.fa-credit-card:before{content:\"\\\\f09d\"}.fa-automobile:before,.fa-car:before{content:\"\\\\f1b9\"}.fa-hand-holding-hand:before{content:\"\\\\e4f7\"}.fa-book-open-reader:before,.fa-book-reader:before{content:\"\\\\f5da\"}.fa-mountain-sun:before{content:\"\\\\e52f\"}.fa-arrows-left-right-to-line:before{content:\"\\\\e4ba\"}.fa-dice-d20:before{content:\"\\\\f6cf\"}.fa-truck-droplet:before{content:\"\\\\e58c\"}.fa-file-circle-xmark:before{content:\"\\\\e5a1\"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:\"\\\\e040\"}.fa-medal:before{content:\"\\\\f5a2\"}.fa-bed:before{content:\"\\\\f236\"}.fa-h-square:before,.fa-square-h:before{content:\"\\\\f0fd\"}.fa-podcast:before{content:\"\\\\f2ce\"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:\"\\\\f2c7\"}.fa-bell:before{content:\"\\\\f0f3\"}.fa-superscript:before{content:\"\\\\f12b\"}.fa-plug-circle-xmark:before{content:\"\\\\e560\"}.fa-star-of-life:before{content:\"\\\\f621\"}.fa-phone-slash:before{content:\"\\\\f3dd\"}.fa-paint-roller:before{content:\"\\\\f5aa\"}.fa-hands-helping:before,.fa-handshake-angle:before{content:\"\\\\f4c4\"}.fa-location-dot:before,.fa-map-marker-alt:before{content:\"\\\\f3c5\"}.fa-file:before{content:\"\\\\f15b\"}.fa-greater-than:before{content:\"\\\\3e\"}.fa-person-swimming:before,.fa-swimmer:before{content:\"\\\\f5c4\"}.fa-arrow-down:before{content:\"\\\\f063\"}.fa-droplet:before,.fa-tint:before{content:\"\\\\f043\"}.fa-eraser:before{content:\"\\\\f12d\"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:\"\\\\f57d\"}.fa-person-burst:before{content:\"\\\\e53b\"}.fa-dove:before{content:\"\\\\f4ba\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\\\\f244\"}.fa-socks:before{content:\"\\\\f696\"}.fa-inbox:before{content:\"\\\\f01c\"}.fa-section:before{content:\"\\\\e447\"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:\"\\\\f625\"}.fa-envelope-open-text:before{content:\"\\\\f658\"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:\"\\\\f0f8\"}.fa-wine-bottle:before{content:\"\\\\f72f\"}.fa-chess-rook:before{content:\"\\\\f447\"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:\"\\\\f550\"}.fa-dharmachakra:before{content:\"\\\\f655\"}.fa-hotdog:before{content:\"\\\\f80f\"}.fa-blind:before,.fa-person-walking-with-cane:before{content:\"\\\\f29d\"}.fa-drum:before{content:\"\\\\f569\"}.fa-ice-cream:before{content:\"\\\\f810\"}.fa-heart-circle-bolt:before{content:\"\\\\e4fc\"}.fa-fax:before{content:\"\\\\f1ac\"}.fa-paragraph:before{content:\"\\\\f1dd\"}.fa-check-to-slot:before,.fa-vote-yea:before{content:\"\\\\f772\"}.fa-star-half:before{content:\"\\\\f089\"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:\"\\\\f468\"}.fa-chain:before,.fa-link:before{content:\"\\\\f0c1\"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:\"\\\\f2a2\"}.fa-tree-city:before{content:\"\\\\e587\"}.fa-play:before{content:\"\\\\f04b\"}.fa-font:before{content:\"\\\\f031\"}.fa-rupiah-sign:before{content:\"\\\\e23d\"}.fa-magnifying-glass:before,.fa-search:before{content:\"\\\\f002\"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:\"\\\\f45d\"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:\"\\\\f470\"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:\"\\\\f82a\"}.fa-naira-sign:before{content:\"\\\\e1f6\"}.fa-cart-arrow-down:before{content:\"\\\\f218\"}.fa-walkie-talkie:before{content:\"\\\\f8ef\"}.fa-file-edit:before,.fa-file-pen:before{content:\"\\\\f31c\"}.fa-receipt:before{content:\"\\\\f543\"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:\"\\\\f14b\"}.fa-suitcase-rolling:before{content:\"\\\\f5c1\"}.fa-person-circle-exclamation:before{content:\"\\\\e53f\"}.fa-chevron-down:before{content:\"\\\\f078\"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:\"\\\\f240\"}.fa-skull-crossbones:before{content:\"\\\\f714\"}.fa-code-compare:before{content:\"\\\\e13a\"}.fa-list-dots:before,.fa-list-ul:before{content:\"\\\\f0ca\"}.fa-school-lock:before{content:\"\\\\e56f\"}.fa-tower-cell:before{content:\"\\\\e585\"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:\"\\\\f309\"}.fa-ranking-star:before{content:\"\\\\e561\"}.fa-chess-king:before{content:\"\\\\f43f\"}.fa-person-harassing:before{content:\"\\\\e549\"}.fa-brazilian-real-sign:before{content:\"\\\\e46c\"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:\"\\\\f752\"}.fa-arrow-up:before{content:\"\\\\f062\"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:\"\\\\f26c\"}.fa-shrimp:before{content:\"\\\\e448\"}.fa-list-check:before,.fa-tasks:before{content:\"\\\\f0ae\"}.fa-jug-detergent:before{content:\"\\\\e519\"}.fa-circle-user:before,.fa-user-circle:before{content:\"\\\\f2bd\"}.fa-user-shield:before{content:\"\\\\f505\"}.fa-wind:before{content:\"\\\\f72e\"}.fa-car-burst:before,.fa-car-crash:before{content:\"\\\\f5e1\"}.fa-y:before{content:\"\\\\59\"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:\"\\\\f7ce\"}.fa-shipping-fast:before,.fa-truck-fast:before{content:\"\\\\f48b\"}.fa-fish:before{content:\"\\\\f578\"}.fa-user-graduate:before{content:\"\\\\f501\"}.fa-adjust:before,.fa-circle-half-stroke:before{content:\"\\\\f042\"}.fa-clapperboard:before{content:\"\\\\e131\"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:\"\\\\f7ba\"}.fa-baseball-ball:before,.fa-baseball:before{content:\"\\\\f433\"}.fa-jet-fighter-up:before{content:\"\\\\e518\"}.fa-diagram-project:before,.fa-project-diagram:before{content:\"\\\\f542\"}.fa-copy:before{content:\"\\\\f0c5\"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:\"\\\\f6a9\"}.fa-hand-sparkles:before{content:\"\\\\e05d\"}.fa-grip-horizontal:before,.fa-grip:before{content:\"\\\\f58d\"}.fa-share-from-square:before,.fa-share-square:before{content:\"\\\\f14d\"}.fa-child-combatant:before,.fa-child-rifle:before{content:\"\\\\e4e0\"}.fa-gun:before{content:\"\\\\e19b\"}.fa-phone-square:before,.fa-square-phone:before{content:\"\\\\f098\"}.fa-add:before,.fa-plus:before{content:\"\\\\2b\"}.fa-expand:before{content:\"\\\\f065\"}.fa-computer:before{content:\"\\\\e4e5\"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:\"\\\\f00d\"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:\"\\\\f047\"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:\"\\\\f51c\"}.fa-peso-sign:before{content:\"\\\\e222\"}.fa-building-shield:before{content:\"\\\\e4d8\"}.fa-baby:before{content:\"\\\\f77c\"}.fa-users-line:before{content:\"\\\\e592\"}.fa-quote-left-alt:before,.fa-quote-left:before{content:\"\\\\f10d\"}.fa-tractor:before{content:\"\\\\f722\"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:\"\\\\f829\"}.fa-arrow-down-up-lock:before{content:\"\\\\e4b0\"}.fa-lines-leaning:before{content:\"\\\\e51e\"}.fa-ruler-combined:before{content:\"\\\\f546\"}.fa-copyright:before{content:\"\\\\f1f9\"}.fa-equals:before{content:\"\\\\3d\"}.fa-blender:before{content:\"\\\\f517\"}.fa-teeth:before{content:\"\\\\f62e\"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:\"\\\\f20b\"}.fa-map:before{content:\"\\\\f279\"}.fa-rocket:before{content:\"\\\\f135\"}.fa-photo-film:before,.fa-photo-video:before{content:\"\\\\f87c\"}.fa-folder-minus:before{content:\"\\\\f65d\"}.fa-store:before{content:\"\\\\f54e\"}.fa-arrow-trend-up:before{content:\"\\\\e098\"}.fa-plug-circle-minus:before{content:\"\\\\e55e\"}.fa-sign-hanging:before,.fa-sign:before{content:\"\\\\f4d9\"}.fa-bezier-curve:before{content:\"\\\\f55b\"}.fa-bell-slash:before{content:\"\\\\f1f6\"}.fa-tablet-android:before,.fa-tablet:before{content:\"\\\\f3fb\"}.fa-school-flag:before{content:\"\\\\e56e\"}.fa-fill:before{content:\"\\\\f575\"}.fa-angle-up:before{content:\"\\\\f106\"}.fa-drumstick-bite:before{content:\"\\\\f6d7\"}.fa-holly-berry:before{content:\"\\\\f7aa\"}.fa-chevron-left:before{content:\"\\\\f053\"}.fa-bacteria:before{content:\"\\\\e059\"}.fa-hand-lizard:before{content:\"\\\\f258\"}.fa-notdef:before{content:\"\\\\e1fe\"}.fa-disease:before{content:\"\\\\f7fa\"}.fa-briefcase-medical:before{content:\"\\\\f469\"}.fa-genderless:before{content:\"\\\\f22d\"}.fa-chevron-right:before{content:\"\\\\f054\"}.fa-retweet:before{content:\"\\\\f079\"}.fa-car-alt:before,.fa-car-rear:before{content:\"\\\\f5de\"}.fa-pump-soap:before{content:\"\\\\e06b\"}.fa-video-slash:before{content:\"\\\\f4e2\"}.fa-battery-2:before,.fa-battery-quarter:before{content:\"\\\\f243\"}.fa-radio:before{content:\"\\\\f8d7\"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:\"\\\\f77d\"}.fa-traffic-light:before{content:\"\\\\f637\"}.fa-thermometer:before{content:\"\\\\f491\"}.fa-vr-cardboard:before{content:\"\\\\f729\"}.fa-hand-middle-finger:before{content:\"\\\\f806\"}.fa-percent:before,.fa-percentage:before{content:\"\\\\25\"}.fa-truck-moving:before{content:\"\\\\f4df\"}.fa-glass-water-droplet:before{content:\"\\\\e4f5\"}.fa-display:before{content:\"\\\\e163\"}.fa-face-smile:before,.fa-smile:before{content:\"\\\\f118\"}.fa-thumb-tack:before,.fa-thumbtack:before{content:\"\\\\f08d\"}.fa-trophy:before{content:\"\\\\f091\"}.fa-person-praying:before,.fa-pray:before{content:\"\\\\f683\"}.fa-hammer:before{content:\"\\\\f6e3\"}.fa-hand-peace:before{content:\"\\\\f25b\"}.fa-rotate:before,.fa-sync-alt:before{content:\"\\\\f2f1\"}.fa-spinner:before{content:\"\\\\f110\"}.fa-robot:before{content:\"\\\\f544\"}.fa-peace:before{content:\"\\\\f67c\"}.fa-cogs:before,.fa-gears:before{content:\"\\\\f085\"}.fa-warehouse:before{content:\"\\\\f494\"}.fa-arrow-up-right-dots:before{content:\"\\\\e4b7\"}.fa-splotch:before{content:\"\\\\f5bc\"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:\"\\\\f584\"}.fa-dice-four:before{content:\"\\\\f524\"}.fa-sim-card:before{content:\"\\\\f7c4\"}.fa-transgender-alt:before,.fa-transgender:before{content:\"\\\\f225\"}.fa-mercury:before{content:\"\\\\f223\"}.fa-arrow-turn-down:before,.fa-level-down:before{content:\"\\\\f149\"}.fa-person-falling-burst:before{content:\"\\\\e547\"}.fa-award:before{content:\"\\\\f559\"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:\"\\\\f3ff\"}.fa-building:before{content:\"\\\\f1ad\"}.fa-angle-double-left:before,.fa-angles-left:before{content:\"\\\\f100\"}.fa-qrcode:before{content:\"\\\\f029\"}.fa-clock-rotate-left:before,.fa-history:before{content:\"\\\\f1da\"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:\"\\\\f583\"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:\"\\\\f56e\"}.fa-shield-blank:before,.fa-shield:before{content:\"\\\\f132\"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:\"\\\\f885\"}.fa-house-medical:before{content:\"\\\\e3b2\"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:\"\\\\f450\"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:\"\\\\f137\"}.fa-house-chimney-window:before{content:\"\\\\e00d\"}.fa-pen-nib:before{content:\"\\\\f5ad\"}.fa-tent-arrow-turn-left:before{content:\"\\\\e580\"}.fa-tents:before{content:\"\\\\e582\"}.fa-magic:before,.fa-wand-magic:before{content:\"\\\\f0d0\"}.fa-dog:before{content:\"\\\\f6d3\"}.fa-carrot:before{content:\"\\\\f787\"}.fa-moon:before{content:\"\\\\f186\"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:\"\\\\f5ce\"}.fa-cheese:before{content:\"\\\\f7ef\"}.fa-yin-yang:before{content:\"\\\\f6ad\"}.fa-music:before{content:\"\\\\f001\"}.fa-code-commit:before{content:\"\\\\f386\"}.fa-temperature-low:before{content:\"\\\\f76b\"}.fa-biking:before,.fa-person-biking:before{content:\"\\\\f84a\"}.fa-broom:before{content:\"\\\\f51a\"}.fa-shield-heart:before{content:\"\\\\e574\"}.fa-gopuram:before{content:\"\\\\f664\"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:\"\\\\e47b\"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:\"\\\\f2d3\"}.fa-hashtag:before{content:\"\\\\23\"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:\"\\\\f424\"}.fa-oil-can:before{content:\"\\\\f613\"}.fa-t:before{content:\"\\\\54\"}.fa-hippo:before{content:\"\\\\f6ed\"}.fa-chart-column:before{content:\"\\\\e0e3\"}.fa-infinity:before{content:\"\\\\f534\"}.fa-vial-circle-check:before{content:\"\\\\e596\"}.fa-person-arrow-down-to-line:before{content:\"\\\\e538\"}.fa-voicemail:before{content:\"\\\\f897\"}.fa-fan:before{content:\"\\\\f863\"}.fa-person-walking-luggage:before{content:\"\\\\e554\"}.fa-arrows-alt-v:before,.fa-up-down:before{content:\"\\\\f338\"}.fa-cloud-moon-rain:before{content:\"\\\\f73c\"}.fa-calendar:before{content:\"\\\\f133\"}.fa-trailer:before{content:\"\\\\e041\"}.fa-bahai:before,.fa-haykal:before{content:\"\\\\f666\"}.fa-sd-card:before{content:\"\\\\f7c2\"}.fa-dragon:before{content:\"\\\\f6d5\"}.fa-shoe-prints:before{content:\"\\\\f54b\"}.fa-circle-plus:before,.fa-plus-circle:before{content:\"\\\\f055\"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:\"\\\\f58b\"}.fa-hand-holding:before{content:\"\\\\f4bd\"}.fa-plug-circle-exclamation:before{content:\"\\\\e55d\"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:\"\\\\f127\"}.fa-clone:before{content:\"\\\\f24d\"}.fa-person-walking-arrow-loop-left:before{content:\"\\\\e551\"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:\"\\\\f882\"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:\"\\\\f7e4\"}.fa-tornado:before{content:\"\\\\f76f\"}.fa-file-circle-plus:before{content:\"\\\\e494\"}.fa-book-quran:before,.fa-quran:before{content:\"\\\\f687\"}.fa-anchor:before{content:\"\\\\f13d\"}.fa-border-all:before{content:\"\\\\f84c\"}.fa-angry:before,.fa-face-angry:before{content:\"\\\\f556\"}.fa-cookie-bite:before{content:\"\\\\f564\"}.fa-arrow-trend-down:before{content:\"\\\\e097\"}.fa-feed:before,.fa-rss:before{content:\"\\\\f09e\"}.fa-draw-polygon:before{content:\"\\\\f5ee\"}.fa-balance-scale:before,.fa-scale-balanced:before{content:\"\\\\f24e\"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:\"\\\\f62a\"}.fa-shower:before{content:\"\\\\f2cc\"}.fa-desktop-alt:before,.fa-desktop:before{content:\"\\\\f390\"}.fa-m:before{content:\"\\\\4d\"}.fa-table-list:before,.fa-th-list:before{content:\"\\\\f00b\"}.fa-comment-sms:before,.fa-sms:before{content:\"\\\\f7cd\"}.fa-book:before{content:\"\\\\f02d\"}.fa-user-plus:before{content:\"\\\\f234\"}.fa-check:before{content:\"\\\\f00c\"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:\"\\\\f241\"}.fa-house-circle-check:before{content:\"\\\\e509\"}.fa-angle-left:before{content:\"\\\\f104\"}.fa-diagram-successor:before{content:\"\\\\e47a\"}.fa-truck-arrow-right:before{content:\"\\\\e58b\"}.fa-arrows-split-up-and-left:before{content:\"\\\\e4bc\"}.fa-fist-raised:before,.fa-hand-fist:before{content:\"\\\\f6de\"}.fa-cloud-moon:before{content:\"\\\\f6c3\"}.fa-briefcase:before{content:\"\\\\f0b1\"}.fa-person-falling:before{content:\"\\\\e546\"}.fa-image-portrait:before,.fa-portrait:before{content:\"\\\\f3e0\"}.fa-user-tag:before{content:\"\\\\f507\"}.fa-rug:before{content:\"\\\\e569\"}.fa-earth-europe:before,.fa-globe-europe:before{content:\"\\\\f7a2\"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:\"\\\\f59d\"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:\"\\\\f410\"}.fa-baht-sign:before{content:\"\\\\e0ac\"}.fa-book-open:before{content:\"\\\\f518\"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:\"\\\\f66a\"}.fa-handcuffs:before{content:\"\\\\e4f8\"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:\"\\\\f071\"}.fa-database:before{content:\"\\\\f1c0\"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:\"\\\\f064\"}.fa-bottle-droplet:before{content:\"\\\\e4c4\"}.fa-mask-face:before{content:\"\\\\e1d7\"}.fa-hill-rockslide:before{content:\"\\\\e508\"}.fa-exchange-alt:before,.fa-right-left:before{content:\"\\\\f362\"}.fa-paper-plane:before{content:\"\\\\f1d8\"}.fa-road-circle-exclamation:before{content:\"\\\\e565\"}.fa-dungeon:before{content:\"\\\\f6d9\"}.fa-align-right:before{content:\"\\\\f038\"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:\"\\\\f53b\"}.fa-life-ring:before{content:\"\\\\f1cd\"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:\"\\\\f2a7\"}.fa-calendar-day:before{content:\"\\\\f783\"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:\"\\\\f5c5\"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:\"\\\\f07d\"}.fa-face-grimace:before,.fa-grimace:before{content:\"\\\\f57f\"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:\"\\\\e2ce\"}.fa-level-down-alt:before,.fa-turn-down:before{content:\"\\\\f3be\"}.fa-person-walking-arrow-right:before{content:\"\\\\e552\"}.fa-envelope-square:before,.fa-square-envelope:before{content:\"\\\\f199\"}.fa-dice:before{content:\"\\\\f522\"}.fa-bowling-ball:before{content:\"\\\\f436\"}.fa-brain:before{content:\"\\\\f5dc\"}.fa-band-aid:before,.fa-bandage:before{content:\"\\\\f462\"}.fa-calendar-minus:before{content:\"\\\\f272\"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:\"\\\\f057\"}.fa-gifts:before{content:\"\\\\f79c\"}.fa-hotel:before{content:\"\\\\f594\"}.fa-earth-asia:before,.fa-globe-asia:before{content:\"\\\\f57e\"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:\"\\\\f47f\"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:\"\\\\f00e\"}.fa-thumbs-up:before{content:\"\\\\f164\"}.fa-user-clock:before{content:\"\\\\f4fd\"}.fa-allergies:before,.fa-hand-dots:before{content:\"\\\\f461\"}.fa-file-invoice:before{content:\"\\\\f570\"}.fa-window-minimize:before{content:\"\\\\f2d1\"}.fa-coffee:before,.fa-mug-saucer:before{content:\"\\\\f0f4\"}.fa-brush:before{content:\"\\\\f55d\"}.fa-mask:before{content:\"\\\\f6fa\"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:\"\\\\f010\"}.fa-ruler-vertical:before{content:\"\\\\f548\"}.fa-user-alt:before,.fa-user-large:before{content:\"\\\\f406\"}.fa-train-tram:before{content:\"\\\\e5b4\"}.fa-user-nurse:before{content:\"\\\\f82f\"}.fa-syringe:before{content:\"\\\\f48e\"}.fa-cloud-sun:before{content:\"\\\\f6c4\"}.fa-stopwatch-20:before{content:\"\\\\e06f\"}.fa-square-full:before{content:\"\\\\f45c\"}.fa-magnet:before{content:\"\\\\f076\"}.fa-jar:before{content:\"\\\\e516\"}.fa-note-sticky:before,.fa-sticky-note:before{content:\"\\\\f249\"}.fa-bug-slash:before{content:\"\\\\e490\"}.fa-arrow-up-from-water-pump:before{content:\"\\\\e4b6\"}.fa-bone:before{content:\"\\\\f5d7\"}.fa-user-injured:before{content:\"\\\\f728\"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:\"\\\\f5b4\"}.fa-plane:before{content:\"\\\\f072\"}.fa-tent-arrows-down:before{content:\"\\\\e581\"}.fa-exclamation:before{content:\"\\\\21\"}.fa-arrows-spin:before{content:\"\\\\e4bb\"}.fa-print:before{content:\"\\\\f02f\"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:\"\\\\e2bb\"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:\"\\\\24\"}.fa-x:before{content:\"\\\\58\"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:\"\\\\f688\"}.fa-users-cog:before,.fa-users-gear:before{content:\"\\\\f509\"}.fa-person-military-pointing:before{content:\"\\\\e54a\"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:\"\\\\f19c\"}.fa-umbrella:before{content:\"\\\\f0e9\"}.fa-trowel:before{content:\"\\\\e589\"}.fa-d:before{content:\"\\\\44\"}.fa-stapler:before{content:\"\\\\e5af\"}.fa-masks-theater:before,.fa-theater-masks:before{content:\"\\\\f630\"}.fa-kip-sign:before{content:\"\\\\e1c4\"}.fa-hand-point-left:before{content:\"\\\\f0a5\"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:\"\\\\f4c6\"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:\"\\\\f0fb\"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:\"\\\\f1e1\"}.fa-barcode:before{content:\"\\\\f02a\"}.fa-plus-minus:before{content:\"\\\\e43c\"}.fa-video-camera:before,.fa-video:before{content:\"\\\\f03d\"}.fa-graduation-cap:before,.fa-mortar-board:before{content:\"\\\\f19d\"}.fa-hand-holding-medical:before{content:\"\\\\e05c\"}.fa-person-circle-check:before{content:\"\\\\e53e\"}.fa-level-up-alt:before,.fa-turn-up:before{content:\"\\\\f3bf\"}\r\n.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:\"Font Awesome 6 Brands\";--fa-font-brands:normal 400 1em/1 \"Font Awesome 6 Brands\"}@font-face{font-family:\"Font Awesome 6 Brands\";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:\"\\\\f3d0\"}.fa-hooli:before{content:\"\\\\f427\"}.fa-yelp:before{content:\"\\\\f1e9\"}.fa-cc-visa:before{content:\"\\\\f1f0\"}.fa-lastfm:before{content:\"\\\\f202\"}.fa-shopware:before{content:\"\\\\f5b5\"}.fa-creative-commons-nc:before{content:\"\\\\f4e8\"}.fa-aws:before{content:\"\\\\f375\"}.fa-redhat:before{content:\"\\\\f7bc\"}.fa-yoast:before{content:\"\\\\f2b1\"}.fa-cloudflare:before{content:\"\\\\e07d\"}.fa-ups:before{content:\"\\\\f7e0\"}.fa-wpexplorer:before{content:\"\\\\f2de\"}.fa-dyalog:before{content:\"\\\\f399\"}.fa-bity:before{content:\"\\\\f37a\"}.fa-stackpath:before{content:\"\\\\f842\"}.fa-buysellads:before{content:\"\\\\f20d\"}.fa-first-order:before{content:\"\\\\f2b0\"}.fa-modx:before{content:\"\\\\f285\"}.fa-guilded:before{content:\"\\\\e07e\"}.fa-vnv:before{content:\"\\\\f40b\"}.fa-js-square:before,.fa-square-js:before{content:\"\\\\f3b9\"}.fa-microsoft:before{content:\"\\\\f3ca\"}.fa-qq:before{content:\"\\\\f1d6\"}.fa-orcid:before{content:\"\\\\f8d2\"}.fa-java:before{content:\"\\\\f4e4\"}.fa-invision:before{content:\"\\\\f7b0\"}.fa-creative-commons-pd-alt:before{content:\"\\\\f4ed\"}.fa-centercode:before{content:\"\\\\f380\"}.fa-glide-g:before{content:\"\\\\f2a6\"}.fa-drupal:before{content:\"\\\\f1a9\"}.fa-hire-a-helper:before{content:\"\\\\f3b0\"}.fa-creative-commons-by:before{content:\"\\\\f4e7\"}.fa-unity:before{content:\"\\\\e049\"}.fa-whmcs:before{content:\"\\\\f40d\"}.fa-rocketchat:before{content:\"\\\\f3e8\"}.fa-vk:before{content:\"\\\\f189\"}.fa-untappd:before{content:\"\\\\f405\"}.fa-mailchimp:before{content:\"\\\\f59e\"}.fa-css3-alt:before{content:\"\\\\f38b\"}.fa-reddit-square:before,.fa-square-reddit:before{content:\"\\\\f1a2\"}.fa-vimeo-v:before{content:\"\\\\f27d\"}.fa-contao:before{content:\"\\\\f26d\"}.fa-square-font-awesome:before{content:\"\\\\e5ad\"}.fa-deskpro:before{content:\"\\\\f38f\"}.fa-sistrix:before{content:\"\\\\f3ee\"}.fa-instagram-square:before,.fa-square-instagram:before{content:\"\\\\e055\"}.fa-battle-net:before{content:\"\\\\f835\"}.fa-the-red-yeti:before{content:\"\\\\f69d\"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:\"\\\\f3af\"}.fa-edge:before{content:\"\\\\f282\"}.fa-threads:before{content:\"\\\\e618\"}.fa-napster:before{content:\"\\\\f3d2\"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:\"\\\\f2ad\"}.fa-google-plus-g:before{content:\"\\\\f0d5\"}.fa-artstation:before{content:\"\\\\f77a\"}.fa-markdown:before{content:\"\\\\f60f\"}.fa-sourcetree:before{content:\"\\\\f7d3\"}.fa-google-plus:before{content:\"\\\\f2b3\"}.fa-diaspora:before{content:\"\\\\f791\"}.fa-foursquare:before{content:\"\\\\f180\"}.fa-stack-overflow:before{content:\"\\\\f16c\"}.fa-github-alt:before{content:\"\\\\f113\"}.fa-phoenix-squadron:before{content:\"\\\\f511\"}.fa-pagelines:before{content:\"\\\\f18c\"}.fa-algolia:before{content:\"\\\\f36c\"}.fa-red-river:before{content:\"\\\\f3e3\"}.fa-creative-commons-sa:before{content:\"\\\\f4ef\"}.fa-safari:before{content:\"\\\\f267\"}.fa-google:before{content:\"\\\\f1a0\"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:\"\\\\f35c\"}.fa-atlassian:before{content:\"\\\\f77b\"}.fa-linkedin-in:before{content:\"\\\\f0e1\"}.fa-digital-ocean:before{content:\"\\\\f391\"}.fa-nimblr:before{content:\"\\\\f5a8\"}.fa-chromecast:before{content:\"\\\\f838\"}.fa-evernote:before{content:\"\\\\f839\"}.fa-hacker-news:before{content:\"\\\\f1d4\"}.fa-creative-commons-sampling:before{content:\"\\\\f4f0\"}.fa-adversal:before{content:\"\\\\f36a\"}.fa-creative-commons:before{content:\"\\\\f25e\"}.fa-watchman-monitoring:before{content:\"\\\\e087\"}.fa-fonticons:before{content:\"\\\\f280\"}.fa-weixin:before{content:\"\\\\f1d7\"}.fa-shirtsinbulk:before{content:\"\\\\f214\"}.fa-codepen:before{content:\"\\\\f1cb\"}.fa-git-alt:before{content:\"\\\\f841\"}.fa-lyft:before{content:\"\\\\f3c3\"}.fa-rev:before{content:\"\\\\f5b2\"}.fa-windows:before{content:\"\\\\f17a\"}.fa-wizards-of-the-coast:before{content:\"\\\\f730\"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:\"\\\\f2aa\"}.fa-meetup:before{content:\"\\\\f2e0\"}.fa-centos:before{content:\"\\\\f789\"}.fa-adn:before{content:\"\\\\f170\"}.fa-cloudsmith:before{content:\"\\\\f384\"}.fa-pied-piper-alt:before{content:\"\\\\f1a8\"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:\"\\\\f397\"}.fa-codiepie:before{content:\"\\\\f284\"}.fa-node:before{content:\"\\\\f419\"}.fa-mix:before{content:\"\\\\f3cb\"}.fa-steam:before{content:\"\\\\f1b6\"}.fa-cc-apple-pay:before{content:\"\\\\f416\"}.fa-scribd:before{content:\"\\\\f28a\"}.fa-debian:before{content:\"\\\\e60b\"}.fa-openid:before{content:\"\\\\f19b\"}.fa-instalod:before{content:\"\\\\e081\"}.fa-expeditedssl:before{content:\"\\\\f23e\"}.fa-sellcast:before{content:\"\\\\f2da\"}.fa-square-twitter:before,.fa-twitter-square:before{content:\"\\\\f081\"}.fa-r-project:before{content:\"\\\\f4f7\"}.fa-delicious:before{content:\"\\\\f1a5\"}.fa-freebsd:before{content:\"\\\\f3a4\"}.fa-vuejs:before{content:\"\\\\f41f\"}.fa-accusoft:before{content:\"\\\\f369\"}.fa-ioxhost:before{content:\"\\\\f208\"}.fa-fonticons-fi:before{content:\"\\\\f3a2\"}.fa-app-store:before{content:\"\\\\f36f\"}.fa-cc-mastercard:before{content:\"\\\\f1f1\"}.fa-itunes-note:before{content:\"\\\\f3b5\"}.fa-golang:before{content:\"\\\\e40f\"}.fa-kickstarter:before{content:\"\\\\f3bb\"}.fa-grav:before{content:\"\\\\f2d6\"}.fa-weibo:before{content:\"\\\\f18a\"}.fa-uncharted:before{content:\"\\\\e084\"}.fa-firstdraft:before{content:\"\\\\f3a1\"}.fa-square-youtube:before,.fa-youtube-square:before{content:\"\\\\f431\"}.fa-wikipedia-w:before{content:\"\\\\f266\"}.fa-rendact:before,.fa-wpressr:before{content:\"\\\\f3e4\"}.fa-angellist:before{content:\"\\\\f209\"}.fa-galactic-republic:before{content:\"\\\\f50c\"}.fa-nfc-directional:before{content:\"\\\\e530\"}.fa-skype:before{content:\"\\\\f17e\"}.fa-joget:before{content:\"\\\\f3b7\"}.fa-fedora:before{content:\"\\\\f798\"}.fa-stripe-s:before{content:\"\\\\f42a\"}.fa-meta:before{content:\"\\\\e49b\"}.fa-laravel:before{content:\"\\\\f3bd\"}.fa-hotjar:before{content:\"\\\\f3b1\"}.fa-bluetooth-b:before{content:\"\\\\f294\"}.fa-sticker-mule:before{content:\"\\\\f3f7\"}.fa-creative-commons-zero:before{content:\"\\\\f4f3\"}.fa-hips:before{content:\"\\\\f452\"}.fa-behance:before{content:\"\\\\f1b4\"}.fa-reddit:before{content:\"\\\\f1a1\"}.fa-discord:before{content:\"\\\\f392\"}.fa-chrome:before{content:\"\\\\f268\"}.fa-app-store-ios:before{content:\"\\\\f370\"}.fa-cc-discover:before{content:\"\\\\f1f2\"}.fa-wpbeginner:before{content:\"\\\\f297\"}.fa-confluence:before{content:\"\\\\f78d\"}.fa-mdb:before{content:\"\\\\f8ca\"}.fa-dochub:before{content:\"\\\\f394\"}.fa-accessible-icon:before{content:\"\\\\f368\"}.fa-ebay:before{content:\"\\\\f4f4\"}.fa-amazon:before{content:\"\\\\f270\"}.fa-unsplash:before{content:\"\\\\e07c\"}.fa-yarn:before{content:\"\\\\f7e3\"}.fa-square-steam:before,.fa-steam-square:before{content:\"\\\\f1b7\"}.fa-500px:before{content:\"\\\\f26e\"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:\"\\\\f194\"}.fa-asymmetrik:before{content:\"\\\\f372\"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:\"\\\\f2b4\"}.fa-gratipay:before{content:\"\\\\f184\"}.fa-apple:before{content:\"\\\\f179\"}.fa-hive:before{content:\"\\\\e07f\"}.fa-gitkraken:before{content:\"\\\\f3a6\"}.fa-keybase:before{content:\"\\\\f4f5\"}.fa-apple-pay:before{content:\"\\\\f415\"}.fa-padlet:before{content:\"\\\\e4a0\"}.fa-amazon-pay:before{content:\"\\\\f42c\"}.fa-github-square:before,.fa-square-github:before{content:\"\\\\f092\"}.fa-stumbleupon:before{content:\"\\\\f1a4\"}.fa-fedex:before{content:\"\\\\f797\"}.fa-phoenix-framework:before{content:\"\\\\f3dc\"}.fa-shopify:before{content:\"\\\\e057\"}.fa-neos:before{content:\"\\\\f612\"}.fa-square-threads:before{content:\"\\\\e619\"}.fa-hackerrank:before{content:\"\\\\f5f7\"}.fa-researchgate:before{content:\"\\\\f4f8\"}.fa-swift:before{content:\"\\\\f8e1\"}.fa-angular:before{content:\"\\\\f420\"}.fa-speakap:before{content:\"\\\\f3f3\"}.fa-angrycreative:before{content:\"\\\\f36e\"}.fa-y-combinator:before{content:\"\\\\f23b\"}.fa-empire:before{content:\"\\\\f1d1\"}.fa-envira:before{content:\"\\\\f299\"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:\"\\\\e5ae\"}.fa-studiovinari:before{content:\"\\\\f3f8\"}.fa-pied-piper:before{content:\"\\\\f2ae\"}.fa-wordpress:before{content:\"\\\\f19a\"}.fa-product-hunt:before{content:\"\\\\f288\"}.fa-firefox:before{content:\"\\\\f269\"}.fa-linode:before{content:\"\\\\f2b8\"}.fa-goodreads:before{content:\"\\\\f3a8\"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:\"\\\\f264\"}.fa-jsfiddle:before{content:\"\\\\f1cc\"}.fa-sith:before{content:\"\\\\f512\"}.fa-themeisle:before{content:\"\\\\f2b2\"}.fa-page4:before{content:\"\\\\f3d7\"}.fa-hashnode:before{content:\"\\\\e499\"}.fa-react:before{content:\"\\\\f41b\"}.fa-cc-paypal:before{content:\"\\\\f1f4\"}.fa-squarespace:before{content:\"\\\\f5be\"}.fa-cc-stripe:before{content:\"\\\\f1f5\"}.fa-creative-commons-share:before{content:\"\\\\f4f2\"}.fa-bitcoin:before{content:\"\\\\f379\"}.fa-keycdn:before{content:\"\\\\f3ba\"}.fa-opera:before{content:\"\\\\f26a\"}.fa-itch-io:before{content:\"\\\\f83a\"}.fa-umbraco:before{content:\"\\\\f8e8\"}.fa-galactic-senate:before{content:\"\\\\f50d\"}.fa-ubuntu:before{content:\"\\\\f7df\"}.fa-draft2digital:before{content:\"\\\\f396\"}.fa-stripe:before{content:\"\\\\f429\"}.fa-houzz:before{content:\"\\\\f27c\"}.fa-gg:before{content:\"\\\\f260\"}.fa-dhl:before{content:\"\\\\f790\"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:\"\\\\f0d3\"}.fa-xing:before{content:\"\\\\f168\"}.fa-blackberry:before{content:\"\\\\f37b\"}.fa-creative-commons-pd:before{content:\"\\\\f4ec\"}.fa-playstation:before{content:\"\\\\f3df\"}.fa-quinscape:before{content:\"\\\\f459\"}.fa-less:before{content:\"\\\\f41d\"}.fa-blogger-b:before{content:\"\\\\f37d\"}.fa-opencart:before{content:\"\\\\f23d\"}.fa-vine:before{content:\"\\\\f1ca\"}.fa-paypal:before{content:\"\\\\f1ed\"}.fa-gitlab:before{content:\"\\\\f296\"}.fa-typo3:before{content:\"\\\\f42b\"}.fa-reddit-alien:before{content:\"\\\\f281\"}.fa-yahoo:before{content:\"\\\\f19e\"}.fa-dailymotion:before{content:\"\\\\e052\"}.fa-affiliatetheme:before{content:\"\\\\f36b\"}.fa-pied-piper-pp:before{content:\"\\\\f1a7\"}.fa-bootstrap:before{content:\"\\\\f836\"}.fa-odnoklassniki:before{content:\"\\\\f263\"}.fa-nfc-symbol:before{content:\"\\\\e531\"}.fa-ethereum:before{content:\"\\\\f42e\"}.fa-speaker-deck:before{content:\"\\\\f83c\"}.fa-creative-commons-nc-eu:before{content:\"\\\\f4e9\"}.fa-patreon:before{content:\"\\\\f3d9\"}.fa-avianex:before{content:\"\\\\f374\"}.fa-ello:before{content:\"\\\\f5f1\"}.fa-gofore:before{content:\"\\\\f3a7\"}.fa-bimobject:before{content:\"\\\\f378\"}.fa-facebook-f:before{content:\"\\\\f39e\"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:\"\\\\f0d4\"}.fa-mandalorian:before{content:\"\\\\f50f\"}.fa-first-order-alt:before{content:\"\\\\f50a\"}.fa-osi:before{content:\"\\\\f41a\"}.fa-google-wallet:before{content:\"\\\\f1ee\"}.fa-d-and-d-beyond:before{content:\"\\\\f6ca\"}.fa-periscope:before{content:\"\\\\f3da\"}.fa-fulcrum:before{content:\"\\\\f50b\"}.fa-cloudscale:before{content:\"\\\\f383\"}.fa-forumbee:before{content:\"\\\\f211\"}.fa-mizuni:before{content:\"\\\\f3cc\"}.fa-schlix:before{content:\"\\\\f3ea\"}.fa-square-xing:before,.fa-xing-square:before{content:\"\\\\f169\"}.fa-bandcamp:before{content:\"\\\\f2d5\"}.fa-wpforms:before{content:\"\\\\f298\"}.fa-cloudversify:before{content:\"\\\\f385\"}.fa-usps:before{content:\"\\\\f7e1\"}.fa-megaport:before{content:\"\\\\f5a3\"}.fa-magento:before{content:\"\\\\f3c4\"}.fa-spotify:before{content:\"\\\\f1bc\"}.fa-optin-monster:before{content:\"\\\\f23c\"}.fa-fly:before{content:\"\\\\f417\"}.fa-aviato:before{content:\"\\\\f421\"}.fa-itunes:before{content:\"\\\\f3b4\"}.fa-cuttlefish:before{content:\"\\\\f38c\"}.fa-blogger:before{content:\"\\\\f37c\"}.fa-flickr:before{content:\"\\\\f16e\"}.fa-viber:before{content:\"\\\\f409\"}.fa-soundcloud:before{content:\"\\\\f1be\"}.fa-digg:before{content:\"\\\\f1a6\"}.fa-tencent-weibo:before{content:\"\\\\f1d5\"}.fa-symfony:before{content:\"\\\\f83d\"}.fa-maxcdn:before{content:\"\\\\f136\"}.fa-etsy:before{content:\"\\\\f2d7\"}.fa-facebook-messenger:before{content:\"\\\\f39f\"}.fa-audible:before{content:\"\\\\f373\"}.fa-think-peaks:before{content:\"\\\\f731\"}.fa-bilibili:before{content:\"\\\\e3d9\"}.fa-erlang:before{content:\"\\\\f39d\"}.fa-x-twitter:before{content:\"\\\\e61b\"}.fa-cotton-bureau:before{content:\"\\\\f89e\"}.fa-dashcube:before{content:\"\\\\f210\"}.fa-42-group:before,.fa-innosoft:before{content:\"\\\\e080\"}.fa-stack-exchange:before{content:\"\\\\f18d\"}.fa-elementor:before{content:\"\\\\f430\"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:\"\\\\e01e\"}.fa-creative-commons-nd:before{content:\"\\\\f4eb\"}.fa-palfed:before{content:\"\\\\f3d8\"}.fa-superpowers:before{content:\"\\\\f2dd\"}.fa-resolving:before{content:\"\\\\f3e7\"}.fa-xbox:before{content:\"\\\\f412\"}.fa-searchengin:before{content:\"\\\\f3eb\"}.fa-tiktok:before{content:\"\\\\e07b\"}.fa-facebook-square:before,.fa-square-facebook:before{content:\"\\\\f082\"}.fa-renren:before{content:\"\\\\f18b\"}.fa-linux:before{content:\"\\\\f17c\"}.fa-glide:before{content:\"\\\\f2a5\"}.fa-linkedin:before{content:\"\\\\f08c\"}.fa-hubspot:before{content:\"\\\\f3b2\"}.fa-deploydog:before{content:\"\\\\f38e\"}.fa-twitch:before{content:\"\\\\f1e8\"}.fa-ravelry:before{content:\"\\\\f2d9\"}.fa-mixer:before{content:\"\\\\e056\"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:\"\\\\f203\"}.fa-vimeo:before{content:\"\\\\f40a\"}.fa-mendeley:before{content:\"\\\\f7b3\"}.fa-uniregistry:before{content:\"\\\\f404\"}.fa-figma:before{content:\"\\\\f799\"}.fa-creative-commons-remix:before{content:\"\\\\f4ee\"}.fa-cc-amazon-pay:before{content:\"\\\\f42d\"}.fa-dropbox:before{content:\"\\\\f16b\"}.fa-instagram:before{content:\"\\\\f16d\"}.fa-cmplid:before{content:\"\\\\e360\"}.fa-facebook:before{content:\"\\\\f09a\"}.fa-gripfire:before{content:\"\\\\f3ac\"}.fa-jedi-order:before{content:\"\\\\f50e\"}.fa-uikit:before{content:\"\\\\f403\"}.fa-fort-awesome-alt:before{content:\"\\\\f3a3\"}.fa-phabricator:before{content:\"\\\\f3db\"}.fa-ussunnah:before{content:\"\\\\f407\"}.fa-earlybirds:before{content:\"\\\\f39a\"}.fa-trade-federation:before{content:\"\\\\f513\"}.fa-autoprefixer:before{content:\"\\\\f41c\"}.fa-whatsapp:before{content:\"\\\\f232\"}.fa-slideshare:before{content:\"\\\\f1e7\"}.fa-google-play:before{content:\"\\\\f3ab\"}.fa-viadeo:before{content:\"\\\\f2a9\"}.fa-line:before{content:\"\\\\f3c0\"}.fa-google-drive:before{content:\"\\\\f3aa\"}.fa-servicestack:before{content:\"\\\\f3ec\"}.fa-simplybuilt:before{content:\"\\\\f215\"}.fa-bitbucket:before{content:\"\\\\f171\"}.fa-imdb:before{content:\"\\\\f2d8\"}.fa-deezer:before{content:\"\\\\e077\"}.fa-raspberry-pi:before{content:\"\\\\f7bb\"}.fa-jira:before{content:\"\\\\f7b1\"}.fa-docker:before{content:\"\\\\f395\"}.fa-screenpal:before{content:\"\\\\e570\"}.fa-bluetooth:before{content:\"\\\\f293\"}.fa-gitter:before{content:\"\\\\f426\"}.fa-d-and-d:before{content:\"\\\\f38d\"}.fa-microblog:before{content:\"\\\\e01a\"}.fa-cc-diners-club:before{content:\"\\\\f24c\"}.fa-gg-circle:before{content:\"\\\\f261\"}.fa-pied-piper-hat:before{content:\"\\\\f4e5\"}.fa-kickstarter-k:before{content:\"\\\\f3bc\"}.fa-yandex:before{content:\"\\\\f413\"}.fa-readme:before{content:\"\\\\f4d5\"}.fa-html5:before{content:\"\\\\f13b\"}.fa-sellsy:before{content:\"\\\\f213\"}.fa-sass:before{content:\"\\\\f41e\"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:\"\\\\e2d0\"}.fa-buromobelexperte:before{content:\"\\\\f37f\"}.fa-salesforce:before{content:\"\\\\f83b\"}.fa-octopus-deploy:before{content:\"\\\\e082\"}.fa-medapps:before{content:\"\\\\f3c6\"}.fa-ns8:before{content:\"\\\\f3d5\"}.fa-pinterest-p:before{content:\"\\\\f231\"}.fa-apper:before{content:\"\\\\f371\"}.fa-fort-awesome:before{content:\"\\\\f286\"}.fa-waze:before{content:\"\\\\f83f\"}.fa-cc-jcb:before{content:\"\\\\f24b\"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:\"\\\\f2ab\"}.fa-fantasy-flight-games:before{content:\"\\\\f6dc\"}.fa-rust:before{content:\"\\\\e07a\"}.fa-wix:before{content:\"\\\\f5cf\"}.fa-behance-square:before,.fa-square-behance:before{content:\"\\\\f1b5\"}.fa-supple:before{content:\"\\\\f3f9\"}.fa-rebel:before{content:\"\\\\f1d0\"}.fa-css3:before{content:\"\\\\f13c\"}.fa-staylinked:before{content:\"\\\\f3f5\"}.fa-kaggle:before{content:\"\\\\f5fa\"}.fa-space-awesome:before{content:\"\\\\e5ac\"}.fa-deviantart:before{content:\"\\\\f1bd\"}.fa-cpanel:before{content:\"\\\\f388\"}.fa-goodreads-g:before{content:\"\\\\f3a9\"}.fa-git-square:before,.fa-square-git:before{content:\"\\\\f1d2\"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:\"\\\\f174\"}.fa-trello:before{content:\"\\\\f181\"}.fa-creative-commons-nc-jp:before{content:\"\\\\f4ea\"}.fa-get-pocket:before{content:\"\\\\f265\"}.fa-perbyte:before{content:\"\\\\e083\"}.fa-grunt:before{content:\"\\\\f3ad\"}.fa-weebly:before{content:\"\\\\f5cc\"}.fa-connectdevelop:before{content:\"\\\\f20e\"}.fa-leanpub:before{content:\"\\\\f212\"}.fa-black-tie:before{content:\"\\\\f27e\"}.fa-themeco:before{content:\"\\\\f5c6\"}.fa-python:before{content:\"\\\\f3e2\"}.fa-android:before{content:\"\\\\f17b\"}.fa-bots:before{content:\"\\\\e340\"}.fa-free-code-camp:before{content:\"\\\\f2c5\"}.fa-hornbill:before{content:\"\\\\f592\"}.fa-js:before{content:\"\\\\f3b8\"}.fa-ideal:before{content:\"\\\\e013\"}.fa-git:before{content:\"\\\\f1d3\"}.fa-dev:before{content:\"\\\\f6cc\"}.fa-sketch:before{content:\"\\\\f7c6\"}.fa-yandex-international:before{content:\"\\\\f414\"}.fa-cc-amex:before{content:\"\\\\f1f3\"}.fa-uber:before{content:\"\\\\f402\"}.fa-github:before{content:\"\\\\f09b\"}.fa-php:before{content:\"\\\\f457\"}.fa-alipay:before{content:\"\\\\f642\"}.fa-youtube:before{content:\"\\\\f167\"}.fa-skyatlas:before{content:\"\\\\f216\"}.fa-firefox-browser:before{content:\"\\\\e007\"}.fa-replyd:before{content:\"\\\\f3e6\"}.fa-suse:before{content:\"\\\\f7d6\"}.fa-jenkins:before{content:\"\\\\f3b6\"}.fa-twitter:before{content:\"\\\\f099\"}.fa-rockrms:before{content:\"\\\\f3e9\"}.fa-pinterest:before{content:\"\\\\f0d2\"}.fa-buffer:before{content:\"\\\\f837\"}.fa-npm:before{content:\"\\\\f3d4\"}.fa-yammer:before{content:\"\\\\f840\"}.fa-btc:before{content:\"\\\\f15a\"}.fa-dribbble:before{content:\"\\\\f17d\"}.fa-stumbleupon-circle:before{content:\"\\\\f1a3\"}.fa-internet-explorer:before{content:\"\\\\f26b\"}.fa-stubber:before{content:\"\\\\e5c7\"}.fa-telegram-plane:before,.fa-telegram:before{content:\"\\\\f2c6\"}.fa-old-republic:before{content:\"\\\\f510\"}.fa-odysee:before{content:\"\\\\e5c6\"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:\"\\\\f40c\"}.fa-node-js:before{content:\"\\\\f3d3\"}.fa-edge-legacy:before{content:\"\\\\e078\"}.fa-slack-hash:before,.fa-slack:before{content:\"\\\\f198\"}.fa-medrt:before{content:\"\\\\f3c8\"}.fa-usb:before{content:\"\\\\f287\"}.fa-tumblr:before{content:\"\\\\f173\"}.fa-vaadin:before{content:\"\\\\f408\"}.fa-quora:before{content:\"\\\\f2c4\"}.fa-square-x-twitter:before{content:\"\\\\e61a\"}.fa-reacteurope:before{content:\"\\\\f75d\"}.fa-medium-m:before,.fa-medium:before{content:\"\\\\f23a\"}.fa-amilia:before{content:\"\\\\f36d\"}.fa-mixcloud:before{content:\"\\\\f289\"}.fa-flipboard:before{content:\"\\\\f44d\"}.fa-viacoin:before{content:\"\\\\f237\"}.fa-critical-role:before{content:\"\\\\f6c9\"}.fa-sitrox:before{content:\"\\\\e44a\"}.fa-discourse:before{content:\"\\\\f393\"}.fa-joomla:before{content:\"\\\\f1aa\"}.fa-mastodon:before{content:\"\\\\f4f6\"}.fa-airbnb:before{content:\"\\\\f834\"}.fa-wolf-pack-battalion:before{content:\"\\\\f514\"}.fa-buy-n-large:before{content:\"\\\\f8a6\"}.fa-gulp:before{content:\"\\\\f3ae\"}.fa-creative-commons-sampling-plus:before{content:\"\\\\f4f1\"}.fa-strava:before{content:\"\\\\f428\"}.fa-ember:before{content:\"\\\\f423\"}.fa-canadian-maple-leaf:before{content:\"\\\\f785\"}.fa-teamspeak:before{content:\"\\\\f4f9\"}.fa-pushed:before{content:\"\\\\f3e1\"}.fa-wordpress-simple:before{content:\"\\\\f411\"}.fa-nutritionix:before{content:\"\\\\f3d6\"}.fa-wodu:before{content:\"\\\\e088\"}.fa-google-pay:before{content:\"\\\\e079\"}.fa-intercom:before{content:\"\\\\f7af\"}.fa-zhihu:before{content:\"\\\\f63f\"}.fa-korvue:before{content:\"\\\\f42f\"}.fa-pix:before{content:\"\\\\e43a\"}.fa-steam-symbol:before{content:\"\\\\f3f6\"}:host,:root{--fa-font-regular:normal 400 1em/1 \"Font Awesome 6 Free\"}@font-face{font-family:\"Font Awesome 6 Free\";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:\"Font Awesome 6 Free\";--fa-font-solid:normal 900 1em/1 \"Font Awesome 6 Free\"}@font-face{font-family:\"Font Awesome 6 Free\";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\")}.fa-solid,.fas{font-weight:900}@font-face{font-family:\"Font Awesome 5 Brands\";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\")}@font-face{font-family:\"Font Awesome 5 Free\";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\")}@font-face{font-family:\"Font Awesome 5 Free\";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\")}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format(\"woff2\"),url(../webfonts/fa-solid-900.ttf) format(\"truetype\")}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format(\"woff2\"),url(../webfonts/fa-brands-400.ttf) format(\"truetype\")}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format(\"woff2\"),url(../webfonts/fa-regular-400.ttf) format(\"truetype\");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:\"FontAwesome\";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format(\"woff2\"),url(../webfonts/fa-v4compatibility.ttf) format(\"truetype\");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}\r\n\r\n`;","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import Highcharts from 'highcharts/highcharts';\r\nimport STRINGS from '~/lang/strings_el.json';\r\nimport { html, css, LitElement } from \"lit\";\r\nimport { classMap } from 'lit/directives/class-map.js';\r\n\r\nexport default class Utils {\r\n    static amountColWidth=140;\r\n    static round(num, scale) {\r\n        if(!(\"\" + num).includes(\"e\")) {\r\n            return +(Math.round(num + \"e+\" + scale)  + \"e-\" + scale);\r\n        } else {\r\n            var arr = (\"\" + num).split(\"e\");\r\n            var sig = \"\"\r\n            if(+arr[1] + scale > 0) {\r\n            sig = \"+\";\r\n            }\r\n            return +(Math.round(+arr[0] + \"e\" + sig + (+arr[1] + scale)) + \"e-\" + scale);\r\n        }\r\n    }\r\n    static getPolicyColors(id){\r\n        let colors = {\r\n            \"4\": \"#29bba8\",\r\n            \"7\": \"#9bca40\",\r\n            \"8\": \"#f68946\",\r\n            \"6\": \"#db5e5b\",\r\n            \"5\": \"#07acda\"\r\n        };\r\n        return colors[id];\r\n    }\r\n    static getFundsColors(id){\r\n        let colors = {\r\n            \"610\":\"#344989\",\r\n            \"612\":\"#da710f\",\r\n            \"620\":\"#a654c6\",\r\n            \"640\":\"#ed4985\",\r\n            \"613\":\"#17becf\",\r\n            \"614\":\"#bcbd22\",\r\n        };\r\n        return colors[id];\r\n    }\r\n    static getCohesionColors(unit){\r\n        let color=\"\";\r\n        switch(unit){\r\n            case \"AMOUNT_TOTAL\":\r\n                color=\"#ff6262\";\r\n                break;\r\n            case \"AMOUNT_EU\":\r\n                color=\"#3f48cc\";\r\n                break;\r\n            case \"AMOUNT_NATIONAL\":\r\n                color=\"#22b14c\";\r\n                break;\r\n        }   \r\n        return color;\r\n    }\r\n    static getHighchartColors(){\r\n        let colors = ['#2caffe', '#544fc5', '#00e272', '#fe6a35', '#6b8abc', '#d568fb', '#2ee0ca', '#006400', '#feb56a', '#2f4f4f','#d7f50f','#91e8e1'];\r\n        //colors = colors.unshift(\"#d11b2f\");\r\n        \r\n        return Highcharts.map(colors, function (color) {\r\n            return {\r\n                radialGradient: {\r\n                    cx: 0.5,\r\n                    cy: 0.3,\r\n                    r: 0.7\r\n                },\r\n                stops: [\r\n                    [0, color],\r\n                    [1, Highcharts.color(color).brighten(-0.3).get('rgb')] // darken\r\n                ]\r\n            };\r\n        })\r\n    }\r\n    static getChartContainer(data,title){\r\n        return html`\r\n            <div class=${classMap(this.classes)} >\r\n                <div class=\"header\">\r\n                    <div class=\"title\">${title}</div>\r\n                    <div class=\"actions\">\r\n                        <button @click='${this._download}'class=\"downloadBtn\" aria-label=\"Download data\"><i class=\"fa-solid fa-download\"></i></button>\r\n                    </div>\r\n                </div>\r\n                <div class=\"tab-content\">\r\n                    <div class=\"chartPane tab-pane active\">\r\n                        <div id='container'>${(!data)?STRINGS.MESSAGES.LOADING:\"\"}</div>\r\n                    </div>\r\n                    <div class=\"tablePane tab-pane active\">\r\n                        <div id=\"gridContainer\" part=\"thegrid\" >\r\n                        <data-table exportparts=\"innerrow: innerrow\" id=\"grid\" .options=\"${this.tableOptions}\"></data-table>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        `;   \r\n    }\r\n    static getChartContainerSplit(data,title){\r\n        return html`\r\n            <div class=${classMap(this.classes)} >\r\n                <div class=\"header\">\r\n                    <div class=\"title\">${title}</div>\r\n                    <div class=\"actions\">\r\n                        <button @click='${this._download}'class=\"downloadBtn\" aria-label=\"Download data\"><i class=\"fa-solid fa-download\"></i></button>\r\n                    </div>\r\n                </div>\r\n                <div class=\"tab-content\">\r\n                    <div class=\"chartPane tab-pane active\">\r\n                        <div class=\"container-fluid\">\r\n                            <div class=\"row\">\r\n                                <div class=\"col-xs-12 col-sm-12 col-md-6\">\r\n                                    <div id='container1'>${(!data)?STRINGS.MESSAGES.LOADING:\"\"}</div>\r\n                                </div>\r\n                                <div class=\"col-xs-12 col-sm-12 col-md-6\">\r\n                                    <div id='container2'>${(!data)?STRINGS.MESSAGES.LOADING:\"\"}</div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"tablePane tab-pane active\">\r\n                        <div id=\"gridContainer\" >\r\n                        <data-table id=\"grid\" .options=\"${this.tableOptions}\"></data-table>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        `;   \r\n    }\r\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n  (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n    ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n    : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n    typeof console.error === 'function') {\n  console.error(\n    'This browser lacks typed array (Uint8Array) support which is required by ' +\n    '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n  )\n}\n\nfunction typedArraySupport () {\n  // Can typed array instances can be augmented?\n  try {\n    const arr = new Uint8Array(1)\n    const proto = { foo: function () { return 42 } }\n    Object.setPrototypeOf(proto, Uint8Array.prototype)\n    Object.setPrototypeOf(arr, proto)\n    return arr.foo() === 42\n  } catch (e) {\n    return false\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.buffer\n  }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.byteOffset\n  }\n})\n\nfunction createBuffer (length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n  }\n  // Return an augmented `Uint8Array` instance\n  const buf = new Uint8Array(length)\n  Object.setPrototypeOf(buf, Buffer.prototype)\n  return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError(\n        'The \"string\" argument must be of type string. Received type number'\n      )\n    }\n    return allocUnsafe(arg)\n  }\n  return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset)\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value)\n  }\n\n  if (value == null) {\n    throw new TypeError(\n      'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n      'or Array-like Object. Received type ' + (typeof value)\n    )\n  }\n\n  if (isInstance(value, ArrayBuffer) ||\n      (value && isInstance(value.buffer, ArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' &&\n      (isInstance(value, SharedArrayBuffer) ||\n      (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError(\n      'The \"value\" argument must not be of type number. Received type number'\n    )\n  }\n\n  const valueOf = value.valueOf && value.valueOf()\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length)\n  }\n\n  const b = fromObject(value)\n  if (b) return b\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n      typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n  }\n\n  throw new TypeError(\n    'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n    'or Array-like Object. Received type ' + (typeof value)\n  )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number')\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpreted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(size).fill(fill, encoding)\n      : createBuffer(size).fill(fill)\n  }\n  return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n  assertSize(size)\n  return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding)\n  }\n\n  const length = byteLength(string, encoding) | 0\n  let buf = createBuffer(length)\n\n  const actual = buf.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    buf = buf.slice(0, actual)\n  }\n\n  return buf\n}\n\nfunction fromArrayLike (array) {\n  const length = array.length < 0 ? 0 : checked(array.length) | 0\n  const buf = createBuffer(length)\n  for (let i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255\n  }\n  return buf\n}\n\nfunction fromArrayView (arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    const copy = new Uint8Array(arrayView)\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n  }\n  return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds')\n  }\n\n  let buf\n  if (byteOffset === undefined && length === undefined) {\n    buf = new Uint8Array(array)\n  } else if (length === undefined) {\n    buf = new Uint8Array(array, byteOffset)\n  } else {\n    buf = new Uint8Array(array, byteOffset, length)\n  }\n\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(buf, Buffer.prototype)\n\n  return buf\n}\n\nfunction fromObject (obj) {\n  if (Buffer.isBuffer(obj)) {\n    const len = checked(obj.length) | 0\n    const buf = createBuffer(len)\n\n    if (buf.length === 0) {\n      return buf\n    }\n\n    obj.copy(buf, 0, 0, len)\n    return buf\n  }\n\n  if (obj.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0)\n    }\n    return fromArrayLike(obj)\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data)\n  }\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= K_MAX_LENGTH) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return b != null && b._isBuffer === true &&\n    b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError(\n      'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n    )\n  }\n\n  if (a === b) return 0\n\n  let x = a.length\n  let y = b.length\n\n  for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!Array.isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  let i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  const buffer = Buffer.allocUnsafe(length)\n  let pos = 0\n  for (i = 0; i < list.length; ++i) {\n    let buf = list[i]\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n        buf.copy(buffer, pos)\n      } else {\n        Uint8Array.prototype.set.call(\n          buffer,\n          buf,\n          pos\n        )\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    } else {\n      buf.copy(buffer, pos)\n    }\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    throw new TypeError(\n      'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n      'Received type ' + typeof string\n    )\n  }\n\n  const len = string.length\n  const mustMatch = (arguments.length > 2 && arguments[2] === true)\n  if (!mustMatch && len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) {\n          return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n        }\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  let loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  const i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  const len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (let i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  const len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (let i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  const len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (let i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  const length = this.length\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  let str = ''\n  const max = exports.INSPECT_MAX_BYTES\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n  if (this.length > max) str += ' ... '\n  return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength)\n  }\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError(\n      'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n      'Received type ' + (typeof target)\n    )\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  let x = thisEnd - thisStart\n  let y = end - start\n  const len = Math.min(x, y)\n\n  const thisCopy = this.slice(thisStart, thisEnd)\n  const targetCopy = target.slice(start, end)\n\n  for (let i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset // Coerce to Number.\n  if (numberIsNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  let indexSize = 1\n  let arrLength = arr.length\n  let valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  let i\n  if (dir) {\n    let foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      let found = true\n      for (let j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  const remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  const strLen = string.length\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  let i\n  for (i = 0; i < length; ++i) {\n    const parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (numberIsNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset >>> 0\n    if (isFinite(length)) {\n      length = length >>> 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  const remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return asciiWrite(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  const res = []\n\n  let i = start\n  while (i < end) {\n    const firstByte = buf[i]\n    let codePoint = null\n    let bytesPerSequence = (firstByte > 0xEF)\n      ? 4\n      : (firstByte > 0xDF)\n          ? 3\n          : (firstByte > 0xBF)\n              ? 2\n              : 1\n\n    if (i + bytesPerSequence <= end) {\n      let secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  const len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  let res = ''\n  let i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  const len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  let out = ''\n  for (let i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]]\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  const bytes = buf.slice(start, end)\n  let res = ''\n  // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n  for (let i = 0; i < bytes.length - 1; i += 2) {\n    res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  const len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  const newBuf = this.subarray(start, end)\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  let val = this[offset + --byteLength]\n  let mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const lo = first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24\n\n  const hi = this[++offset] +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    last * 2 ** 24\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const hi = first * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  const lo = this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last\n\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let i = byteLength\n  let mul = 1\n  let val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = this[offset + 4] +\n    this[offset + 5] * 2 ** 8 +\n    this[offset + 6] * 2 ** 16 +\n    (last << 24) // Overflow\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = (first << 24) + // Overflow\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let mul = 1\n  let i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset + 3] = (value >>> 24)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 1] = (value >>> 8)\n  this[offset] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset + 7] = lo\n  lo = lo >> 8\n  buf[offset + 6] = lo\n  lo = lo >> 8\n  buf[offset + 5] = lo\n  lo = lo >> 8\n  buf[offset + 4] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset + 3] = hi\n  hi = hi >> 8\n  buf[offset + 2] = hi\n  hi = hi >> 8\n  buf[offset + 1] = hi\n  hi = hi >> 8\n  buf[offset] = hi\n  return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = 0\n  let mul = 1\n  let sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  let sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 3] = (value >>> 24)\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  const len = end - start\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end)\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, end),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n    if (val.length === 1) {\n      const code = val.charCodeAt(0)\n      if ((encoding === 'utf8' && code < 128) ||\n          encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  } else if (typeof val === 'boolean') {\n    val = Number(val)\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  let i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    const bytes = Buffer.isBuffer(val)\n      ? val\n      : Buffer.from(val, encoding)\n    const len = bytes.length\n    if (len === 0) {\n      throw new TypeError('The value \"' + val +\n        '\" is invalid for argument \"value\"')\n    }\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n  errors[sym] = class NodeError extends Base {\n    constructor () {\n      super()\n\n      Object.defineProperty(this, 'message', {\n        value: getMessage.apply(this, arguments),\n        writable: true,\n        configurable: true\n      })\n\n      // Add the error code to the name to include it in the stack trace.\n      this.name = `${this.name} [${sym}]`\n      // Access the stack to generate the error message including the error code\n      // from the name.\n      this.stack // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n      delete this.name\n    }\n\n    get code () {\n      return sym\n    }\n\n    set code (value) {\n      Object.defineProperty(this, 'code', {\n        configurable: true,\n        enumerable: true,\n        value,\n        writable: true\n      })\n    }\n\n    toString () {\n      return `${this.name} [${sym}]: ${this.message}`\n    }\n  }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n  function (name) {\n    if (name) {\n      return `${name} is outside of buffer bounds`\n    }\n\n    return 'Attempt to access memory outside buffer bounds'\n  }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n  function (name, actual) {\n    return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n  }, TypeError)\nE('ERR_OUT_OF_RANGE',\n  function (str, range, input) {\n    let msg = `The value of \"${str}\" is out of range.`\n    let received = input\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    }\n    msg += ` It must be ${range}. Received ${received}`\n    return msg\n  }, RangeError)\n\nfunction addNumericalSeparator (val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n  validateNumber(offset, 'offset')\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1))\n  }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    const n = typeof min === 'bigint' ? 'n' : ''\n    let range\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n      } else {\n        range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n                `${(byteLength + 1) * 8 - 1}${n}`\n      }\n    } else {\n      range = `>= ${min}${n} and <= ${max}${n}`\n    }\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n  }\n  checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n}\n\nfunction boundsError (value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type)\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n                                    `>= ${type ? 1 : 0} and <= ${length}`,\n                                    value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = str.trim().replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  let codePoint\n  const length = string.length\n  let leadSurrogate = null\n  const bytes = []\n\n  for (let i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  let c, hi, lo\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  let i\n  for (i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n  return obj instanceof type ||\n    (obj != null && obj.constructor != null && obj.constructor.name != null &&\n      obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n  // For IE11 support\n  return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n  const alphabet = '0123456789abcdef'\n  const table = new Array(256)\n  for (let i = 0; i < 16; ++i) {\n    const i16 = i * 16\n    for (let j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j]\n    }\n  }\n  return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n  throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n    console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n    console = window.console\n} else {\n    console = {}\n}\n\nvar functions = [\n    [log, \"log\"],\n    [info, \"info\"],\n    [warn, \"warn\"],\n    [error, \"error\"],\n    [time, \"time\"],\n    [timeEnd, \"timeEnd\"],\n    [trace, \"trace\"],\n    [dir, \"dir\"],\n    [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n    var tuple = functions[i]\n    var f = tuple[0]\n    var name = tuple[1]\n\n    if (!console[name]) {\n        console[name] = f\n    }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n    console.log.apply(console, arguments)\n}\n\nfunction warn() {\n    console.log.apply(console, arguments)\n}\n\nfunction error() {\n    console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n    times[label] = now()\n}\n\nfunction timeEnd(label) {\n    var time = times[label]\n    if (!time) {\n        throw new Error(\"No such label: \" + label)\n    }\n\n    delete times[label]\n    var duration = now() - time\n    console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n    var err = new Error()\n    err.name = \"Trace\"\n    err.message = util.format.apply(null, arguments)\n    console.error(err.stack)\n}\n\nfunction dir(object) {\n    console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n    if (!expression) {\n        var arr = slice.call(arguments, 1)\n        assert.ok(false, util.format.apply(null, arr))\n    }\n}\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n  if (target === undefined || target === null) {\n    throw new TypeError('Cannot convert first argument to object');\n  }\n\n  var to = Object(target);\n  for (var i = 1; i < arguments.length; i++) {\n    var nextSource = arguments[i];\n    if (nextSource === undefined || nextSource === null) {\n      continue;\n    }\n\n    var keysArray = Object.keys(Object(nextSource));\n    for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n      var nextKey = keysArray[nextIndex];\n      var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n      if (desc !== undefined && desc.enumerable) {\n        to[nextKey] = nextSource[nextKey];\n      }\n    }\n  }\n  return to;\n}\n\nfunction polyfill() {\n  if (!Object.assign) {\n    Object.defineProperty(Object, 'assign', {\n      enumerable: false,\n      configurable: true,\n      writable: true,\n      value: assign\n    });\n  }\n}\n\nmodule.exports = {\n  assign: assign,\n  polyfill: polyfill\n};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n    for (var i = 0, len = array.length; i < len; i++) {\n        if (hasOwnProperty.call(array, i)) {\n            if (receiver == null) {\n                iterator(array[i], i, array);\n            } else {\n                iterator.call(receiver, array[i], i, array);\n            }\n        }\n    }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n    for (var i = 0, len = string.length; i < len; i++) {\n        // no such thing as a sparse string.\n        if (receiver == null) {\n            iterator(string.charAt(i), i, string);\n        } else {\n            iterator.call(receiver, string.charAt(i), i, string);\n        }\n    }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n    for (var k in object) {\n        if (hasOwnProperty.call(object, k)) {\n            if (receiver == null) {\n                iterator(object[k], k, object);\n            } else {\n                iterator.call(receiver, object[k], k, object);\n            }\n        }\n    }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n    if (!isCallable(iterator)) {\n        throw new TypeError('iterator must be a function');\n    }\n\n    var receiver;\n    if (arguments.length >= 3) {\n        receiver = thisArg;\n    }\n\n    if (toStr.call(list) === '[object Array]') {\n        forEachArray(list, iterator, receiver);\n    } else if (typeof list === 'string') {\n        forEachString(list, iterator, receiver);\n    } else {\n        forEachObject(list, iterator, receiver);\n    }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slice.call(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                args.concat(slice.call(arguments))\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        } else {\n            return target.apply(\n                that,\n                args.concat(slice.call(arguments))\n            );\n        }\n    };\n\n    var boundLength = Math.max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs.push('$' + i);\n    }\n\n    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","/*\n Highcharts JS v11.1.0 (2023-06-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n'use strict';(function(U,M){\"object\"===typeof module&&module.exports?(M[\"default\"]=M,module.exports=U.document?M(U):M):\"function\"===typeof define&&define.amd?define(\"highcharts/highcharts\",function(){return M(U)}):(U.Highcharts&&U.Highcharts.error(16,!0),U.Highcharts=M(U))})(\"undefined\"!==typeof window?window:this,function(U){function M(a,y,I,L){a.hasOwnProperty(y)||(a[y]=L.apply(null,I),\"function\"===typeof CustomEvent&&U.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:y,module:a[y]}})))}\nvar a={};M(a,\"Core/Globals.js\",[],function(){var a;(function(a){a.SVG_NS=\"http://www.w3.org/2000/svg\";a.product=\"Highcharts\";a.version=\"11.1.0\";a.win=\"undefined\"!==typeof U?U:{};a.doc=a.win.document;a.svg=a.doc&&a.doc.createElementNS&&!!a.doc.createElementNS(a.SVG_NS,\"svg\").createSVGRect;a.userAgent=a.win.navigator&&a.win.navigator.userAgent||\"\";a.isChrome=-1!==a.userAgent.indexOf(\"Chrome\");a.isFirefox=-1!==a.userAgent.indexOf(\"Firefox\");a.isMS=/(edge|msie|trident)/i.test(a.userAgent)&&!a.win.opera;\na.isSafari=!a.isChrome&&-1!==a.userAgent.indexOf(\"Safari\");a.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(a.userAgent);a.isWebKit=-1!==a.userAgent.indexOf(\"AppleWebKit\");a.deg2rad=2*Math.PI/360;a.hasBidiBug=a.isFirefox&&4>parseInt(a.userAgent.split(\"Firefox/\")[1],10);a.hasTouch=!!a.win.TouchEvent;a.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"];a.noop=function(){};a.supportsPassiveEvents=function(){let x=!1;if(!a.isMS){const y=Object.defineProperty({},\"passive\",{get:function(){x=\n!0}});a.win.addEventListener&&a.win.removeEventListener&&(a.win.addEventListener(\"testPassive\",a.noop,y),a.win.removeEventListener(\"testPassive\",a.noop,y))}return x}();a.charts=[];a.dateFormats={};a.seriesTypes={};a.symbolSizes={};a.chartCount=0})(a||(a={}));\"\";return a});M(a,\"Core/Utilities.js\",[a[\"Core/Globals.js\"]],function(a){function x(c,b,f,k){const n=b?\"Highcharts error\":\"Highcharts warning\";32===c&&(c=`${n}: Deprecated member`);const r=u(c);let e=r?`${n} #${c}: www.highcharts.com/errors/${c}/`:\nc.toString();if(\"undefined\"!==typeof k){let c=\"\";r&&(e+=\"?\");E(k,function(b,n){c+=`\\n - ${n}: ${b}`;r&&(e+=encodeURI(n)+\"=\"+encodeURI(b))});e+=c}d(a,\"displayError\",{chart:f,code:c,message:e,params:k},function(){if(b)throw Error(e);q.console&&-1===x.messages.indexOf(e)&&console.warn(e)});x.messages.push(e)}function I(c,b){return parseInt(c,b||10)}function L(c){return\"string\"===typeof c}function C(c){c=Object.prototype.toString.call(c);return\"[object Array]\"===c||\"[object Array Iterator]\"===c}function z(c,\nb){return!!c&&\"object\"===typeof c&&(!b||!C(c))}function H(c){return z(c)&&\"number\"===typeof c.nodeType}function B(c){const b=c&&c.constructor;return!(!z(c,!0)||H(c)||!b||!b.name||\"Object\"===b.name)}function u(c){return\"number\"===typeof c&&!isNaN(c)&&Infinity>c&&-Infinity<c}function v(c){return\"undefined\"!==typeof c&&null!==c}function l(c,b,f){const n=L(b)&&!v(f);let d;const k=(b,f)=>{v(b)?c.setAttribute(f,b):n?(d=c.getAttribute(f))||\"class\"!==f||(d=c.getAttribute(f+\"Name\")):c.removeAttribute(f)};\nL(b)?k(f,b):E(b,k);return d}function p(c){return C(c)?c:[c]}function t(c,b){let n;c||(c={});for(n in b)c[n]=b[n];return c}function m(){const c=arguments,b=c.length;for(let n=0;n<b;n++){const b=c[n];if(\"undefined\"!==typeof b&&null!==b)return b}}function h(c,b){a.isMS&&!a.svg&&b&&v(b.opacity)&&(b.filter=`alpha(opacity=${100*b.opacity})`);t(c.style,b)}function g(c){return Math.pow(10,Math.floor(Math.log(c)/Math.LN10))}function e(c,b){return 1E14<c?c:parseFloat(c.toPrecision(b||14))}function w(c,b,f){let n;\nif(\"width\"===b)return b=Math.min(c.offsetWidth,c.scrollWidth),f=c.getBoundingClientRect&&c.getBoundingClientRect().width,f<b&&f>=b-1&&(b=Math.floor(f)),Math.max(0,b-(w(c,\"padding-left\",!0)||0)-(w(c,\"padding-right\",!0)||0));if(\"height\"===b)return Math.max(0,Math.min(c.offsetHeight,c.scrollHeight)-(w(c,\"padding-top\",!0)||0)-(w(c,\"padding-bottom\",!0)||0));if(c=q.getComputedStyle(c,void 0))n=c.getPropertyValue(b),m(f,\"opacity\"!==b)&&(n=I(n));return n}function E(c,b,f){for(const n in c)Object.hasOwnProperty.call(c,\nn)&&b.call(f||c[n],c[n],n,c)}function F(c,b,f){function n(b,n){const f=c.removeEventListener;f&&f.call(c,b,n,!1)}function d(f){let d,K;c.nodeName&&(b?(d={},d[b]=!0):d=f,E(d,function(c,b){if(f[b])for(K=f[b].length;K--;)n(b,f[b][K].fn)}))}var k=\"function\"===typeof c&&c.prototype||c;if(Object.hasOwnProperty.call(k,\"hcEvents\")){const c=k.hcEvents;b?(k=c[b]||[],f?(c[b]=k.filter(function(c){return f!==c.fn}),n(b,f)):(d(c),c[b]=[])):(d(c),delete k.hcEvents)}}function d(c,b,f,d){f=f||{};if(r.createEvent&&\n(c.dispatchEvent||c.fireEvent&&c!==a)){var n=r.createEvent(\"Events\");n.initEvent(b,!0,!0);f=t(n,f);c.dispatchEvent?c.dispatchEvent(f):c.fireEvent(b,f)}else if(c.hcEvents){f.target||t(f,{preventDefault:function(){f.defaultPrevented=!0},target:c,type:b});n=[];let d=c,K=!1;for(;d.hcEvents;)Object.hasOwnProperty.call(d,\"hcEvents\")&&d.hcEvents[b]&&(n.length&&(K=!0),n.unshift.apply(n,d.hcEvents[b])),d=Object.getPrototypeOf(d);K&&n.sort((c,b)=>c.order-b.order);n.forEach(b=>{!1===b.fn.call(c,f)&&f.preventDefault()})}d&&\n!f.defaultPrevented&&d.call(c,f)}const {charts:k,doc:r,win:q}=a;(x||(x={})).messages=[];Math.easeInOutSine=function(c){return-.5*(Math.cos(Math.PI*c)-1)};var G=Array.prototype.find?function(c,b){return c.find(b)}:function(c,b){let f;const n=c.length;for(f=0;f<n;f++)if(b(c[f],f))return c[f]};E({map:\"map\",each:\"forEach\",grep:\"filter\",reduce:\"reduce\",some:\"some\"},function(c,b){a[b]=function(f){x(32,!1,void 0,{[`Highcharts.${b}`]:`use Array.${c}`});return Array.prototype[c].apply(f,[].slice.call(arguments,\n1))}});let b;const f=function(){const c=Math.random().toString(36).substring(2,9)+\"-\";let f=0;return function(){return\"highcharts-\"+(b?\"\":c)+f++}}();q.jQuery&&(q.jQuery.fn.highcharts=function(){const c=[].slice.call(arguments);if(this[0])return c[0]?(new (a[L(c[0])?c.shift():\"Chart\"])(this[0],c[0],c[1]),this):k[l(this[0],\"data-highcharts-chart\")]});G={addEvent:function(c,b,f,d={}){var n=\"function\"===typeof c&&c.prototype||c;Object.hasOwnProperty.call(n,\"hcEvents\")||(n.hcEvents={});n=n.hcEvents;a.Point&&\nc instanceof a.Point&&c.series&&c.series.chart&&(c.series.chart.runTrackerClick=!0);const k=c.addEventListener;k&&k.call(c,b,f,a.supportsPassiveEvents?{passive:void 0===d.passive?-1!==b.indexOf(\"touch\"):d.passive,capture:!1}:!1);n[b]||(n[b]=[]);n[b].push({fn:f,order:\"number\"===typeof d.order?d.order:Infinity});n[b].sort((c,b)=>c.order-b.order);return function(){F(c,b,f)}},arrayMax:function(c){let b=c.length,f=c[0];for(;b--;)c[b]>f&&(f=c[b]);return f},arrayMin:function(c){let b=c.length,f=c[0];for(;b--;)c[b]<\nf&&(f=c[b]);return f},attr:l,clamp:function(c,b,f){return c>b?c<f?c:f:b},clearTimeout:function(c){v(c)&&clearTimeout(c)},correctFloat:e,createElement:function(c,b,f,d,K){c=r.createElement(c);b&&t(c,b);K&&h(c,{padding:\"0\",border:\"none\",margin:\"0\"});f&&h(c,f);d&&d.appendChild(c);return c},css:h,defined:v,destroyObjectProperties:function(c,b){E(c,function(f,n){f&&f!==b&&f.destroy&&f.destroy();delete c[n]})},diffObjects:function(c,b,f,d){function n(b,c,K,k){const A=f?c:b;E(b,function(f,q){if(!k&&d&&-1<\nd.indexOf(q)&&c[q]){f=p(f);K[q]=[];for(let b=0;b<Math.max(f.length,c[q].length);b++)c[q][b]&&(void 0===f[b]?K[q][b]=c[q][b]:(K[q][b]={},n(f[b],c[q][b],K[q][b],k+1)))}else if(z(f,!0)&&!f.nodeType)K[q]=C(f)?[]:{},n(f,c[q]||{},K[q],k+1),0!==Object.keys(K[q]).length||\"colorAxis\"===q&&0===k||delete K[q];else if(b[q]!==c[q]||q in b&&!(q in c))K[q]=A[q]})}const k={};n(c,b,k,0);return k},discardElement:function(b){b&&b.parentElement&&b.parentElement.removeChild(b)},erase:function(b,f){let c=b.length;for(;c--;)if(b[c]===\nf){b.splice(c,1);break}},error:x,extend:t,extendClass:function(b,f){const c=function(){};c.prototype=new b;t(c.prototype,f);return c},find:G,fireEvent:d,getClosestDistance:function(b,f){const c=!f;let d,n,k,q;b.forEach(b=>{if(1<b.length)for(q=n=b.length-1;0<q;q--)k=b[q]-b[q-1],0>k&&!c?(null===f||void 0===f?void 0:f(),f=void 0):k&&(\"undefined\"===typeof d||k<d)&&(d=k)});return d},getMagnitude:g,getNestedProperty:function(b,f){for(b=b.split(\".\");b.length&&v(f);){const c=b.shift();if(\"undefined\"===typeof c||\n\"__proto__\"===c)return;if(\"this\"===c){let b;z(f)&&(b=f[\"@this\"]);return null!==b&&void 0!==b?b:f}f=f[c];if(!v(f)||\"function\"===typeof f||\"number\"===typeof f.nodeType||f===q)return}return f},getStyle:w,inArray:function(b,f,d){x(32,!1,void 0,{\"Highcharts.inArray\":\"use Array.indexOf\"});return f.indexOf(b,d)},insertItem:function(b,f){const c=b.options.index,d=f.length;let n;for(n=b.options.isInternal?d:0;n<d+1;n++)if(!f[n]||u(c)&&c<m(f[n].options.index,f[n]._i)||f[n].options.isInternal){f.splice(n,0,\nb);break}return n},isArray:C,isClass:B,isDOMElement:H,isFunction:function(b){return\"function\"===typeof b},isNumber:u,isObject:z,isString:L,keys:function(b){x(32,!1,void 0,{\"Highcharts.keys\":\"use Object.keys\"});return Object.keys(b)},merge:function(){let b,f=arguments,d={};const k=function(b,c){\"object\"!==typeof b&&(b={});E(c,function(f,d){\"__proto__\"!==d&&\"constructor\"!==d&&(!z(f,!0)||B(f)||H(f)?b[d]=c[d]:b[d]=k(b[d]||{},f))});return b};!0===f[0]&&(d=f[1],f=Array.prototype.slice.call(f,2));const K=\nf.length;for(b=0;b<K;b++)d=k(d,f[b]);return d},normalizeTickInterval:function(b,f,d,k,K){let c=b;d=m(d,g(b));const n=b/d;f||(f=K?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===k&&(1===d?f=f.filter(function(b){return 0===b%1}):.1>=d&&(f=[1/d])));for(k=0;k<f.length&&!(c=f[k],K&&c*d>=b||!K&&n<=(f[k]+(f[k+1]||f[k]))/2);k++);return c=e(c*d,-Math.round(Math.log(.001)/Math.LN10))},objectEach:E,offset:function(b){const c=r.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,\nleft:0,width:0,height:0};return{top:b.top+(q.pageYOffset||c.scrollTop)-(c.clientTop||0),left:b.left+(q.pageXOffset||c.scrollLeft)-(c.clientLeft||0),width:b.width,height:b.height}},pad:function(b,f,d){return Array((f||2)+1-String(b).replace(\"-\",\"\").length).join(d||\"0\")+b},pick:m,pInt:I,pushUnique:function(b,f){return 0>b.indexOf(f)&&!!b.push(f)},relativeLength:function(b,f,d){return/%$/.test(b)?f*parseFloat(b)/100+(d||0):parseFloat(b)},removeEvent:F,splat:p,stableSort:function(b,f){const c=b.length;\nlet d,k;for(k=0;k<c;k++)b[k].safeI=k;b.sort(function(b,c){d=f(b,c);return 0===d?b.safeI-c.safeI:d});for(k=0;k<c;k++)delete b[k].safeI},syncTimeout:function(b,f,d){if(0<f)return setTimeout(b,f,d);b.call(0,d);return-1},timeUnits:{millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},uniqueKey:f,useSerialIds:function(c){return b=m(c,b)},wrap:function(b,f,d){const c=b[f];b[f]=function(){const b=arguments,f=this;return d.apply(this,[function(){return c.apply(f,\narguments.length?arguments:b)}].concat([].slice.call(arguments)))}}};\"\";return G});M(a,\"Core/Chart/ChartDefaults.js\",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:\"x\"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}},reflow:!0,type:\"line\",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}}},width:null,height:null,\nborderColor:\"#334eff\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"}});M(a,\"Core/Color/Color.js\",[a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {isNumber:x,merge:L,pInt:C}=y;class z{static parse(a){return a?new z(a):z.None}constructor(x){this.rgba=[NaN,NaN,NaN,NaN];this.input=x;const B=a.Color;if(B&&B!==z)return new B(x);this.init(x)}init(a){let B;let u;if(\"object\"===typeof a&&\"undefined\"!==typeof a.stops)this.stops=a.stops.map(l=>new z(l[1]));else if(\"string\"===typeof a){this.input=\na=z.names[a.toLowerCase()]||a;if(\"#\"===a.charAt(0)){var v=a.length;var l=parseInt(a.substr(1),16);7===v?B=[(l&16711680)>>16,(l&65280)>>8,l&255,1]:4===v&&(B=[(l&3840)>>4|(l&3840)>>8,(l&240)>>4|l&240,(l&15)<<4|l&15,1])}if(!B)for(l=z.parsers.length;l--&&!B;)u=z.parsers[l],(v=u.regex.exec(a))&&(B=u.parse(v))}B&&(this.rgba=B)}get(a){const B=this.input,u=this.rgba;if(\"object\"===typeof B&&\"undefined\"!==typeof this.stops){const v=L(B);v.stops=[].slice.call(v.stops);this.stops.forEach((l,p)=>{v.stops[p]=[v.stops[p][0],\nl.get(a)]});return v}return u&&x(u[0])?\"rgb\"===a||!a&&1===u[3]?\"rgb(\"+u[0]+\",\"+u[1]+\",\"+u[2]+\")\":\"a\"===a?`${u[3]}`:\"rgba(\"+u.join(\",\")+\")\":B}brighten(a){const B=this.rgba;if(this.stops)this.stops.forEach(function(u){u.brighten(a)});else if(x(a)&&0!==a)for(let u=0;3>u;u++)B[u]+=C(255*a),0>B[u]&&(B[u]=0),255<B[u]&&(B[u]=255);return this}setOpacity(a){this.rgba[3]=a;return this}tweenTo(a,B){const u=this.rgba,v=a.rgba;if(!x(u[0])||!x(v[0]))return a.input||\"none\";a=1!==v[3]||1!==u[3];return(a?\"rgba(\":\n\"rgb(\")+Math.round(v[0]+(u[0]-v[0])*(1-B))+\",\"+Math.round(v[1]+(u[1]-v[1])*(1-B))+\",\"+Math.round(v[2]+(u[2]-v[2])*(1-B))+(a?\",\"+(v[3]+(u[3]-v[3])*(1-B)):\"\")+\")\"}}z.names={white:\"#ffffff\",black:\"#000000\"};z.parsers=[{regex:/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,parse:function(a){return[C(a[1]),C(a[2]),C(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,parse:function(a){return[C(a[1]),C(a[2]),\nC(a[3]),1]}}];z.None=new z(\"\");\"\";return z});M(a,\"Core/Color/Palettes.js\",[],function(){return{colors:\"#2caffe #544fc5 #00e272 #fe6a35 #6b8abc #d568fb #2ee0ca #fa4b42 #feb56a #91e8e1\".split(\" \")}});M(a,\"Core/Time.js\",[a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {win:x}=a,{defined:L,error:C,extend:z,isObject:H,merge:B,objectEach:u,pad:v,pick:l,splat:p,timeUnits:t}=y,m=a.isSafari&&x.Intl&&x.Intl.DateTimeFormat.prototype.formatRange,h=a.isSafari&&x.Intl&&!x.Intl.DateTimeFormat.prototype.formatRange;\nclass g{constructor(e){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=x.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(e)}get(e,g){if(this.variableTimezone||this.timezoneOffset){const h=g.getTime(),m=h-this.getTimezoneOffset(g);g.setTime(m);e=g[\"getUTC\"+e]();g.setTime(h);return e}return this.useUTC?g[\"getUTC\"+e]():g[\"get\"+e]()}set(e,g,h){if(this.variableTimezone||this.timezoneOffset){if(\"Milliseconds\"===e||\"Seconds\"===e||\"Minutes\"===e&&0===this.getTimezoneOffset(g)%\n36E5)return g[\"setUTC\"+e](h);var w=this.getTimezoneOffset(g);w=g.getTime()-w;g.setTime(w);g[\"setUTC\"+e](h);e=this.getTimezoneOffset(g);w=g.getTime()+e;return g.setTime(w)}return this.useUTC||m&&\"FullYear\"===e?g[\"setUTC\"+e](h):g[\"set\"+e](h)}update(e={}){const g=l(e.useUTC,!0);this.options=e=B(!0,this.options,e);this.Date=e.Date||x.Date||Date;this.timezoneOffset=(this.useUTC=g)&&e.timezoneOffset||void 0;this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=g&&!(!e.getTimezoneOffset&&\n!e.timezone)}makeTime(e,g,m,p,d,k){let r,q,w;this.useUTC?(r=this.Date.UTC.apply(0,arguments),q=this.getTimezoneOffset(r),r+=q,w=this.getTimezoneOffset(r),q!==w?r+=w-q:q-36E5!==this.getTimezoneOffset(r-36E5)||h||(r-=36E5)):r=(new this.Date(e,g,l(m,1),l(p,0),l(d,0),l(k,0))).getTime();return r}timezoneOffsetFunction(){const e=this,g=this.options,h=g.getTimezoneOffset,m=g.moment||x.moment;if(!this.useUTC)return function(d){return 6E4*(new Date(d.toString())).getTimezoneOffset()};if(g.timezone){if(m)return function(d){return 6E4*\n-m.tz(d,g.timezone).utcOffset()};C(25)}return this.useUTC&&h?function(d){return 6E4*h(d.valueOf())}:function(){return 6E4*(e.timezoneOffset||0)}}dateFormat(e,g,h){if(!L(g)||isNaN(g))return a.defaultOptions.lang&&a.defaultOptions.lang.invalidDate||\"\";e=l(e,\"%Y-%m-%d %H:%M:%S\");const m=this;var d=new this.Date(g);const k=this.get(\"Hours\",d),r=this.get(\"Day\",d),q=this.get(\"Date\",d),w=this.get(\"Month\",d),b=this.get(\"FullYear\",d),f=a.defaultOptions.lang,c=f&&f.weekdays,n=f&&f.shortWeekdays;d=z({a:n?n[r]:\nc[r].substr(0,3),A:c[r],d:v(q),e:v(q,2,\" \"),w:r,b:f.shortMonths[w],B:f.months[w],m:v(w+1),o:w+1,y:b.toString().substr(2,2),Y:b,H:v(k),k,I:v(k%12||12),l:k%12||12,M:v(this.get(\"Minutes\",d)),p:12>k?\"AM\":\"PM\",P:12>k?\"am\":\"pm\",S:v(d.getSeconds()),L:v(Math.floor(g%1E3),3)},a.dateFormats);u(d,function(b,c){for(;-1!==e.indexOf(\"%\"+c);)e=e.replace(\"%\"+c,\"function\"===typeof b?b.call(m,g):b)});return h?e.substr(0,1).toUpperCase()+e.substr(1):e}resolveDTLFormat(e){return H(e,!0)?e:(e=p(e),{main:e[0],from:e[1],\nto:e[2]})}getTimeTicks(e,g,h,m){const d=this,k=[],r={};var q=new d.Date(g);const w=e.unitRange,b=e.count||1;let f;m=l(m,1);if(L(g)){d.set(\"Milliseconds\",q,w>=t.second?0:b*Math.floor(d.get(\"Milliseconds\",q)/b));w>=t.second&&d.set(\"Seconds\",q,w>=t.minute?0:b*Math.floor(d.get(\"Seconds\",q)/b));w>=t.minute&&d.set(\"Minutes\",q,w>=t.hour?0:b*Math.floor(d.get(\"Minutes\",q)/b));w>=t.hour&&d.set(\"Hours\",q,w>=t.day?0:b*Math.floor(d.get(\"Hours\",q)/b));w>=t.day&&d.set(\"Date\",q,w>=t.month?1:Math.max(1,b*Math.floor(d.get(\"Date\",\nq)/b)));if(w>=t.month){d.set(\"Month\",q,w>=t.year?0:b*Math.floor(d.get(\"Month\",q)/b));var c=d.get(\"FullYear\",q)}w>=t.year&&d.set(\"FullYear\",q,c-c%b);w===t.week&&(c=d.get(\"Day\",q),d.set(\"Date\",q,d.get(\"Date\",q)-c+m+(c<m?-7:0)));c=d.get(\"FullYear\",q);m=d.get(\"Month\",q);const n=d.get(\"Date\",q),e=d.get(\"Hours\",q);g=q.getTime();!d.variableTimezone&&d.useUTC||!L(h)||(f=h-g>4*t.month||d.getTimezoneOffset(g)!==d.getTimezoneOffset(h));g=q.getTime();for(q=1;g<h;)k.push(g),g=w===t.year?d.makeTime(c+q*b,0):w===\nt.month?d.makeTime(c,m+q*b):!f||w!==t.day&&w!==t.week?f&&w===t.hour&&1<b?d.makeTime(c,m,n,e+q*b):g+w*b:d.makeTime(c,m,n+q*b*(w===t.day?1:7)),q++;k.push(g);w<=t.hour&&1E4>k.length&&k.forEach(function(b){0===b%18E5&&\"000000000\"===d.dateFormat(\"%H%M%S%L\",b)&&(r[b]=\"day\")})}k.info=z(e,{higherRanks:r,totalRange:w*b});return k}getDateFormat(e,g,h,m){const d=this.dateFormat(\"%m-%d %H:%M:%S.%L\",g),k={millisecond:15,second:12,minute:9,hour:6,day:3};let r,q=\"millisecond\";for(r in t){if(e===t.week&&+this.dateFormat(\"%w\",\ng)===h&&\"00:00:00.000\"===d.substr(6)){r=\"week\";break}if(t[r]>e){r=q;break}if(k[r]&&d.substr(k[r])!==\"01-01 00:00:00.000\".substr(k[r]))break;\"week\"!==r&&(q=r)}return this.resolveDTLFormat(m[r]).main}}\"\";return g});M(a,\"Core/Defaults.js\",[a[\"Core/Chart/ChartDefaults.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Color/Palettes.js\"],a[\"Core/Time.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z){const {isTouchDevice:x,svg:B}=I,{merge:u}=z,v={colors:L.colors,symbols:[\"circle\",\"diamond\",\"square\",\n\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),decimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,\ntimezoneOffset:0,useUTC:!0},chart:a,title:{style:{color:\"#333333\",fontWeight:\"bold\"},text:\"Chart title\",align:\"center\",margin:15,widthAdjust:-44},subtitle:{style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},legend:{enabled:!0,align:\"center\",alignColumns:!0,className:\"highcharts-no-tooltip\",layout:\"horizontal\",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},\nborderColor:\"#999999\",borderRadius:0,navigation:{style:{fontSize:\"0.8em\"},activeColor:\"#0022ff\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",textDecoration:\"none\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#666666\",textDecoration:\"line-through\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontSize:\"0.8em\",fontWeight:\"bold\"}}},\nloading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:B,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %e %b, %H:%M:%S.%L\",second:\"%A, %e %b, %H:%M:%S\",minute:\"%A, %e %b, %H:%M\",hour:\"%A, %e %b, %H:%M\",day:\"%A, %e %b %Y\",week:\"Week from %A, %e %b %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",headerShape:\"callout\",hideDelay:500,padding:8,shape:\"callout\",shared:!1,\nsnap:x?25:10,headerFormat:'<span style=\"font-size: 0.8em\">{point.key}</span><br/>',pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:\"#ffffff\",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"0.6em\"},\ntext:\"Highcharts.com\"}};v.chart.styledMode=!1;\"\";const l=new C(v.time);a={defaultOptions:v,defaultTime:l,getOptions:function(){return v},setOptions:function(a){u(!0,v,a);if(a.time||a.global)I.time?I.time.update(u(v.global,v.time,a.global,a.time)):I.time=l;return v}};\"\";return a});M(a,\"Core/Animation/Fx.js\",[a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {parse:x}=a,{win:C}=y,{isNumber:z,objectEach:H}=I;class B{constructor(a,v,l){this.pos=NaN;this.options=\nv;this.elem=a;this.prop=l}dSetter(){var a=this.paths;const v=a&&a[0];a=a&&a[1];const l=this.now||0;let p=[];if(1!==l&&v&&a)if(v.length===a.length&&1>l)for(let t=0;t<a.length;t++){const m=v[t],h=a[t],g=[];for(let e=0;e<h.length;e++){const w=m[e],a=h[e];z(w)&&z(a)&&(\"A\"!==h[0]||4!==e&&5!==e)?g[e]=w+l*(a-w):g[e]=a}p.push(g)}else p=a;else p=this.toD||[];this.elem.attr(\"d\",p,void 0,!0)}update(){const a=this.elem,v=this.prop,l=this.now,p=this.options.step;if(this[v+\"Setter\"])this[v+\"Setter\"]();else a.attr?\na.element&&a.attr(v,l,null,!0):a.style[v]=l+this.unit;p&&p.call(a,l,this)}run(a,v,l){const p=this,t=p.options,m=function(e){return m.stopped?!1:p.step(e)},h=C.requestAnimationFrame||function(e){setTimeout(e,13)},g=function(){for(let e=0;e<B.timers.length;e++)B.timers[e]()||B.timers.splice(e--,1);B.timers.length&&h(g)};a!==v||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=a,this.end=v,this.unit=l,this.now=this.start,this.pos=0,m.elem=this.elem,m.prop=this.prop,m()&&1===B.timers.push(m)&&\nh(g)):(delete t.curAnim[this.prop],t.complete&&0===Object.keys(t.curAnim).length&&t.complete.call(this.elem))}step(a){const v=+new Date,l=this.options,p=this.elem,t=l.complete,m=l.duration,h=l.curAnim;let g;p.attr&&!p.element?a=!1:a||v>=m+this.startTime?(this.now=this.end,this.pos=1,this.update(),g=h[this.prop]=!0,H(h,function(e){!0!==e&&(g=!1)}),g&&t&&t.call(p),a=!1):(this.pos=l.easing((v-this.startTime)/m),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0);return a}initPath(a,\nv,l){function p(d,k){for(;d.length<E;){var r=d[0];const q=k[E-d.length];q&&\"M\"===r[0]&&(d[0]=\"C\"===q[0]?[\"C\",r[1],r[2],r[1],r[2],r[1],r[2]]:[\"L\",r[1],r[2]]);d.unshift(r);g&&(r=d.pop(),d.push(d[d.length-1],r))}}function t(d,k){for(;d.length<E;)if(k=d[Math.floor(d.length/e)-1].slice(),\"C\"===k[0]&&(k[1]=k[5],k[2]=k[6]),g){const r=d[Math.floor(d.length/e)].slice();d.splice(d.length/2,0,k,r)}else d.push(k)}const m=a.startX,h=a.endX;l=l.slice();const g=a.isArea,e=g?2:1;let w,E,F;v=v&&v.slice();if(!v)return[l,\nl];if(m&&h&&h.length){for(a=0;a<m.length;a++)if(m[a]===h[0]){w=a;break}else if(m[0]===h[h.length-m.length+a]){w=a;F=!0;break}else if(m[m.length-1]===h[h.length-m.length+a]){w=m.length-a;break}\"undefined\"===typeof w&&(v=[])}v.length&&z(w)&&(E=l.length+w*e,F?(p(v,l),t(l,v)):(p(l,v),t(v,l)));return[v,l]}fillSetter(){B.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}}B.timers=[];return B});M(a,\"Core/Animation/AnimationUtilities.js\",\n[a[\"Core/Animation/Fx.js\"],a[\"Core/Utilities.js\"]],function(a,y){function x(a){return u(a)?v({duration:500,defer:0},a):{duration:a?500:0,defer:0}}function L(l,m){let h=a.timers.length;for(;h--;)a.timers[h].elem!==l||m&&m!==a.timers[h].prop||(a.timers[h].stopped=!0)}const {defined:C,getStyle:z,isArray:H,isNumber:B,isObject:u,merge:v,objectEach:l,pick:p}=y;return{animate:function(p,m,h){let g,e=\"\",w,E,F;u(h)||(F=arguments,h={duration:F[2],easing:F[3],complete:F[4]});B(h.duration)||(h.duration=400);\nh.easing=\"function\"===typeof h.easing?h.easing:Math[h.easing]||Math.easeInOutSine;h.curAnim=v(m);l(m,function(d,k){L(p,k);E=new a(p,h,k);w=void 0;\"d\"===k&&H(m.d)?(E.paths=E.initPath(p,p.pathArray,m.d),E.toD=m.d,g=0,w=1):p.attr?g=p.attr(k):(g=parseFloat(z(p,k))||0,\"opacity\"!==k&&(e=\"px\"));w||(w=d);\"string\"===typeof w&&w.match(\"px\")&&(w=w.replace(/px/g,\"\"));E.run(g,w,e)})},animObject:x,getDeferredAnimation:function(a,m,h){const g=x(m);let e=0,w=0;(h?[h]:a.series).forEach(h=>{h=x(h.options.animation);\ne=m&&C(m.defer)?g.defer:Math.max(e,h.duration+h.defer);w=Math.min(g.duration,h.duration)});a.renderer.forExport&&(e=0);return{defer:Math.max(0,e-w),duration:Math.min(e,w)}},setAnimation:function(a,m){m.renderer.globalAnimation=p(a,m.options.chart.animation,!0)},stop:L}});M(a,\"Core/Renderer/HTML/AST.js\",[a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {SVG_NS:x,win:L}=a,{attr:C,createElement:z,css:H,error:B,isFunction:u,isString:v,objectEach:l,splat:p}=y;({trustedTypes:y}=L);const t=\ny&&u(y.createPolicy)&&y.createPolicy(\"highcharts\",{createHTML:e=>e});y=t?t.createHTML(\"\"):\"\";try{var m=!!(new DOMParser).parseFromString(y,\"text/html\")}catch(e){m=!1}const h=m;class g{static filterUserAttributes(e){l(e,(h,m)=>{let a=!0;-1===g.allowedAttributes.indexOf(m)&&(a=!1);-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\"].indexOf(m)&&(a=v(h)&&g.allowedReferences.some(d=>0===h.indexOf(d)));a||(B(33,!1,void 0,{\"Invalid attribute in config\":`${m}`}),delete e[m]);v(h)&&e[m]&&(e[m]=h.replace(/</g,\n\"&lt;\"))});return e}static parseStyle(e){return e.split(\";\").reduce((e,g)=>{g=g.split(\":\").map(d=>d.trim());const h=g.shift();h&&g.length&&(e[h.replace(/-([a-z])/g,d=>d[1].toUpperCase())]=g.join(\":\"));return e},{})}static setElementHTML(e,h){e.innerHTML=g.emptyHTML;h&&(new g(h)).addToDOM(e)}constructor(e){this.nodes=\"string\"===typeof e?this.parseMarkup(e):e}addToDOM(e){function h(e,m){let d;p(e).forEach(function(k){var e=k.tagName;const q=k.textContent?a.doc.createTextNode(k.textContent):void 0,w=\ng.bypassHTMLFiltering;let b;if(e)if(\"#text\"===e)b=q;else if(-1!==g.allowedTags.indexOf(e)||w){e=a.doc.createElementNS(\"svg\"===e?x:m.namespaceURI||x,e);const f=k.attributes||{};l(k,function(b,d){\"tagName\"!==d&&\"attributes\"!==d&&\"children\"!==d&&\"style\"!==d&&\"textContent\"!==d&&(f[d]=b)});C(e,w?f:g.filterUserAttributes(f));k.style&&H(e,k.style);q&&e.appendChild(q);h(k.children||[],e);b=e}else B(33,!1,void 0,{\"Invalid tagName in config\":e});b&&m.appendChild(b);d=b});return d}return h(this.nodes,e)}parseMarkup(e){const m=\n[];e=e.trim().replace(/ style=([\"'])/g,\" data-style=$1\");if(h)e=(new DOMParser).parseFromString(t?t.createHTML(e):e,\"text/html\");else{const g=z(\"div\");g.innerHTML=e;e={body:g}}const a=(e,d)=>{var k=e.nodeName.toLowerCase();const r={tagName:k};\"#text\"===k&&(r.textContent=e.textContent||\"\");if(k=e.attributes){const d={};[].forEach.call(k,k=>{\"data-style\"===k.name?r.style=g.parseStyle(k.value):d[k.name]=k.value});r.attributes=d}if(e.childNodes.length){const d=[];[].forEach.call(e.childNodes,k=>{a(k,\nd)});d.length&&(r.children=d)}d.push(r)};[].forEach.call(e.body.childNodes,e=>a(e,m));return m}}g.allowedAttributes=\"alt aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill flood-color flood-opacity height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align text-anchor textAnchor textLength title type valign width x x1 x2 xlink:href y y1 y2 zIndex\".split(\" \");\ng.allowedReferences=\"https:// http:// mailto: / ../ ./ #\".split(\" \");g.allowedTags=\"a abbr b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feDropShadow feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text textPath thead title tbody tspan td th tr u ul #text\".split(\" \");g.emptyHTML=y;g.bypassHTMLFiltering=\n!1;\"\";return g});M(a,\"Core/Templating.js\",[a[\"Core/Defaults.js\"],a[\"Core/Utilities.js\"]],function(a,y){function x(h=\"\",g,e){const a=/\\{([a-zA-Z0-9:\\.,;\\-\\/<>%_@\"'= #\\(\\)]+)\\}/g,l=/\\(([a-zA-Z0-9:\\.,;\\-\\/<>%_@\"'= ]+)\\)/g,v=[],d=/f$/,k=/\\.([0-9])/,r=C.lang,q=e&&e.time||z,G=e&&e.numberFormatter||L,b=(b=\"\")=>{let c;return\"true\"===b?!0:\"false\"===b?!1:(c=Number(b)).toString()===b?c:B(b,g)};let f,c,n=0,P;for(;null!==(f=a.exec(h));){const b=l.exec(f[1]);b&&(f=b,P=!0);c&&c.isBlock||(c={ctx:g,expression:f[1],\nfind:f[0],isBlock:\"#\"===f[1].charAt(0),start:f.index,startInner:f.index+f[0].length,length:f[0].length});var D=f[1].split(\" \")[0].replace(\"#\",\"\");m[D]&&(c.isBlock&&D===c.fn&&n++,c.fn||(c.fn=D));D=\"else\"===f[1];if(c.isBlock&&c.fn&&(f[1]===`/${c.fn}`||D))if(n)D||n--;else{var K=c.startInner;K=h.substr(K,f.index-K);void 0===c.body?(c.body=K,c.startInner=f.index+f[0].length):c.elseBody=K;c.find+=K+f[0];D||(v.push(c),c=void 0)}else c.isBlock||v.push(c);if(b&&(null===c||void 0===c||!c.isBlock))break}v.forEach(c=>\n{const {body:f,elseBody:n,expression:K,fn:e}=c;var A;if(e){var a=[c],w=K.split(\" \");for(A=m[e].length;A--;)a.unshift(b(w[A+1]));A=m[e].apply(g,a);c.isBlock&&\"boolean\"===typeof A&&(A=x(A?f:n,g))}else a=K.split(\":\"),A=b(a.shift()||\"\"),a.length&&\"number\"===typeof A&&(a=a.join(\":\"),d.test(a)?(w=parseInt((a.match(k)||[\"\",\"-1\"])[1],10),null!==A&&(A=G(A,w,r.decimalPoint,-1<a.indexOf(\",\")?r.thousandsSep:\"\"))):A=q.dateFormat(a,A));h=h.replace(c.find,p(A,\"\"))});return P?x(h,g,e):h}function L(h,g,e,a){h=+h||\n0;g=+g;const m=C.lang;var w=(h.toString().split(\".\")[1]||\"\").split(\"e\")[0].length;const d=h.toString().split(\"e\"),k=g;if(-1===g)g=Math.min(w,20);else if(!v(g))g=2;else if(g&&d[1]&&0>d[1]){var r=g+ +d[1];0<=r?(d[0]=(+d[0]).toExponential(r).split(\"e\")[0],g=r):(d[0]=d[0].split(\".\")[0]||0,h=20>g?(d[0]*Math.pow(10,d[1])).toFixed(g):0,d[1]=0)}r=(Math.abs(d[1]?d[0]:h)+Math.pow(10,-Math.max(g,w)-1)).toFixed(g);w=String(t(r));const q=3<w.length?w.length%3:0;e=p(e,m.decimalPoint);a=p(a,m.thousandsSep);h=(0>\nh?\"-\":\"\")+(q?w.substr(0,q)+a:\"\");h=0>+d[1]&&!k?\"0\":h+w.substr(q).replace(/(\\d{3})(?=\\d)/g,\"$1\"+a);g&&(h+=e+r.slice(-g));d[1]&&0!==+h&&(h+=\"e\"+d[1]);return h}const {defaultOptions:C,defaultTime:z}=a,{extend:H,getNestedProperty:B,isArray:u,isNumber:v,isObject:l,pick:p,pInt:t}=y,m={add:(h,g)=>h+g,divide:(h,g)=>0!==g?h/g:\"\",eq:(h,g)=>h==g,each:function(h){const g=arguments[arguments.length-1];return u(h)?h.map((e,a)=>x(g.body,H(l(e)?e:{\"@this\":e},{\"@index\":a,\"@first\":0===a,\"@last\":a===h.length-1}))).join(\"\"):\n!1},ge:(h,g)=>h>=g,gt:(h,g)=>h>g,\"if\":h=>!!h,le:(h,g)=>h<=g,lt:(h,g)=>h<g,multiply:(h,g)=>h*g,ne:(h,g)=>h!=g,subtract:(h,g)=>h-g,unless:h=>!h};return{dateFormat:function(h,g,e){return z.dateFormat(h,g,e)},format:x,helpers:m,numberFormat:L}});M(a,\"Core/Renderer/RendererUtilities.js\",[a[\"Core/Utilities.js\"]],function(a){const {clamp:x,pick:I,stableSort:L}=a;var C;(function(a){function y(a,u,v){const l=a;var p=l.reducedLen||u,t=(e,g)=>(g.rank||0)-(e.rank||0);const m=(e,g)=>e.target-g.target;let h,g=\n!0,e=[],w=0;for(h=a.length;h--;)w+=a[h].size;if(w>p){L(a,t);for(w=h=0;w<=p;)w+=a[h].size,h++;e=a.splice(h-1,a.length)}L(a,m);for(a=a.map(e=>({size:e.size,targets:[e.target],align:I(e.align,.5)}));g;){for(h=a.length;h--;)p=a[h],t=(Math.min.apply(0,p.targets)+Math.max.apply(0,p.targets))/2,p.pos=x(t-p.size*p.align,0,u-p.size);h=a.length;for(g=!1;h--;)0<h&&a[h-1].pos+a[h-1].size>a[h].pos&&(a[h-1].size+=a[h].size,a[h-1].targets=a[h-1].targets.concat(a[h].targets),a[h-1].align=.5,a[h-1].pos+a[h-1].size>\nu&&(a[h-1].pos=u-a[h-1].size),a.splice(h,1),g=!0)}l.push.apply(l,e);h=0;a.some(e=>{let g=0;return(e.targets||[]).some(()=>{l[h].pos=e.pos+g;if(\"undefined\"!==typeof v&&Math.abs(l[h].pos-l[h].target)>v)return l.slice(0,h+1).forEach(d=>delete d.pos),l.reducedLen=(l.reducedLen||u)-.1*u,l.reducedLen>.1*u&&y(l,u,v),!0;g+=l[h].size;h++;return!1})});L(l,m);return l}a.distribute=y})(C||(C={}));return C});M(a,\"Core/Renderer/SVG/SVGElement.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Color/Color.js\"],\na[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L){const {animate:x,animObject:z,stop:H}=a,{deg2rad:B,doc:u,svg:v,SVG_NS:l,win:p}=I,{addEvent:t,attr:m,createElement:h,css:g,defined:e,erase:w,extend:E,fireEvent:F,isArray:d,isFunction:k,isObject:r,isString:q,merge:G,objectEach:b,pick:f,pInt:c,syncTimeout:n,uniqueKey:P}=L;class D{constructor(){this.element=void 0;this.onEvents={};this.opacity=1;this.renderer=void 0;this.SVG_NS=l}_defaultGetter(b){b=f(this[b+\"Value\"],this[b],this.element?\nthis.element.getAttribute(b):null,0);/^[\\-0-9\\.]+$/.test(b)&&(b=parseFloat(b));return b}_defaultSetter(b,c,f){f.setAttribute(c,b)}add(b){const c=this.renderer,f=this.element;let d;b&&(this.parentGroup=b);\"undefined\"!==typeof this.textStr&&\"text\"===this.element.nodeName&&c.buildText(this);this.added=!0;if(!b||b.handleZ||this.zIndex)d=this.zIndexSetter();d||(b?b.element:c.box).appendChild(f);if(this.onAdd)this.onAdd();return this}addClass(b,c){const f=c?\"\":this.attr(\"class\")||\"\";b=(b||\"\").split(/ /g).reduce(function(b,\nc){-1===f.indexOf(c)&&b.push(c);return b},f?[f]:[]).join(\" \");b!==f&&this.attr(\"class\",b);return this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(b,c,d){const k={};var n=this.renderer,e=n.alignedObjects,A;let K,g;if(b){if(this.alignOptions=b,this.alignByTranslate=c,!d||q(d))this.alignTo=A=d||\"renderer\",w(e,this),e.push(this),d=void 0}else b=this.alignOptions,c=this.alignByTranslate,A=this.alignTo;d=f(d,n[A],\"scrollablePlotBox\"===A?n.plotBox:void 0,n);A=b.align;\nconst a=b.verticalAlign;n=(d.x||0)+(b.x||0);e=(d.y||0)+(b.y||0);\"right\"===A?K=1:\"center\"===A&&(K=2);K&&(n+=(d.width-(b.width||0))/K);k[c?\"translateX\":\"x\"]=Math.round(n);\"bottom\"===a?g=1:\"middle\"===a&&(g=2);g&&(e+=(d.height-(b.height||0))/g);k[c?\"translateY\":\"y\"]=Math.round(e);this[this.placed?\"animate\":\"attr\"](k);this.placed=!0;this.alignAttr=k;return this}alignSetter(b){const c={left:\"start\",center:\"middle\",right:\"end\"};c[b]&&(this.alignValue=b,this.element.setAttribute(\"text-anchor\",c[b]))}animate(c,\nd,k){const e=z(f(d,this.renderer.globalAnimation,!0));d=e.defer;u.hidden&&(e.duration=0);0!==e.duration?(k&&(e.complete=k),n(()=>{this.element&&x(this,c,e)},d)):(this.attr(c,void 0,k||e.complete),b(c,function(b,c){e.step&&e.step.call(this,b,{prop:c,pos:1,elem:this})},this));return this}applyTextOutline(b){const c=this.element;-1!==b.indexOf(\"contrast\")&&(b=b.replace(/contrast/g,this.renderer.getContrast(c.style.fill)));var f=b.split(\" \");b=f[f.length-1];if((f=f[0])&&\"none\"!==f&&I.svg){this.fakeTS=\n!0;f=f.replace(/(^[\\d\\.]+)(.*?)$/g,function(b,c,f){return 2*Number(c)+f});this.removeTextOutline();const d=u.createElementNS(l,\"tspan\");m(d,{\"class\":\"highcharts-text-outline\",fill:b,stroke:b,\"stroke-width\":f,\"stroke-linejoin\":\"round\"});b=c.querySelector(\"textPath\")||c;[].forEach.call(b.childNodes,b=>{const c=b.cloneNode(!0);c.removeAttribute&&[\"fill\",\"stroke\",\"stroke-width\",\"stroke\"].forEach(b=>c.removeAttribute(b));d.appendChild(c)});let k=0;[].forEach.call(b.querySelectorAll(\"text tspan\"),b=>{k+=\nNumber(b.getAttribute(\"dy\"))});f=u.createElementNS(l,\"tspan\");f.textContent=\"\\u200b\";m(f,{x:Number(c.getAttribute(\"x\")),dy:-k});d.appendChild(f);b.insertBefore(d,b.firstChild)}}attr(c,f,d,k){const n=this.element,e=D.symbolCustomAttribs;let A,q,g=this,a,K;\"string\"===typeof c&&\"undefined\"!==typeof f&&(A=c,c={},c[A]=f);\"string\"===typeof c?g=(this[c+\"Getter\"]||this._defaultGetter).call(this,c,n):(b(c,function(b,f){a=!1;k||H(this,f);this.symbolName&&-1!==e.indexOf(f)&&(q||(this.symbolAttr(c),q=!0),a=!0);\n!this.rotation||\"x\"!==f&&\"y\"!==f||(this.doTransform=!0);a||(K=this[f+\"Setter\"]||this._defaultSetter,K.call(this,b,f,n))},this),this.afterSetters());d&&d.call(this);return g}clip(b){return this.attr(\"clip-path\",b?\"url(\"+this.renderer.url+\"#\"+b.id+\")\":\"none\")}crisp(b,c){c=c||b.strokeWidth||0;const f=Math.round(c)%2/2;b.x=Math.floor(b.x||this.x||0)+f;b.y=Math.floor(b.y||this.y||0)+f;b.width=Math.floor((b.width||this.width||0)-2*f);b.height=Math.floor((b.height||this.height||0)-2*f);e(b.strokeWidth)&&\n(b.strokeWidth=c);return b}complexColor(c,f,k){const n=this.renderer;let q,g,A,a,r,K,h,J,m,O,w=[],l;F(this.renderer,\"complexColor\",{args:arguments},function(){c.radialGradient?g=\"radialGradient\":c.linearGradient&&(g=\"linearGradient\");if(g){A=c[g];r=n.gradients;K=c.stops;m=k.radialReference;d(A)&&(c[g]=A={x1:A[0],y1:A[1],x2:A[2],y2:A[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===g&&m&&!e(A.gradientUnits)&&(a=A,A=G(A,n.getRadialAttr(m,a),{gradientUnits:\"userSpaceOnUse\"}));b(A,function(b,c){\"id\"!==\nc&&w.push(c,b)});b(K,function(b){w.push(b)});w=w.join(\",\");if(r[w])O=r[w].attr(\"id\");else{A.id=O=P();const b=r[w]=n.createElement(g).attr(A).add(n.defs);b.radAttr=a;b.stops=[];K.forEach(function(c){0===c[1].indexOf(\"rgba\")?(q=y.parse(c[1]),h=q.get(\"rgb\"),J=q.get(\"a\")):(h=c[1],J=1);c=n.createElement(\"stop\").attr({offset:c[0],\"stop-color\":h,\"stop-opacity\":J}).add(b);b.stops.push(c)})}l=\"url(\"+n.url+\"#\"+O+\")\";k.setAttribute(f,l);k.gradient=w;c.toString=function(){return l}}})}css(f){const d=this.styles,\nk={},n=this.element;let e,q=!d;d&&b(f,function(b,c){d&&d[c]!==b&&(k[c]=b,q=!0)});if(q){d&&(f=E(d,k));null===f.width||\"auto\"===f.width?delete this.textWidth:\"text\"===n.nodeName.toLowerCase()&&f.width&&(e=this.textWidth=c(f.width));this.styles=f;e&&!v&&this.renderer.forExport&&delete f.width;const b=G(f);n.namespaceURI===this.SVG_NS&&([\"textOutline\",\"textOverflow\",\"width\"].forEach(c=>b&&delete b[c]),b.color&&(b.fill=b.color));g(n,b)}this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),\nf.textOutline&&this.applyTextOutline(f.textOutline));return this}dashstyleSetter(b){let d=this[\"stroke-width\"];\"inherit\"===d&&(d=1);if(b=b&&b.toLowerCase()){const k=b.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(b=k.length;b--;)k[b]=\"\"+c(k[b])*f(d,NaN);b=k.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",\nb)}}destroy(){const c=this;var f=c.element||{};const d=c.renderer;var k=f.ownerSVGElement;let n=\"SPAN\"===f.nodeName&&c.parentGroup||void 0;f.onclick=f.onmouseout=f.onmouseover=f.onmousemove=f.point=null;H(c);if(c.clipPath&&k){const b=c.clipPath;[].forEach.call(k.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(c){-1<c.getAttribute(\"clip-path\").indexOf(b.element.id)&&c.removeAttribute(\"clip-path\")});c.clipPath=b.destroy()}if(c.stops){for(k=0;k<c.stops.length;k++)c.stops[k].destroy();c.stops.length=\n0;c.stops=void 0}for(c.safeRemoveChild(f);n&&n.div&&0===n.div.childNodes.length;)f=n.parentGroup,c.safeRemoveChild(n.div),delete n.div,n=f;c.alignTo&&w(d.alignedObjects,c);b(c,function(b,f){c[f]&&c[f].parentGroup===c&&c[f].destroy&&c[f].destroy();delete c[f]})}dSetter(b,c,f){d(b)&&(\"string\"===typeof b[0]&&(b=this.renderer.pathToSegments(b)),this.pathArray=b,b=b.reduce((b,c,f)=>c&&c.join?(f?b+\" \":\"\")+c.join(\" \"):(c||\"\").toString(),\"\"));/(NaN| {2}|^$)/.test(b)&&(b=\"M 0 0\");this[c]!==b&&(f.setAttribute(c,\nb),this[c]=b)}fadeOut(b){const c=this;c.animate({opacity:0},{duration:f(b,150),complete:function(){c.hide()}})}fillSetter(b,c,f){\"string\"===typeof b?f.setAttribute(c,b):b&&this.complexColor(b,c,f)}getBBox(b,c){const {alignValue:d,element:n,renderer:q,styles:a,textStr:A}=this,{cache:r,cacheKeys:h}=q;var m=n.namespaceURI===this.SVG_NS;c=f(c,this.rotation,0);var K=q.styledMode?n&&D.prototype.getStyle.call(n,\"font-size\"):a&&a.fontSize;let J;let N;e(A)&&(N=A.toString(),-1===N.indexOf(\"<\")&&(N=N.replace(/[0-9]/g,\n\"0\")),N+=[\"\",q.rootFontSize,K,c,this.textWidth,d,a&&a.textOverflow,a&&a.fontWeight].join());N&&!b&&(J=r[N]);if(!J){if(m||q.forExport){try{var O=this.fakeTS&&function(b){const c=n.querySelector(\".highcharts-text-outline\");c&&g(c,{display:b})};k(O)&&O(\"none\");J=n.getBBox?E({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight,x:0,y:0};k(O)&&O(\"\")}catch(fa){\"\"}if(!J||0>J.width)J={x:0,y:0,width:0,height:0}}else J=this.htmlGetBBox();O=J.width;b=J.height;m&&(J.height=b={\"11px,17\":14,\"13px,20\":16}[`${K||\n\"\"},${Math.round(b)}`]||b);if(c){m=Number(n.getAttribute(\"y\")||0)-J.y;K={right:1,center:.5}[d||0]||0;var w=c*B,l=(c-90)*B,p=O*Math.cos(w);c=O*Math.sin(w);var G=Math.cos(l);w=Math.sin(l);O=J.x+K*(O-p)+m*G;l=O+p;G=l-b*G;p=G-p;m=J.y+m-K*c+m*w;K=m+c;b=K-b*w;c=b-c;J.x=Math.min(O,l,G,p);J.y=Math.min(m,K,b,c);J.width=Math.max(O,l,G,p)-J.x;J.height=Math.max(m,K,b,c)-J.y}}if(N&&(\"\"===A||0<J.height)){for(;250<h.length;)delete r[h.shift()];r[N]||h.push(N);r[N]=J}return J}getStyle(b){return p.getComputedStyle(this.element||\nthis,\"\").getPropertyValue(b)}hasClass(b){return-1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(b)}hide(){return this.attr({visibility:\"hidden\"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}init(b,c){this.element=\"span\"===c?h(c):u.createElementNS(this.SVG_NS,c);this.renderer=b;F(this,\"afterInit\")}on(b,c){const {onEvents:f}=this;if(f[b])f[b]();f[b]=t(this.element,b,c);return this}opacitySetter(b,c,f){this.opacity=b=Number(Number(b).toFixed(3));f.setAttribute(c,b)}removeClass(b){return this.attr(\"class\",\n(\"\"+this.attr(\"class\")).replace(q(b)?new RegExp(`(^| )${b}( |$)`):b,\" \").replace(/ +/g,\" \").trim())}removeTextOutline(){const b=this.element.querySelector(\"tspan.highcharts-text-outline\");b&&this.safeRemoveChild(b)}safeRemoveChild(b){const c=b.parentNode;c&&c.removeChild(b)}setRadialReference(b){const c=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=b;c&&c.radAttr&&c.animate(this.renderer.getRadialAttr(b,c.radAttr));return this}setTextPath(b,c){c=\nG(!0,{enabled:!0,attributes:{dy:-5,startOffset:\"50%\",textAnchor:\"middle\"}},c);const f=this.renderer.url,d=this.text||this,k=d.textPath,{attributes:n,enabled:A}=c;b=b||k&&k.path;k&&k.undo();b&&A?(c=t(d,\"afterModifyTree\",c=>{if(b&&A){let A=b.attr(\"id\");A||b.attr(\"id\",A=P());var k={x:0,y:0};e(n.dx)&&(k.dx=n.dx,delete n.dx);e(n.dy)&&(k.dy=n.dy,delete n.dy);d.attr(k);this.attr({transform:\"\"});this.box&&(this.box=this.box.destroy());k=c.nodes.slice(0);c.nodes.length=0;c.nodes[0]={tagName:\"textPath\",attributes:E(n,\n{\"text-anchor\":n.textAnchor,href:`${f}#${A}`}),children:k}}}),d.textPath={path:b,undo:c}):(d.attr({dx:0,dy:0}),delete d.textPath);this.added&&(d.textCache=\"\",this.renderer.buildText(d));return this}shadow(b){var c;const {renderer:f}=this,d=G(90===(null===(c=this.parentGroup)||void 0===c?void 0:c.rotation)?{offsetX:-1,offsetY:-1}:{},r(b)?b:{});c=f.shadowDefinition(d);return this.attr({filter:b?`url(${f.url}#${c})`:\"none\"})}show(b=!0){return this.attr({visibility:b?\"inherit\":\"visible\"})}[\"stroke-widthSetter\"](b,\nc,f){this[c]=b;f.setAttribute(c,b)}strokeWidth(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;const b=this.getStyle(\"stroke-width\");let f=0,d;b.indexOf(\"px\")===b.length-2?f=c(b):\"\"!==b&&(d=u.createElementNS(l,\"rect\"),m(d,{width:b,\"stroke-width\":0}),this.element.parentNode.appendChild(d),f=d.getBBox().width,d.parentNode.removeChild(d));return f}symbolAttr(b){const c=this;D.symbolCustomAttribs.forEach(function(d){c[d]=f(b[d],c[d])});c.attr({d:c.renderer.symbols[c.symbolName](c.x,c.y,\nc.width,c.height,c)})}textSetter(b){b!==this.textStr&&(delete this.textPxLength,this.textStr=b,this.added&&this.renderer.buildText(this))}titleSetter(b){const c=this.element,d=c.getElementsByTagName(\"title\")[0]||u.createElementNS(this.SVG_NS,\"title\");c.insertBefore?c.insertBefore(d,c.firstChild):c.appendChild(d);d.textContent=String(f(b,\"\")).replace(/<[^>]*>/g,\"\").replace(/&lt;/g,\"<\").replace(/&gt;/g,\">\")}toFront(){const b=this.element;b.parentNode.appendChild(b);return this}translate(b,c){return this.attr({translateX:b,\ntranslateY:c})}updateTransform(){const {element:b,matrix:c,rotation:d=0,scaleX:k,scaleY:n,translateX:q=0,translateY:A=0}=this,g=[\"translate(\"+q+\",\"+A+\")\"];e(c)&&g.push(\"matrix(\"+c.join(\",\")+\")\");d&&g.push(\"rotate(\"+d+\" \"+f(this.rotationOriginX,b.getAttribute(\"x\"),0)+\" \"+f(this.rotationOriginY,b.getAttribute(\"y\")||0)+\")\");(e(k)||e(n))&&g.push(\"scale(\"+f(k,1)+\" \"+f(n,1)+\")\");g.length&&!(this.text||this).textPath&&b.setAttribute(\"transform\",g.join(\" \"))}visibilitySetter(b,c,f){\"inherit\"===b?f.removeAttribute(c):\nthis[c]!==b&&f.setAttribute(c,b);this[c]=b}xGetter(b){\"circle\"===this.element.nodeName&&(\"x\"===b?b=\"cx\":\"y\"===b&&(b=\"cy\"));return this._defaultGetter(b)}zIndexSetter(b,f){var d=this.renderer,k=this.parentGroup;const n=(k||d).element||d.box,q=this.element;d=n===d.box;let A=!1,g;var a=this.added;let r;e(b)?(q.setAttribute(\"data-z-index\",b),b=+b,this[f]===b&&(a=!1)):e(this[f])&&q.removeAttribute(\"data-z-index\");this[f]=b;if(a){(b=this.zIndex)&&k&&(k.handleZ=!0);f=n.childNodes;for(r=f.length-1;0<=r&&\n!A;r--)if(k=f[r],a=k.getAttribute(\"data-z-index\"),g=!e(a),k!==q)if(0>b&&g&&!d&&!r)n.insertBefore(q,f[r]),A=!0;else if(c(a)<=b||g&&(!e(b)||0<=b))n.insertBefore(q,f[r+1]),A=!0;A||(n.insertBefore(q,f[d?3:0]),A=!0)}return A}}D.symbolCustomAttribs=\"anchorX anchorY clockwise end height innerR r start width x y\".split(\" \");D.prototype.strokeSetter=D.prototype.fillSetter;D.prototype.yGetter=D.prototype.xGetter;D.prototype.matrixSetter=D.prototype.rotationOriginXSetter=D.prototype.rotationOriginYSetter=D.prototype.rotationSetter=\nD.prototype.scaleXSetter=D.prototype.scaleYSetter=D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.verticalAlignSetter=function(b,c){this[c]=b;this.doTransform=!0};\"\";return D});M(a,\"Core/Renderer/RendererRegistry.js\",[a[\"Core/Globals.js\"]],function(a){var x;(function(x){x.rendererTypes={};let y;x.getRendererType=function(a=y){return x.rendererTypes[a]||x.rendererTypes[y]};x.registerRendererType=function(C,z,H){x.rendererTypes[C]=z;if(!y||H)y=C,a.Renderer=z}})(x||(x={}));return x});\nM(a,\"Core/Renderer/SVG/SVGLabel.js\",[a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {defined:x,extend:L,isNumber:C,merge:z,pick:H,removeEvent:B}=y;class u extends a{constructor(a,l,p,t,m,h,g,e,w,E){super();this.paddingRightSetter=this.paddingLeftSetter=this.paddingSetter;this.init(a,\"g\");this.textStr=l;this.x=p;this.y=t;this.anchorX=h;this.anchorY=g;this.baseline=w;this.className=E;this.addClass(\"button\"===E?\"highcharts-no-tooltip\":\"highcharts-label\");E&&this.addClass(\"highcharts-\"+\nE);this.text=a.text(void 0,0,0,e).attr({zIndex:1});let v;\"string\"===typeof m&&((v=/^url\\((.*?)\\)$/.test(m))||this.renderer.symbols[m])&&(this.symbolKey=m);this.bBox=u.emptyBBox;this.padding=3;this.baselineOffset=0;this.needsBox=a.styledMode||v;this.deferredAttr={};this.alignFactor=0}alignSetter(a){a={left:0,center:.5,right:1}[a];a!==this.alignFactor&&(this.alignFactor=a,this.bBox&&C(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(a,l){this.anchorX=a;this.boxAttr(l,Math.round(a)-this.getCrispAdjust()-\nthis.xSetting)}anchorYSetter(a,l){this.anchorY=a;this.boxAttr(l,a-this.ySetting)}boxAttr(a,l){this.box?this.box.attr(a,l):this.deferredAttr[a]=l}css(v){if(v){const a={};v=z(v);u.textProps.forEach(l=>{\"undefined\"!==typeof v[l]&&(a[l]=v[l],delete v[l])});this.text.css(a);\"fontSize\"in a||\"fontWeight\"in a?this.updateTextPadding():(\"width\"in a||\"textOverflow\"in a)&&this.updateBoxSize()}return a.prototype.css.call(this,v)}destroy(){B(this.element,\"mouseenter\");B(this.element,\"mouseleave\");this.text&&this.text.destroy();\nthis.box&&(this.box=this.box.destroy());a.prototype.destroy.call(this)}fillSetter(a,l){a&&(this.needsBox=!0);this.fill=a;this.boxAttr(l,a)}getBBox(){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();const a=this.padding,l=H(this.paddingLeft,a);return{width:this.width,height:this.height,x:this.bBox.x-l,y:this.bBox.y-a}}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this[\"stroke-width\"]?parseInt(this[\"stroke-width\"],10):0)%2/2}heightSetter(a){this.heightSetting=\na}onAdd(){this.text.add(this);this.attr({text:H(this.textStr,\"\"),x:this.x||0,y:this.y||0});this.box&&x(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(a,l){C(a)?a!==this[l]&&(this[l]=a,this.updateTextPadding()):this[l]=void 0}rSetter(a,l){this.boxAttr(l,a)}strokeSetter(a,l){this.stroke=a;this.boxAttr(l,a)}[\"stroke-widthSetter\"](a,l){a&&(this.needsBox=!0);this[\"stroke-width\"]=a;this.boxAttr(l,a)}[\"text-alignSetter\"](a){this.textAlign=a}textSetter(a){\"undefined\"!==\ntypeof a&&this.text.attr({text:a});this.updateTextPadding()}updateBoxSize(){var a=this.text;const l={},p=this.padding,t=this.bBox=C(this.widthSetting)&&C(this.heightSetting)&&!this.textAlign||!x(a.textStr)?u.emptyBBox:a.getBBox();this.width=this.getPaddedWidth();this.height=(this.heightSetting||t.height||0)+2*p;const m=this.renderer.fontMetrics(a);this.baselineOffset=p+Math.min((this.text.firstLineMetrics||m).b,t.height||Infinity);this.heightSetting&&(this.baselineOffset+=(this.heightSetting-m.h)/\n2);this.needsBox&&!a.textPath&&(this.box||(a=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),a.addClass((\"button\"===this.className?\"\":\"highcharts-label-box\")+(this.className?\" highcharts-\"+this.className+\"-box\":\"\")),a.add(this)),a=this.getCrispAdjust(),l.x=a,l.y=(this.baseline?-this.baselineOffset:0)+a,l.width=Math.round(this.width),l.height=Math.round(this.height),this.box.attr(L(l,this.deferredAttr)),this.deferredAttr={})}updateTextPadding(){const a=this.text;if(!a.textPath){this.updateBoxSize();\nconst l=this.baseline?0:this.baselineOffset;let p=H(this.paddingLeft,this.padding);x(this.widthSetting)&&this.bBox&&(\"center\"===this.textAlign||\"right\"===this.textAlign)&&(p+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width));if(p!==a.x||l!==a.y)a.attr(\"x\",p),a.hasBoxWidthChanged&&(this.bBox=a.getBBox(!0)),\"undefined\"!==typeof l&&a.attr(\"y\",l);a.x=p;a.y=l}}widthSetter(a){this.widthSetting=C(a)?a:void 0}getPaddedWidth(){var a=this.padding;const l=H(this.paddingLeft,a);a=H(this.paddingRight,\na);return(this.widthSetting||this.bBox.width||0)+l+a}xSetter(a){this.x=a;this.alignFactor&&(a-=this.alignFactor*this.getPaddedWidth(),this[\"forceAnimate:x\"]=!0);this.xSetting=Math.round(a);this.attr(\"translateX\",this.xSetting)}ySetter(a){this.ySetting=this.y=Math.round(a);this.attr(\"translateY\",this.ySetting)}}u.emptyBBox={width:0,height:0,x:0,y:0};u.textProps=\"color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow whiteSpace width\".split(\" \");\nreturn u});M(a,\"Core/Renderer/SVG/Symbols.js\",[a[\"Core/Utilities.js\"]],function(a){function x(a,u,v,l,p){const t=[];if(p){const m=p.start||0,h=H(p.r,v);v=H(p.r,l||v);l=(p.end||0)-.001;const g=p.innerR,e=H(p.open,.001>Math.abs((p.end||0)-m-2*Math.PI)),w=Math.cos(m),E=Math.sin(m),F=Math.cos(l),d=Math.sin(l),k=H(p.longArc,.001>l-m-Math.PI?0:1);let r=[\"A\",h,v,0,k,H(p.clockwise,1),a+h*F,u+v*d];r.params={start:m,end:l,cx:a,cy:u};t.push([\"M\",a+h*w,u+v*E],r);C(g)&&(r=[\"A\",g,g,0,k,C(p.clockwise)?1-p.clockwise:\n0,a+g*w,u+g*E],r.params={start:l,end:m,cx:a,cy:u},t.push(e?[\"M\",a+g*F,u+g*d]:[\"L\",a+g*F,u+g*d],r));e||t.push([\"Z\"])}return t}function I(a,u,v,l,p){return p&&p.r?L(a,u,v,l,p):[[\"M\",a,u],[\"L\",a+v,u],[\"L\",a+v,u+l],[\"L\",a,u+l],[\"Z\"]]}function L(a,u,v,l,p){p=(null===p||void 0===p?void 0:p.r)||0;return[[\"M\",a+p,u],[\"L\",a+v-p,u],[\"A\",p,p,0,0,1,a+v,u+p],[\"L\",a+v,u+l-p],[\"A\",p,p,0,0,1,a+v-p,u+l],[\"L\",a+p,u+l],[\"A\",p,p,0,0,1,a,u+l-p],[\"L\",a,u+p],[\"A\",p,p,0,0,1,a+p,u],[\"Z\"]]}const {defined:C,isNumber:z,pick:H}=\na;return{arc:x,callout:function(a,u,v,l,p){const t=Math.min(p&&p.r||0,v,l),m=t+6,h=p&&p.anchorX;p=p&&p.anchorY||0;const g=L(a,u,v,l,{r:t});if(!z(h))return g;a+h>=v?p>u+m&&p<u+l-m?g.splice(3,1,[\"L\",a+v,p-6],[\"L\",a+v+6,p],[\"L\",a+v,p+6],[\"L\",a+v,u+l-t]):g.splice(3,1,[\"L\",a+v,l/2],[\"L\",h,p],[\"L\",a+v,l/2],[\"L\",a+v,u+l-t]):0>=a+h?p>u+m&&p<u+l-m?g.splice(7,1,[\"L\",a,p+6],[\"L\",a-6,p],[\"L\",a,p-6],[\"L\",a,u+t]):g.splice(7,1,[\"L\",a,l/2],[\"L\",h,p],[\"L\",a,l/2],[\"L\",a,u+t]):p&&p>l&&h>a+m&&h<a+v-m?g.splice(5,1,[\"L\",\nh+6,u+l],[\"L\",h,u+l+6],[\"L\",h-6,u+l],[\"L\",a+t,u+l]):p&&0>p&&h>a+m&&h<a+v-m&&g.splice(1,1,[\"L\",h-6,u],[\"L\",h,u-6],[\"L\",h+6,u],[\"L\",v-t,u]);return g},circle:function(a,u,v,l){return x(a+v/2,u+l/2,v/2,l/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(a,u,v,l){return[[\"M\",a+v/2,u],[\"L\",a+v,u+l/2],[\"L\",a+v/2,u+l],[\"L\",a,u+l/2],[\"Z\"]]},rect:I,roundedRect:L,square:I,triangle:function(a,u,v,l){return[[\"M\",a+v/2,u],[\"L\",a+v,u+l],[\"L\",a,u+l],[\"Z\"]]},\"triangle-down\":function(a,u,v,l){return[[\"M\",\na,u],[\"L\",a+v,u],[\"L\",a+v/2,u+l],[\"Z\"]]}}});M(a,\"Core/Renderer/SVG/TextBuilder.js\",[a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {doc:x,SVG_NS:C,win:z}=y,{attr:H,extend:B,fireEvent:u,isString:v,objectEach:l,pick:p}=I;class t{constructor(a){const h=a.styles;this.renderer=a.renderer;this.svgElement=a;this.width=a.textWidth;this.textLineHeight=h&&h.lineHeight;this.textOutline=h&&h.textOutline;this.ellipsis=!(!h||\"ellipsis\"!==h.textOverflow);this.noWrap=\n!(!h||\"nowrap\"!==h.whiteSpace)}buildSVG(){const m=this.svgElement,h=m.element;var g=m.renderer,e=p(m.textStr,\"\").toString();const w=-1!==e.indexOf(\"<\"),l=h.childNodes;g=!m.added&&g.box;const t=/<br.*?>/g;var d=[e,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,m.getStyle(\"font-size\"),this.width].join();if(d!==m.textCache){m.textCache=d;delete m.actualWidth;for(d=l.length;d--;)h.removeChild(l[d]);w||this.ellipsis||this.width||m.textPath||-1!==e.indexOf(\" \")&&(!this.noWrap||t.test(e))?\n\"\"!==e&&(g&&g.appendChild(h),e=new a(e),this.modifyTree(e.nodes),e.addToDOM(h),this.modifyDOM(),this.ellipsis&&-1!==(h.textContent||\"\").indexOf(\"\\u2026\")&&m.attr(\"title\",this.unescapeEntities(m.textStr||\"\",[\"&lt;\",\"&gt;\"])),g&&g.removeChild(h)):h.appendChild(x.createTextNode(this.unescapeEntities(e)));v(this.textOutline)&&m.applyTextOutline&&m.applyTextOutline(this.textOutline)}}modifyDOM(){const a=this.svgElement,h=H(a.element,\"x\");a.firstLineMetrics=void 0;let g;for(;g=a.element.firstChild;)if(/^[\\s\\u200B]*$/.test(g.textContent||\n\" \"))a.element.removeChild(g);else break;[].forEach.call(a.element.querySelectorAll(\"tspan.highcharts-br\"),(e,d)=>{e.nextSibling&&e.previousSibling&&(0===d&&1===e.previousSibling.nodeType&&(a.firstLineMetrics=a.renderer.fontMetrics(e.previousSibling)),H(e,{dy:this.getLineHeight(e.nextSibling),x:h}))});const e=this.width||0;if(e){var w=(g,d)=>{var k=g.textContent||\"\";const r=k.replace(/([^\\^])-/g,\"$1- \").split(\" \");var q=!this.noWrap&&(1<r.length||1<a.element.childNodes.length);const m=this.getLineHeight(d);\nlet b=0,f=a.actualWidth;if(this.ellipsis)k&&this.truncate(g,k,void 0,0,Math.max(0,e-.8*m),(b,f)=>b.substring(0,f)+\"\\u2026\");else if(q){k=[];for(q=[];d.firstChild&&d.firstChild!==g;)q.push(d.firstChild),d.removeChild(d.firstChild);for(;r.length;)r.length&&!this.noWrap&&0<b&&(k.push(g.textContent||\"\"),g.textContent=r.join(\" \").replace(/- /g,\"-\")),this.truncate(g,void 0,r,0===b?f||0:0,e,(b,f)=>r.slice(0,f).join(\" \").replace(/- /g,\"-\")),f=a.actualWidth,b++;q.forEach(b=>{d.insertBefore(b,g)});k.forEach(b=>\n{d.insertBefore(x.createTextNode(b),g);b=x.createElementNS(C,\"tspan\");b.textContent=\"\\u200b\";H(b,{dy:m,x:h});d.insertBefore(b,g)})}},l=e=>{[].slice.call(e.childNodes).forEach(d=>{d.nodeType===z.Node.TEXT_NODE?w(d,e):(-1!==d.className.baseVal.indexOf(\"highcharts-br\")&&(a.actualWidth=0),l(d))})};l(a.element)}}getLineHeight(a){a=a.nodeType===z.Node.TEXT_NODE?a.parentElement:a;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(a||this.svgElement.element).h}modifyTree(a){const h=\n(g,e)=>{const {attributes:m={},children:l,style:p={},tagName:d}=g,k=this.renderer.styledMode;if(\"b\"===d||\"strong\"===d)k?m[\"class\"]=\"highcharts-strong\":p.fontWeight=\"bold\";else if(\"i\"===d||\"em\"===d)k?m[\"class\"]=\"highcharts-emphasized\":p.fontStyle=\"italic\";p&&p.color&&(p.fill=p.color);\"br\"===d?(m[\"class\"]=\"highcharts-br\",g.textContent=\"\\u200b\",(e=a[e+1])&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,\"\"))):\"a\"===d&&l&&l.some(d=>\"#text\"===d.tagName)&&(g.children=[{children:l,tagName:\"tspan\"}]);\n\"#text\"!==d&&\"a\"!==d&&(g.tagName=\"tspan\");B(g,{attributes:m,style:p});l&&l.filter(d=>\"#text\"!==d.tagName).forEach(h)};a.forEach(h);u(this.svgElement,\"afterModifyTree\",{nodes:a})}truncate(a,h,g,e,l,p){const m=this.svgElement,{rotation:d}=m,k=[];let r=g?1:0,q=(h||g||\"\").length,w=q,b,f;const c=function(b,c){b=c||b;if((c=a.parentNode)&&\"undefined\"===typeof k[b]&&c.getSubStringLength)try{k[b]=e+c.getSubStringLength(0,g?b+1:b)}catch(D){\"\"}return k[b]};m.rotation=0;f=c(a.textContent.length);if(e+f>l){for(;r<=\nq;)w=Math.ceil((r+q)/2),g&&(b=p(g,w)),f=c(w,b&&b.length-1),r===q?r=q+1:f>l?q=w-1:r=w;0===q?a.textContent=\"\":h&&q===h.length-1||(a.textContent=b||p(h||g,w))}g&&g.splice(0,w);m.actualWidth=f;m.rotation=d}unescapeEntities(a,h){l(this.renderer.escapes,function(g,e){h&&-1!==h.indexOf(g)||(a=a.toString().replace(new RegExp(g,\"g\"),e))});return a}}return t});M(a,\"Core/Renderer/SVG/SVGRenderer.js\",[a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Renderer/RendererRegistry.js\"],\na[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGLabel.js\"],a[\"Core/Renderer/SVG/Symbols.js\"],a[\"Core/Renderer/SVG/TextBuilder.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B,u){const {charts:v,deg2rad:l,doc:p,isFirefox:t,isMS:m,isWebKit:h,noop:g,SVG_NS:e,symbolSizes:w,win:E}=I,{addEvent:F,attr:d,createElement:k,css:r,defined:q,destroyObjectProperties:G,extend:b,isArray:f,isNumber:c,isObject:n,isString:P,merge:D,pick:K,pInt:x,uniqueKey:T}=u;let Z;class V{constructor(b,c,f,d,a,k,\nn){this.width=this.url=this.style=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0;this.init(b,c,f,d,a,k,n)}init(b,c,f,a,k,n,J){const A=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"}),e=A.element;J||A.css(this.getStyle(a));b.appendChild(e);d(b,\"dir\",\"ltr\");-1===b.innerHTML.indexOf(\"xmlns\")&&d(e,\"xmlns\",this.SVG_NS);this.box=e;this.boxWrapper=A;this.alignedObjects=\n[];this.url=this.getReferenceURL();this.createElement(\"desc\").add().element.appendChild(p.createTextNode(\"Created with Highcharts 11.1.0\"));this.defs=this.createElement(\"defs\").add();this.allowHTML=n;this.forExport=k;this.styledMode=J;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.rootFontSize=A.getStyle(\"font-size\");this.setSize(c,f,!1);let q;t&&b.getBoundingClientRect&&(c=function(){r(b,{left:0,top:0});q=b.getBoundingClientRect();r(b,{left:Math.ceil(q.left)-q.left+\"px\",top:Math.ceil(q.top)-\nq.top+\"px\"})},c(),this.unSubPixelFix=F(E,\"resize\",c))}definition(b){return(new a([b])).addToDOM(this.defs.element)}getReferenceURL(){if((t||h)&&p.getElementsByTagName(\"base\").length){if(!q(Z)){var b=T();b=(new a([{tagName:\"svg\",attributes:{width:8,height:8},children:[{tagName:\"defs\",children:[{tagName:\"clipPath\",attributes:{id:b},children:[{tagName:\"rect\",attributes:{width:4,height:4}}]}]},{tagName:\"rect\",attributes:{id:\"hitme\",width:8,height:8,\"clip-path\":`url(#${b})`,fill:\"rgba(0,0,0,0.001)\"}}]}])).addToDOM(p.body);\nr(b,{position:\"fixed\",top:0,left:0,zIndex:9E5});const c=p.elementFromPoint(6,6);Z=\"hitme\"===(c&&c.id);p.body.removeChild(b)}if(Z)return E.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\")}return\"\"}getStyle(c){return this.style=b({fontFamily:\"Helvetica, Arial, sans-serif\",fontSize:\"1rem\"},c)}setStyle(b){this.boxWrapper.css(this.getStyle(b))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){const b=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();\nG(this.gradients||{});this.gradients=null;this.defs=b.destroy();this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null}createElement(b){const c=new this.Element;c.init(this,b);return c}getRadialAttr(b,c){return{cx:b[0]-b[2]/2+(c.cx||0)*b[2],cy:b[1]-b[2]/2+(c.cy||0)*b[2],r:(c.r||0)*b[2]}}shadowDefinition(b){const c=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(b).map(c=>b[c])].join(\"-\").replace(/[^a-z0-9\\-]/g,\"\"),f=D({color:\"#000000\",offsetX:1,offsetY:1,opacity:.15,\nwidth:5},b);this.defs.element.querySelector(`#${c}`)||this.definition({tagName:\"filter\",attributes:{id:c},children:[{tagName:\"feDropShadow\",attributes:{dx:f.offsetX,dy:f.offsetY,\"flood-color\":f.color,\"flood-opacity\":Math.min(5*f.opacity,1),stdDeviation:f.width/2}}]});return c}buildText(b){(new B(b)).buildSVG()}getContrast(b){b=y.parse(b).rgba.map(b=>{b/=255;return.03928>=b?b/12.92:Math.pow((b+.055)/1.055,2.4)});b=.2126*b[0]+.7152*b[1]+.0722*b[2];return 1.05/(b+.05)>(b+.05)/.05?\"#FFFFFF\":\"#000000\"}button(c,\nf,d,k,e={},q,J,g,r,h){const A=this.label(c,f,d,r,void 0,void 0,h,void 0,\"button\"),O=this.styledMode;c=e.states||{};let N=0;e=D(e);delete e.states;const l=D({color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",fontWeight:\"normal\"},e.style);delete e.style;let w=a.filterUserAttributes(e);A.attr(D({padding:8,r:2},w));let p,G,R;O||(w=D({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1},w),q=D(w,{fill:\"#e6e6e6\"},a.filterUserAttributes(q||c.hover||{})),p=q.style,delete q.style,J=D(w,{fill:\"#e6e9ff\",style:{color:\"#000000\",\nfontWeight:\"bold\"}},a.filterUserAttributes(J||c.select||{})),G=J.style,delete J.style,g=D(w,{style:{color:\"#cccccc\"}},a.filterUserAttributes(g||c.disabled||{})),R=g.style,delete g.style);F(A.element,m?\"mouseover\":\"mouseenter\",function(){3!==N&&A.setState(1)});F(A.element,m?\"mouseout\":\"mouseleave\",function(){3!==N&&A.setState(N)});A.setState=function(b){1!==b&&(A.state=N=b);A.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\n\"disabled\"][b||0]);O||(A.attr([w,q,J,g][b||0]),b=[l,p,G,R][b||0],n(b)&&A.css(b))};O||(A.attr(w).css(b({cursor:\"default\"},l)),h&&A.text.css({pointerEvents:\"none\"}));return A.on(\"touchstart\",b=>b.stopPropagation()).on(\"click\",function(b){3!==N&&k.call(A,b)})}crispLine(b,c,f=\"round\"){const d=b[0],a=b[1];q(d[1])&&d[1]===a[1]&&(d[1]=a[1]=Math[f](d[1])-c%2/2);q(d[2])&&d[2]===a[2]&&(d[2]=a[2]=Math[f](d[2])+c%2/2);return b}path(c){const d=this.styledMode?{}:{fill:\"none\"};f(c)?d.d=c:n(c)&&b(d,c);return this.createElement(\"path\").attr(d)}circle(b,\nc,f){b=n(b)?b:\"undefined\"===typeof b?{}:{x:b,y:c,r:f};c=this.createElement(\"circle\");c.xSetter=c.ySetter=function(b,c,f){f.setAttribute(\"c\"+c,b)};return c.attr(b)}arc(b,c,f,d,a,k){n(b)?(d=b,c=d.y,f=d.r,b=d.x):d={innerR:d,start:a,end:k};b=this.symbol(\"arc\",b,c,f,f,d);b.r=f;return b}rect(c,f,a,k,e,q){c=n(c)?c:\"undefined\"===typeof c?{}:{x:c,y:f,r:e,width:Math.max(a||0,0),height:Math.max(k||0,0)};const A=this.createElement(\"rect\");this.styledMode||(\"undefined\"!==typeof q&&(c[\"stroke-width\"]=q,b(c,A.crisp(c))),\nc.fill=\"none\");A.rSetter=function(b,c,f){A.r=b;d(f,{rx:b,ry:b})};A.rGetter=function(){return A.r||0};return A.attr(c)}roundedRect(b){return this.symbol(\"roundedRect\").attr(b)}setSize(b,c,f){this.width=b;this.height=c;this.boxWrapper.animate({width:b,height:c},{step:function(){this.attr({viewBox:\"0 0 \"+this.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:K(f,!0)?void 0:0});this.alignElements()}g(b){const c=this.createElement(\"g\");return b?c.attr({\"class\":\"highcharts-\"+b}):c}image(b,f,d,a,k,n){const A=\n{preserveAspectRatio:\"none\"};c(f)&&(A.x=f);c(d)&&(A.y=d);c(a)&&(A.width=a);c(k)&&(A.height=k);const e=this.createElement(\"image\").attr(A);f=function(c){e.attr({href:b});n.call(e,c)};n?(e.attr({href:\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"}),d=new E.Image,F(d,\"load\",f),d.src=b,d.complete&&f({})):e.attr({href:b});return e}symbol(c,f,a,n,e,g){const A=this,h=/^url\\((.*?)\\)$/,O=h.test(c),m=!O&&(this.symbols[c]?c:\"circle\"),l=m&&this.symbols[m];let D,G,P,t;if(l)\"number\"===\ntypeof f&&(G=l.call(this.symbols,Math.round(f||0),Math.round(a||0),n||0,e||0,g)),D=this.path(G),A.styledMode||D.attr(\"fill\",\"none\"),b(D,{symbolName:m||void 0,x:f,y:a,width:n,height:e}),g&&b(D,g);else if(O){P=c.match(h)[1];const b=D=this.image(P);b.imgwidth=K(g&&g.width,w[P]&&w[P].width);b.imgheight=K(g&&g.height,w[P]&&w[P].height);t=b=>b.attr({width:b.width,height:b.height});[\"width\",\"height\"].forEach(function(c){b[c+\"Setter\"]=function(b,c){this[c]=b;const {alignByTranslate:f,element:a,width:k,height:A,\nimgwidth:n,imgheight:e}=this;b=this[\"img\"+c];if(q(b)){let J=1;g&&\"within\"===g.backgroundSize&&k&&A?(J=Math.min(k/n,A/e),d(a,{width:Math.round(n*J),height:Math.round(e*J)})):a&&a.setAttribute(c,b);f||this.translate(((k||0)-n*J)/2,((A||0)-e*J)/2)}}});q(f)&&b.attr({x:f,y:a});b.isImg=!0;q(b.imgwidth)&&q(b.imgheight)?t(b):(b.attr({width:0,height:0}),k(\"img\",{onload:function(){const c=v[A.chartIndex];0===this.width&&(r(this,{position:\"absolute\",top:\"-999em\"}),p.body.appendChild(this));w[P]={width:this.width,\nheight:this.height};b.imgwidth=this.width;b.imgheight=this.height;b.element&&t(b);this.parentNode&&this.parentNode.removeChild(this);A.imgCount--;if(!A.imgCount&&c&&!c.hasLoaded)c.onload()},src:P}),this.imgCount++)}return D}clipRect(b,c,f,d){const a=T()+\"-\",k=this.createElement(\"clipPath\").attr({id:a}).add(this.defs);b=this.rect(b,c,f,d,0).add(k);b.id=a;b.clipPath=k;b.count=0;return b}text(b,c,f,d){const a={};if(d&&(this.allowHTML||!this.forExport))return this.html(b,c,f);a.x=Math.round(c||0);f&&\n(a.y=Math.round(f));q(b)&&(a.text=b);b=this.createElement(\"text\").attr(a);if(!d||this.forExport&&!this.allowHTML)b.xSetter=function(b,c,f){const d=f.getElementsByTagName(\"tspan\"),a=f.getAttribute(c);for(let f=0,k;f<d.length;f++)k=d[f],k.getAttribute(c)===a&&k.setAttribute(c,b);f.setAttribute(c,b)};return b}fontMetrics(b){b=x(C.prototype.getStyle.call(b,\"font-size\")||0);const c=24>b?b+3:Math.round(1.2*b);return{h:c,b:Math.round(.8*c),f:b}}rotCorr(b,c,f){let d=b;c&&f&&(d=Math.max(d*Math.cos(c*l),4));\nreturn{x:-b/3*Math.sin(c*l),y:d}}pathToSegments(b){const f=[],d=[],a={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let k=0;k<b.length;k++)P(d[0])&&c(b[k])&&d.length===a[d[0].toUpperCase()]&&b.splice(k,0,d[0].replace(\"M\",\"L\").replace(\"m\",\"l\")),\"string\"===typeof b[k]&&(d.length&&f.push(d.slice(0)),d.length=0),d.push(b[k]);f.push(d.slice(0));return f}label(b,c,f,d,a,k,n,e,q){return new z(this,b,c,f,d,a,k,n,e,q)}alignElements(){this.alignedObjects.forEach(b=>b.align())}}b(V.prototype,{Element:C,SVG_NS:e,\nescapes:{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"'\":\"&#39;\",'\"':\"&quot;\"},symbols:H,draw:g});L.registerRendererType(\"svg\",V,!0);\"\";return V});M(a,\"Core/Renderer/HTML/HTMLElement.js\",[a[\"Core/Globals.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {isFirefox:x,isMS:C,isWebKit:z,win:H}=a,{css:B,defined:u,extend:v,pick:l,pInt:p}=I,t=[];class m extends y{static compose(a){if(I.pushUnique(t,a)){const g=m.prototype,e=a.prototype;e.getSpanCorrection=g.getSpanCorrection;\ne.htmlCss=g.htmlCss;e.htmlGetBBox=g.htmlGetBBox;e.htmlUpdateTransform=g.htmlUpdateTransform;e.setSpanRotation=g.setSpanRotation}return a}getSpanCorrection(a,g,e){this.xCorr=-a*e;this.yCorr=-g}htmlCss(a){const g=\"SPAN\"===this.element.tagName&&a&&\"width\"in a,e=l(g&&a.width,void 0);let h;g&&(delete a.width,this.textWidth=e,h=!0);a&&\"ellipsis\"===a.textOverflow&&(a.whiteSpace=\"nowrap\",a.overflow=\"hidden\");this.styles=v(this.styles,a);B(this.element,a);h&&this.htmlUpdateTransform();return this}htmlGetBBox(){const a=\nthis.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}}htmlUpdateTransform(){if(this.added){var a=this.renderer,g=this.element,e=this.x||0,m=this.y||0,l=this.textAlign||\"left\",t={left:0,center:.5,right:1}[l],d=this.styles,k=d&&d.whiteSpace;B(g,{marginLeft:this.translateX||0,marginTop:this.translateY||0});if(\"SPAN\"===g.tagName){d=this.rotation;const q=this.textWidth&&p(this.textWidth),h=[d,l,g.innerHTML,this.textWidth,this.textAlign].join();let b=!1;if(q!==this.oldTextWidth){if(this.textPxLength)var r=\nthis.textPxLength;else B(g,{width:\"\",whiteSpace:k||\"nowrap\"}),r=g.offsetWidth;(q>this.oldTextWidth||r>q)&&(/[ \\-]/.test(g.textContent||g.innerText)||\"ellipsis\"===g.style.textOverflow)&&(B(g,{width:r>q||d?q+\"px\":\"auto\",display:\"block\",whiteSpace:k||\"normal\"}),this.oldTextWidth=q,b=!0)}this.hasBoxWidthChanged=b;h!==this.cTT&&(a=a.fontMetrics(g).b,!u(d)||d===(this.oldRotation||0)&&l===this.oldAlign||this.setSpanRotation(d,t,a),this.getSpanCorrection(!u(d)&&this.textPxLength||g.offsetWidth,a,t,d,l));\nB(g,{left:e+(this.xCorr||0)+\"px\",top:m+(this.yCorr||0)+\"px\"});this.cTT=h;this.oldRotation=d;this.oldAlign=l}}else this.alignOnAdd=!0}setSpanRotation(a,g,e){const h={},m=C&&!/Edge/.test(H.navigator.userAgent)?\"-ms-transform\":z?\"-webkit-transform\":x?\"MozTransform\":H.opera?\"-o-transform\":void 0;m&&(h[m]=h.transform=\"rotate(\"+a+\"deg)\",h[m+(x?\"Origin\":\"-origin\")]=h.transformOrigin=100*g+\"% \"+e+\"px\",B(this.element,h))}}return m});M(a,\"Core/Renderer/HTML/HTMLRenderer.js\",[a[\"Core/Renderer/HTML/AST.js\"],\na[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L){const {attr:x,createElement:z,extend:H,pick:B}=L,u=[];class v extends I{static compose(a){L.pushUnique(u,a)&&(a.prototype.html=v.prototype.html);return a}html(l,p,t){const m=this.createElement(\"span\"),h=m.element,g=m.renderer,e=function(a,e){[\"opacity\",\"visibility\"].forEach(function(g){a[g+\"Setter\"]=function(d,k,r){const q=a.div?a.div.style:e;y.prototype[g+\"Setter\"].call(this,d,k,r);\nq&&(q[k]=d)}});a.addedSetters=!0};m.textSetter=function(e){e!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,a.setElementHTML(this.element,B(e,\"\")),this.textStr=e,m.doTransform=!0)};e(m,m.element.style);m.xSetter=m.ySetter=m.alignSetter=m.rotationSetter=function(a,e){\"align\"===e?m.alignValue=m.textAlign=a:m[e]=a;m.doTransform=!0};m.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};m.attr({text:l,x:Math.round(p),y:Math.round(t)}).css({position:\"absolute\"});\ng.styledMode||m.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});h.style.whiteSpace=\"nowrap\";m.css=m.htmlCss;m.add=function(a){const l=g.box.parentNode,w=[];let d;if(this.parentGroup=a){if(d=a.div,!d){for(;a;)w.push(a),a=a.parentGroup;w.reverse().forEach(function(a){function k(f,c){a[c]=f;\"translateX\"===c?b.left=f+\"px\":b.top=f+\"px\";a.doTransform=!0}const q=x(a.element,\"class\"),g=a.styles||{};d=a.div=a.div||z(\"div\",q?{className:q}:void 0,{position:\"absolute\",left:(a.translateX||\n0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,visibility:a.visibility},d||l);const b=d.style;H(a,{classSetter:function(b){return function(c){this.element.setAttribute(\"class\",c);b.className=c}}(d),css:function(f){m.css.call(a,f);[\"cursor\",\"pointerEvents\"].forEach(c=>{f[c]&&(b[c]=f[c])});return a},on:function(){w[0].div&&m.on.apply({element:w[0].div,onEvents:a.onEvents},arguments);return a},translateXSetter:k,translateYSetter:k});a.addedSetters||e(a);a.css(g)})}}else d=l;d.appendChild(h);\nm.added=!0;m.alignOnAdd&&m.htmlUpdateTransform();return m};return m}}return v});M(a,\"Core/Axis/AxisDefaults.js\",[],function(){var a;(function(a){a.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",range:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e %b\"},week:{main:\"%e %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,gridLineDashStyle:\"Solid\",\ngridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:\"justify\",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"}},maxPadding:.01,minorGridLineDashStyle:\"Solid\",minorTickLength:2,minorTickPosition:\"outside\",minorTicksPerMajor:5,minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,\nstartOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",rotation:0,useHTML:!1,x:0,y:0,style:{color:\"#666666\",fontSize:\"0.8em\"}},type:\"linear\",uniqueNames:!0,visible:!0,minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#333333\",lineWidth:1,gridLineColor:\"#e6e6e6\",gridLineWidth:void 0,tickColor:\"#333333\"};a.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,\ntickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){const {numberFormatter:a}=this.axis.chart;return a(this.total||0,-1)},style:{color:\"#000000\",fontSize:\"0.7em\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};a.defaultLeftAxisOptions={title:{rotation:270}};a.defaultRightAxisOptions={title:{rotation:90}};a.defaultBottomAxisOptions=\n{labels:{autoRotation:[-45]},margin:15,title:{rotation:0}};a.defaultTopAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}}})(a||(a={}));return a});M(a,\"Core/Foundation.js\",[a[\"Core/Utilities.js\"]],function(a){const {addEvent:x,isFunction:I,objectEach:L,removeEvent:C}=a;var z;(function(a){a.registerEventOptions=function(a,u){a.eventOptions=a.eventOptions||{};L(u.events,function(v,l){a.eventOptions[l]!==v&&(a.eventOptions[l]&&(C(a,l,a.eventOptions[l]),delete a.eventOptions[l]),I(v)&&\n(a.eventOptions[l]=v,x(a,l,v,{order:0})))})}})(z||(z={}));return z});M(a,\"Core/Axis/Tick.js\",[a[\"Core/Templating.js\"],a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {deg2rad:x}=y,{clamp:C,correctFloat:z,defined:H,destroyObjectProperties:B,extend:u,fireEvent:v,isNumber:l,merge:p,objectEach:t,pick:m}=I;class h{constructor(a,e,h,m,l){this.isNewLabel=this.isNew=!0;this.axis=a;this.pos=e;this.type=h||\"\";this.parameters=l||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=\nthis.parameters.options;v(this,\"init\");h||m||this.addLabel()}addLabel(){const g=this,e=g.axis;var h=e.options;const p=e.chart;var t=e.categories;const d=e.logarithmic,k=e.names,r=g.pos,q=m(g.options&&g.options.labels,h.labels);var G=e.tickPositions;const b=r===G[0],f=r===G[G.length-1],c=(!q.step||1===q.step)&&1===e.tickInterval;G=G.info;let n=g.label,P,D,K;t=this.parameters.category||(t?m(t[r],k[r],r):r);d&&l(t)&&(t=z(d.lin2log(t)));e.dateTime&&(G?(D=p.time.resolveDTLFormat(h.dateTimeLabelFormats[!h.grid&&\nG.higherRanks[r]||G.unitName]),P=D.main):l(t)&&(P=e.dateTime.getXDateFormat(t,h.dateTimeLabelFormats||{})));g.isFirst=b;g.isLast=f;const x={axis:e,chart:p,dateTimeLabelFormat:P,isFirst:b,isLast:f,pos:r,tick:g,tickPositionInfo:G,value:t};v(this,\"labelFormat\",x);const B=b=>q.formatter?q.formatter.call(b,b):q.format?(b.text=e.defaultLabelFormatter.call(b,b),a.format(q.format,b,p)):e.defaultLabelFormatter.call(b,b);h=B.call(x,x);const y=D&&D.list;g.shortenLabel=y?function(){for(K=0;K<y.length;K++)if(u(x,\n{dateTimeLabelFormat:y[K]}),n.attr({text:B.call(x,x)}),n.getBBox().width<e.getSlotWidth(g)-2*q.padding)return;n.attr({text:\"\"})}:void 0;c&&e._addedPlotLB&&g.moveLabel(h,q);H(n)||g.movedLabel?n&&n.textStr!==h&&!c&&(!n.textWidth||q.style.width||n.styles.width||n.css({width:null}),n.attr({text:h}),n.textPxLength=n.getBBox().width):(g.label=n=g.createLabel({x:0,y:0},h,q),g.rotation=0)}createLabel(a,e,h){const g=this.axis,m=g.chart;if(a=H(e)&&h.enabled?m.renderer.text(e,a.x,a.y,h.useHTML).add(g.labelGroup):\nnull)m.styledMode||a.css(p(h.style)),a.textPxLength=a.getBBox().width;return a}destroy(){B(this,this.axis)}getPosition(a,e,h,m){const g=this.axis,d=g.chart,k=m&&d.oldChartHeight||d.chartHeight;a={x:a?z(g.translate(e+h,void 0,void 0,m)+g.transB):g.left+g.offset+(g.opposite?(m&&d.oldChartWidth||d.chartWidth)-g.right-g.left:0),y:a?k-g.bottom+g.offset-(g.opposite?g.height:0):z(k-g.translate(e+h,void 0,void 0,m)-g.transB)};a.y=C(a.y,-1E5,1E5);v(this,\"afterGetPosition\",{pos:a});return a}getLabelPosition(a,\ne,h,l,p,d,k,r){const q=this.axis,g=q.transA,b=q.isLinked&&q.linkedParent?q.linkedParent.reversed:q.reversed,f=q.staggerLines,c=q.tickRotCorr||{x:0,y:0},n=l||q.reserveSpaceDefault?0:-q.labelOffset*(\"center\"===q.labelAlign?.5:1),w=p.distance,D={};h=0===q.side?h.rotation?-w:-h.getBBox().height:2===q.side?c.y+w:Math.cos(h.rotation*x)*(c.y-h.getBBox(!1,0).height/2);H(p.y)&&(h=0===q.side&&q.horiz?p.y+h:p.y);a=a+m(p.x,[0,1,0,-1][q.side]*w)+n+c.x-(d&&l?d*g*(b?-1:1):0);e=e+h-(d&&!l?d*g*(b?1:-1):0);f&&(l=k/\n(r||1)%f,q.opposite&&(l=f-l-1),e+=q.labelOffset/f*l);D.x=a;D.y=Math.round(e);v(this,\"afterGetLabelPosition\",{pos:D,tickmarkOffset:d,index:k});return D}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0}getMarkPath(a,e,h,m,l,d){return d.crispLine([[\"M\",a,e],[\"L\",a+(l?0:-h),e+(l?h:0)]],m)}handleOverflow(a){const e=this.axis,g=e.options.labels,h=a.x;var l=e.chart.chartWidth,d=e.chart.spacing;const k=m(e.labelLeft,Math.min(e.pos,d[3]));d=m(e.labelRight,Math.max(e.isRadial?\n0:e.pos+e.len,l-d[1]));const r=this.label,q=this.rotation,p={left:0,center:.5,right:1}[e.labelAlign||r.attr(\"align\")],b=r.getBBox().width,f=e.getSlotWidth(this),c={};let n=f,t=1,D;if(q||\"justify\"!==g.overflow)0>q&&h-p*b<k?D=Math.round(h/Math.cos(q*x)-k):0<q&&h+p*b>d&&(D=Math.round((l-h)/Math.cos(q*x)));else if(l=h+(1-p)*b,h-p*b<k?n=a.x+n*(1-p)-k:l>d&&(n=d-a.x+n*p,t=-1),n=Math.min(f,n),n<f&&\"center\"===e.labelAlign&&(a.x+=t*(f-n-p*(f-Math.min(b,n)))),b>n||e.autoRotation&&(r.styles||{}).width)D=n;D&&\n(this.shortenLabel?this.shortenLabel():(c.width=Math.floor(D)+\"px\",(g.style||{}).textOverflow||(c.textOverflow=\"ellipsis\"),r.css(c)))}moveLabel(a,e){const g=this;var h=g.label;const m=g.axis;let d=!1;h&&h.textStr===a?(g.movedLabel=h,d=!0,delete g.label):t(m.ticks,function(k){d||k.isNew||k===g||!k.label||k.label.textStr!==a||(g.movedLabel=k.label,d=!0,k.labelPos=g.movedLabel.xy,delete k.label)});d||!g.labelPos&&!h||(h=g.labelPos||h.xy,g.movedLabel=g.createLabel(h,a,e),g.movedLabel&&g.movedLabel.attr({opacity:0}))}render(a,\ne,h){var g=this.axis,l=g.horiz,d=this.pos,k=m(this.tickmarkOffset,g.tickmarkOffset);d=this.getPosition(l,d,k,e);k=d.x;const r=d.y;g=l&&k===g.pos+g.len||!l&&r===g.pos?-1:1;l=m(h,this.label&&this.label.newOpacity,1);h=m(h,1);this.isActive=!0;this.renderGridLine(e,h,g);this.renderMark(d,h,g);this.renderLabel(d,e,l,a);this.isNew=!1;v(this,\"afterRender\")}renderGridLine(a,e,h){const g=this.axis,l=g.options,d={},k=this.pos,r=this.type,q=m(this.tickmarkOffset,g.tickmarkOffset),p=g.chart.renderer;let b=this.gridLine,\nf=l.gridLineWidth,c=l.gridLineColor,n=l.gridLineDashStyle;\"minor\"===this.type&&(f=l.minorGridLineWidth,c=l.minorGridLineColor,n=l.minorGridLineDashStyle);b||(g.chart.styledMode||(d.stroke=c,d[\"stroke-width\"]=f||0,d.dashstyle=n),r||(d.zIndex=1),a&&(e=0),this.gridLine=b=p.path().attr(d).addClass(\"highcharts-\"+(r?r+\"-\":\"\")+\"grid-line\").add(g.gridGroup));if(b&&(h=g.getPlotLinePath({value:k+q,lineWidth:b.strokeWidth()*h,force:\"pass\",old:a,acrossPanes:!1})))b[a||this.isNew?\"attr\":\"animate\"]({d:h,opacity:e})}renderMark(a,\ne,h){const g=this.axis;var l=g.options;const d=g.chart.renderer,k=this.type,r=g.tickSize(k?k+\"Tick\":\"tick\"),q=a.x;a=a.y;const p=m(l[\"minor\"!==k?\"tickWidth\":\"minorTickWidth\"],!k&&g.isXAxis?1:0);l=l[\"minor\"!==k?\"tickColor\":\"minorTickColor\"];let b=this.mark;const f=!b;r&&(g.opposite&&(r[0]=-r[0]),b||(this.mark=b=d.path().addClass(\"highcharts-\"+(k?k+\"-\":\"\")+\"tick\").add(g.axisGroup),g.chart.styledMode||b.attr({stroke:l,\"stroke-width\":p})),b[f?\"attr\":\"animate\"]({d:this.getMarkPath(q,a,r[0],b.strokeWidth()*\nh,g.horiz,d),opacity:e}))}renderLabel(a,e,h,p){var g=this.axis;const d=g.horiz,k=g.options,r=this.label,q=k.labels,t=q.step;g=m(this.tickmarkOffset,g.tickmarkOffset);const b=a.x;a=a.y;let f=!0;r&&l(b)&&(r.xy=a=this.getLabelPosition(b,a,r,d,q,g,p,t),this.isFirst&&!this.isLast&&!k.showFirstLabel||this.isLast&&!this.isFirst&&!k.showLastLabel?f=!1:!d||q.step||q.rotation||e||0===h||this.handleOverflow(a),t&&p%t&&(f=!1),f&&l(a.y)?(a.opacity=h,r[this.isNewLabel?\"attr\":\"animate\"](a).show(!0),this.isNewLabel=\n!1):(r.hide(),this.isNewLabel=!0))}replaceMovedLabel(){const a=this.label,e=this.axis;a&&!this.isNew&&(a.animate({opacity:0},void 0,a.destroy),delete this.label);e.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel}}\"\";return h});M(a,\"Core/Axis/Axis.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Axis/AxisDefaults.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Defaults.js\"],a[\"Core/Foundation.js\"],a[\"Core/Globals.js\"],a[\"Core/Axis/Tick.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B){const {animObject:u}=\na,{defaultOptions:v}=L,{registerEventOptions:l}=C,{deg2rad:p}=z,{arrayMax:t,arrayMin:m,clamp:h,correctFloat:g,defined:e,destroyObjectProperties:w,erase:x,error:F,extend:d,fireEvent:k,getClosestDistance:r,insertItem:q,isArray:G,isNumber:b,isString:f,merge:c,normalizeTickInterval:n,objectEach:P,pick:D,relativeLength:K,removeEvent:X,splat:T,syncTimeout:Z}=B,V=(b,c)=>n(c,void 0,void 0,D(b.options.allowDecimals,.5>c||void 0!==b.tickAmount),!!b.tickAmount);class Y{constructor(b,c,f){this.zoomEnabled=this.width=\nthis.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=\nthis.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.index=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.bottom=this.alternateBands=void 0;this.init(b,c,f)}init(c,f,a=this.coll){const d=\"xAxis\"===a;this.chart=c;this.horiz=this.isZAxis||(c.inverted?!d:d);this.isXAxis=d;this.coll=a;k(this,\"init\",{userOptions:f});this.opposite=D(f.opposite,this.opposite);this.side=D(f.side,this.side,this.horiz?this.opposite?0:2:\nthis.opposite?1:3);this.setOptions(f);a=this.options;const A=a.labels,n=a.type;this.userOptions=f;this.minPixelPadding=0;this.reversed=D(a.reversed,this.reversed);this.visible=a.visible;this.zoomEnabled=a.zoomEnabled;this.hasNames=\"category\"===n||!0===a.categories;this.categories=a.categories||(this.hasNames?[]:void 0);this.names||(this.names=[],this.names.keys={});this.plotLinesAndBandsGroups={};this.positiveValuesOnly=!!this.logarithmic;this.isLinked=e(a.linkedTo);this.ticks={};this.labelEdge=[];\nthis.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=a.minRange||a.maxZoom;this.range=a.range;this.offset=a.offset||0;this.min=this.max=null;f=D(a.crosshair,T(c.options.tooltip.crosshairs)[d?0:1]);this.crosshair=!0===f?{}:f;-1===c.axes.indexOf(this)&&(d?c.axes.splice(c.xAxis.length,0,this):c.axes.push(this),q(this,c[this.coll]));c.orderItems(this.coll);this.series=this.series||[];c.inverted&&!this.isZAxis&&d&&\"undefined\"===typeof this.reversed&&\n(this.reversed=!0);this.labelRotation=b(A.rotation)?A.rotation:void 0;l(this,a);k(this,\"afterInit\")}setOptions(b){this.options=c(y.defaultXAxisOptions,\"yAxis\"===this.coll&&y.defaultYAxisOptions,[y.defaultTopAxisOptions,y.defaultRightAxisOptions,y.defaultBottomAxisOptions,y.defaultLeftAxisOptions][this.side],c(v[this.coll],b));k(this,\"afterSetOptions\",{userOptions:b})}defaultLabelFormatter(c){var f=this.axis;({numberFormatter:c}=this.chart);const a=b(this.value)?this.value:NaN,d=f.chart.time,k=this.dateTimeLabelFormat;\nvar n=v.lang;const A=n.numericSymbols;n=n.numericSymbolMagnitude||1E3;const e=f.logarithmic?Math.abs(a):f.tickInterval;let q=A&&A.length,g;if(f.categories)g=`${this.value}`;else if(k)g=d.dateFormat(k,a);else if(q&&1E3<=e)for(;q--&&\"undefined\"===typeof g;)f=Math.pow(n,q+1),e>=f&&0===10*a%f&&null!==A[q]&&0!==a&&(g=c(a/f,-1)+A[q]);\"undefined\"===typeof g&&(g=1E4<=Math.abs(a)?c(a,-1):c(a,-1,void 0,\"\"));return g}getSeriesExtremes(){const c=this,f=c.chart;let a;k(this,\"getSeriesExtremes\",null,function(){c.hasVisibleSeries=\n!1;c.dataMin=c.dataMax=c.threshold=null;c.softThreshold=!c.isXAxis;c.series.forEach(function(d){if(d.visible||!f.options.chart.ignoreHiddenSeries){var k=d.options;let f=k.threshold,n,A;c.hasVisibleSeries=!0;c.positiveValuesOnly&&0>=f&&(f=null);if(c.isXAxis)(k=d.xData)&&k.length&&(k=c.logarithmic?k.filter(b=>0<b):k,a=d.getXExtremes(k),n=a.min,A=a.max,b(n)||n instanceof Date||(k=k.filter(b),a=d.getXExtremes(k),n=a.min,A=a.max),k.length&&(c.dataMin=Math.min(D(c.dataMin,n),n),c.dataMax=Math.max(D(c.dataMax,\nA),A)));else if(d=d.applyExtremes(),b(d.dataMin)&&(n=d.dataMin,c.dataMin=Math.min(D(c.dataMin,n),n)),b(d.dataMax)&&(A=d.dataMax,c.dataMax=Math.max(D(c.dataMax,A),A)),e(f)&&(c.threshold=f),!k.softThreshold||c.positiveValuesOnly)c.softThreshold=!1}})});k(this,\"afterGetSeriesExtremes\")}translate(c,f,a,d,k,n){const e=this.linkedParent||this,A=d&&e.old?e.old.min:e.min;if(!b(A))return NaN;const q=e.minPixelPadding;k=(e.isOrdinal||e.brokenAxis&&e.brokenAxis.hasBreaks||e.logarithmic&&k)&&e.lin2val;let J=\n1,h=0;d=d&&e.old?e.old.transA:e.transA;d||(d=e.transA);a&&(J*=-1,h=e.len);e.reversed&&(J*=-1,h-=J*(e.sector||e.len));f?(n=(c*J+h-q)/d+A,k&&(n=e.lin2val(n))):(k&&(c=e.val2lin(c)),c=J*(c-A)*d,n=(e.isRadial?c:g(c))+h+J*q+(b(n)?d*n:0));return n}toPixels(b,c){return this.translate(b,!1,!this.horiz,void 0,!0)+(c?0:this.pos)}toValue(b,c){return this.translate(b-(c?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(c){function f(b,c,f){\"pass\"!==t&&(b<c||b>f)&&(t?b=h(b,c,f):K=!0);return b}const a=this,\nd=a.chart,n=a.left,e=a.top,A=c.old,q=c.value,g=c.lineWidth,r=A&&d.oldChartHeight||d.chartHeight,m=A&&d.oldChartWidth||d.chartWidth,l=a.transB;let p=c.translatedValue,t=c.force,P,w,R,Q,K;c={value:q,lineWidth:g,old:A,force:t,acrossPanes:c.acrossPanes,translatedValue:p};k(this,\"getPlotLinePath\",c,function(c){p=D(p,a.translate(q,void 0,void 0,A));p=h(p,-1E5,1E5);P=R=Math.round(p+l);w=Q=Math.round(r-p-l);b(p)?a.horiz?(w=e,Q=r-a.bottom,P=R=f(P,n,n+a.width)):(P=n,R=m-a.right,w=Q=f(w,e,e+a.height)):(K=!0,\nt=!1);c.path=K&&!t?null:d.renderer.crispLine([[\"M\",P,w],[\"L\",R,Q]],g||1)});return c.path}getLinearTickPositions(b,c,f){const a=g(Math.floor(c/b)*b);f=g(Math.ceil(f/b)*b);const d=[];let k,n;g(a+b)===a&&(n=20);if(this.single)return[c];for(c=a;c<=f;){d.push(c);c=g(c+b,n);if(c===k)break;k=c}return d}getMinorTickInterval(){const b=this.options;return!0===b.minorTicks?D(b.minorTickInterval,\"auto\"):!1===b.minorTicks?null:b.minorTickInterval}getMinorTickPositions(){var b=this.options;const c=this.tickPositions,\nf=this.minorTickInterval;var a=this.pointRangePadding||0;const d=this.min-a;a=this.max+a;const k=a-d;let n=[];if(k&&k/f<this.len/3){const k=this.logarithmic;if(k)this.paddedTicks.forEach(function(b,c,a){c&&n.push.apply(n,k.getLogTickPositions(f,a[c-1],a[c],!0))});else if(this.dateTime&&\"auto\"===this.getMinorTickInterval())n=n.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(f),d,a,b.startOfWeek));else for(b=d+(c[0]-d)%f;b<=a&&b!==n[0];b+=f)n.push(b)}0!==n.length&&this.trimTicks(n);\nreturn n}adjustForMinRange(){const b=this.options,c=this.logarithmic;let f=this.min;var a=this.max;let d,k;if(this.isXAxis&&\"undefined\"===typeof this.minRange&&!c)if(e(b.min)||e(b.max)||e(b.floor)||e(b.ceiling))this.minRange=null;else{var n=r(this.series.map(b=>{var c;return(b.xIncrement?null===(c=b.xData)||void 0===c?void 0:c.slice(0,2):b.xData)||[]}))||0;this.minRange=Math.min(5*n,this.dataMax-this.dataMin)}a-f<this.minRange&&(n=this.dataMax-this.dataMin>=this.minRange,k=this.minRange,a=(k-a+f)/\n2,d=[f-a,D(b.min,f-a)],n&&(d[2]=c?c.log2lin(this.dataMin):this.dataMin),f=t(d),a=[f+k,D(b.max,f+k)],n&&(a[2]=c?c.log2lin(this.dataMax):this.dataMax),a=m(a),a-f<k&&(d[0]=a-k,d[1]=D(b.min,a-k),f=t(d)));this.min=f;this.max=a}getClosest(){let b,c;if(this.categories)c=1;else{const f=[];this.series.forEach(function(b){var a;const d=b.closestPointRange,k=b.visible||!b.chart.options.chart.ignoreHiddenSeries;1===(null===(a=b.xData)||void 0===a?void 0:a.length)?f.push(b.xData[0]):!b.noSharedTooltip&&e(d)&&\nk&&(c=e(c)?Math.min(c,d):d)});f.length&&(f.sort((b,c)=>b-c),b=r([f]))}return b&&c?Math.min(b,c):b||c}nameToX(b){const c=G(this.options.categories),f=c?this.categories:this.names;let a=b.options.x,d;b.series.requireSorting=!1;e(a)||(a=this.options.uniqueNames&&f?c?f.indexOf(b.name):D(f.keys[b.name],-1):b.series.autoIncrement());-1===a?!c&&f&&(d=f.length):d=a;\"undefined\"!==typeof d?(this.names[d]=b.name,this.names.keys[b.name]=d):b.x&&(d=b.x);return d}updateNames(){const b=this,c=this.names;0<c.length&&\n(Object.keys(c.keys).forEach(function(b){delete c.keys[b]}),c.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(c){c.xIncrement=null;if(!c.points||c.isDirtyData)b.max=Math.max(b.max,c.xData.length-1),c.processData(),c.generatePoints();c.data.forEach(function(f,a){let d;f&&f.options&&\"undefined\"!==typeof f.name&&(d=b.nameToX(f),\"undefined\"!==typeof d&&d!==f.x&&(f.x=d,c.xData[a]=d))})}))}setAxisTranslation(){const b=this,c=b.max-b.min;var a=b.linkedParent;const d=!!b.categories,\nn=b.isXAxis;let e=b.axisPointRange||0,q,g=0,h=0,r=b.transA;if(n||d||e)q=b.getClosest(),a?(g=a.minPointOffset,h=a.pointRangePadding):b.series.forEach(function(c){const a=d?1:n?D(c.options.pointRange,q,0):b.axisPointRange||0,k=c.options.pointPlacement;e=Math.max(e,a);if(!b.single||d)c=c.is(\"xrange\")?!n:n,g=Math.max(g,c&&f(k)?0:a/2),h=Math.max(h,c&&\"on\"===k?0:a)}),a=b.ordinal&&b.ordinal.slope&&q?b.ordinal.slope/q:1,b.minPointOffset=g*=a,b.pointRangePadding=h*=a,b.pointRange=Math.min(e,b.single&&d?1:\nc),n&&q&&(b.closestPointRange=q);b.translationSlope=b.transA=r=b.staticScale||b.len/(c+h||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=r*g;k(this,\"afterSetAxisTranslation\")}minFromRange(){return this.max-this.range}setTickInterval(c){var f=this.chart;const a=this.logarithmic,d=this.options,n=this.isXAxis,q=this.isLinked,h=d.tickPixelInterval,A=this.categories,r=this.softThreshold;let m=d.maxPadding,l=d.minPadding;let p=b(d.tickInterval)&&0<=d.tickInterval?d.tickInterval:void 0,t=b(this.threshold)?\nthis.threshold:null,P,w,K;this.dateTime||A||q||this.getTickAmount();w=D(this.userMin,d.min);K=D(this.userMax,d.max);if(q){this.linkedParent=f[this.coll][d.linkedTo];var R=this.linkedParent.getExtremes();this.min=D(R.min,R.dataMin);this.max=D(R.max,R.dataMax);d.type!==this.linkedParent.options.type&&F(11,1,f)}else r&&e(t)&&(this.dataMin>=t?(R=t,l=0):this.dataMax<=t&&(P=t,m=0)),this.min=D(w,R,this.dataMin),this.max=D(K,P,this.dataMax);a&&(this.positiveValuesOnly&&!c&&0>=Math.min(this.min,D(this.dataMin,\nthis.min))&&F(10,1,f),this.min=g(a.log2lin(this.min),16),this.max=g(a.log2lin(this.max),16));this.range&&e(this.max)&&(this.userMin=this.min=w=Math.max(this.dataMin,this.minFromRange()),this.userMax=K=this.max,this.range=null);k(this,\"foundExtremes\");this.beforePadding&&this.beforePadding();this.adjustForMinRange();!b(this.userMin)&&b(d.softMin)&&d.softMin<this.min&&(this.min=w=d.softMin);!b(this.userMax)&&b(d.softMax)&&d.softMax>this.max&&(this.max=K=d.softMax);!(A||this.axisPointRange||this.stacking&&\nthis.stacking.usePercentage||q)&&e(this.min)&&e(this.max)&&(f=this.max-this.min)&&(!e(w)&&l&&(this.min-=f*l),!e(K)&&m&&(this.max+=f*m));!b(this.userMin)&&b(d.floor)&&(this.min=Math.max(this.min,d.floor));!b(this.userMax)&&b(d.ceiling)&&(this.max=Math.min(this.max,d.ceiling));r&&e(this.dataMin)&&(t=t||0,!e(w)&&this.min<t&&this.dataMin>=t?this.min=this.options.minRange?Math.min(t,this.max-this.minRange):t:!e(K)&&this.max>t&&this.dataMax<=t&&(this.max=this.options.minRange?Math.max(t,this.min+this.minRange):\nt));b(this.min)&&b(this.max)&&!this.chart.polar&&this.min>this.max&&(e(this.options.min)?this.max=this.min:e(this.options.max)&&(this.min=this.max));this.tickInterval=this.min===this.max||\"undefined\"===typeof this.min||\"undefined\"===typeof this.max?1:q&&this.linkedParent&&!p&&h===this.linkedParent.options.tickPixelInterval?p=this.linkedParent.tickInterval:D(p,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,A?1:(this.max-this.min)*h/Math.max(this.len,h));if(n&&!c){const b=\nthis.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach(function(c){c.forceCrop=c.forceCropping&&c.forceCropping();c.processData(b)});k(this,\"postProcessData\",{hasExtremesChanged:b})}this.setAxisTranslation();k(this,\"initialAxisTranslation\");this.pointRange&&!p&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));c=D(d.minTickInterval,this.dateTime&&!this.series.some(b=>b.noSharedTooltip)?this.closestPointRange:0);!p&&this.tickInterval<c&&(this.tickInterval=\nc);this.dateTime||this.logarithmic||p||(this.tickInterval=V(this,this.tickInterval));this.tickAmount||(this.tickInterval=this.unsquish());this.setTickPositions()}setTickPositions(){var c=this.options;const f=c.tickPositions,a=c.tickPositioner;var d=this.getMinorTickInterval(),n=this.hasVerticalPanning(),q=\"colorAxis\"===this.coll;const g=(q||!n)&&c.startOnTick;n=(q||!n)&&c.endOnTick;q=[];let h;this.tickmarkOffset=this.categories&&\"between\"===c.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\n\"auto\"===d&&this.tickInterval?this.tickInterval/c.minorTicksPerMajor:d;this.single=this.min===this.max&&e(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==c.allowDecimals);if(f)q=f.slice();else if(b(this.min)&&b(this.max)){if(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)))if(this.dateTime)q=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,c.units),this.min,this.max,c.startOfWeek,this.ordinal&&this.ordinal.positions,\nthis.closestPointRange,!0);else if(this.logarithmic)q=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else for(d=c=this.tickInterval;d<=2*c;)if(q=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&q.length>this.tickAmount)this.tickInterval=V(this,d*=1.1);else break;else q=[this.min,this.max],F(19,!1,this.chart);q.length>this.len&&(q=[q[0],q[q.length-1]],q[0]===q[1]&&(q.length=1));a&&(this.tickPositions=q,(h=a.apply(this,[this.min,this.max]))&&\n(q=h))}this.tickPositions=q;this.paddedTicks=q.slice(0);this.trimTicks(q,g,n);!this.isLinked&&b(this.min)&&b(this.max)&&(this.single&&2>q.length&&!this.categories&&!this.series.some(b=>b.is(\"heatmap\")&&\"between\"===b.options.pointPlacement)&&(this.min-=.5,this.max+=.5),f||h||this.adjustTickAmount());k(this,\"afterSetTickPositions\")}trimTicks(b,c,f){const a=b[0],d=b[b.length-1],n=!this.isOrdinal&&this.minPointOffset||0;k(this,\"trimTicks\");if(!this.isLinked){if(c&&-Infinity!==a)this.min=a;else for(;this.min-\nn>b[0];)b.shift();if(f)this.max=d;else for(;this.max+n<b[b.length-1];)b.pop();0===b.length&&e(a)&&!this.options.tickPositions&&b.push((d+a)/2)}}alignToOthers(){const c=this,f=[this],a=c.options,d=\"yAxis\"===this.coll&&this.chart.options.chart.alignThresholds,k=[];let n;c.thresholdAlignment=void 0;if((!1!==this.chart.options.chart.alignTicks&&a.alignTicks||d)&&!1!==a.startOnTick&&!1!==a.endOnTick&&!c.logarithmic){const b=b=>{const {horiz:c,options:f}=b;return[c?f.left:f.top,f.width,f.height,f.pane].join()},\na=b(this);this.chart[this.coll].forEach(function(d){const {series:k}=d;k.length&&k.some(b=>b.visible)&&d!==c&&b(d)===a&&(n=!0,f.push(d))})}if(n&&d){f.forEach(f=>{f=f.getThresholdAlignment(c);b(f)&&k.push(f)});const a=1<k.length?k.reduce((b,c)=>b+c,0)/k.length:void 0;f.forEach(b=>{b.thresholdAlignment=a})}return n}getThresholdAlignment(c){(!b(this.dataMin)||this!==c&&this.series.some(b=>b.isDirty||b.isDirtyData))&&this.getSeriesExtremes();if(b(this.threshold))return c=h((this.threshold-(this.dataMin||\n0))/((this.dataMax||0)-(this.dataMin||0)),0,1),this.options.reversed&&(c=1-c),c}getTickAmount(){const b=this.options,c=b.tickPixelInterval;let f=b.tickAmount;!e(b.tickInterval)&&!f&&this.len<c&&!this.isRadial&&!this.logarithmic&&b.startOnTick&&b.endOnTick&&(f=2);!f&&this.alignToOthers()&&(f=Math.ceil(this.len/c)+1);4>f&&(this.finalTickAmt=f,f=5);this.tickAmount=f}adjustTickAmount(){const c=this,{finalTickAmt:f,max:a,min:d,options:k,tickPositions:n,tickAmount:q,thresholdAlignment:h}=c,r=n&&n.length;\nvar m=D(c.threshold,c.softThreshold?0:null);var l=c.tickInterval;let p;b(h)&&(p=.5>h?Math.ceil(h*(q-1)):Math.floor(h*(q-1)),k.reversed&&(p=q-1-p));if(c.hasData()&&b(d)&&b(a)){const h=()=>{c.transA*=(r-1)/(q-1);c.min=k.startOnTick?n[0]:Math.min(d,n[0]);c.max=k.endOnTick?n[n.length-1]:Math.max(a,n[n.length-1])};if(b(p)&&b(c.threshold)){for(;n[p]!==m||n.length!==q||n[0]>d||n[n.length-1]<a;){n.length=0;for(n.push(c.threshold);n.length<q;)void 0===n[p]||n[p]>c.threshold?n.unshift(g(n[0]-l)):n.push(g(n[n.length-\n1]+l));if(l>8*c.tickInterval)break;l*=2}h()}else if(r<q){for(;n.length<q;)n.length%2||d===m?n.push(g(n[n.length-1]+l)):n.unshift(g(n[0]-l));h()}if(e(f)){for(l=m=n.length;l--;)(3===f&&1===l%2||2>=f&&0<l&&l<m-1)&&n.splice(l,1);c.finalTickAmt=void 0}}}setScale(){let b=!1,c=!1;this.series.forEach(function(f){b=b||f.isDirtyData||f.isDirty;c=c||f.xAxis&&f.xAxis.isDirty||!1});this.setAxisSize();const f=this.len!==(this.old&&this.old.len);f||b||c||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&\nthis.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(this.stacking&&(this.stacking.resetStacks(),this.stacking.buildStacks()),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),this.isDirty||(this.isDirty=f||this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max))):this.stacking&&this.stacking.cleanStacks();b&&this.panningState&&(this.panningState.isDirty=!0);k(this,\"afterSetScale\")}setExtremes(b,\nc,f,a,n){const e=this,q=e.chart;f=D(f,!0);e.series.forEach(function(b){delete b.kdTree});n=d(n,{min:b,max:c});k(e,\"setExtremes\",n,function(){e.userMin=b;e.userMax=c;e.eventArgs=n;f&&q.redraw(a)})}zoom(b,c){const f=this,a=this.dataMin,d=this.dataMax,n=this.options,q=Math.min(a,D(n.min,a)),g=Math.max(d,D(n.max,d));b={newMin:b,newMax:c};k(this,\"zoom\",b,function(b){let c=b.newMin,n=b.newMax;if(c!==f.min||n!==f.max)f.allowZoomOutside||(e(a)&&(c<q&&(c=q),c>g&&(c=g)),e(d)&&(n<q&&(n=q),n>g&&(n=g))),f.displayBtn=\n\"undefined\"!==typeof c||\"undefined\"!==typeof n,f.setExtremes(c,n,!1,void 0,{trigger:\"zoom\"});b.zoomed=!0});return b.zoomed}setAxisSize(){const b=this.chart;var c=this.options;const f=c.offsets||[0,0,0,0],a=this.horiz,d=this.width=Math.round(K(D(c.width,b.plotWidth-f[3]+f[1]),b.plotWidth)),n=this.height=Math.round(K(D(c.height,b.plotHeight-f[0]+f[2]),b.plotHeight)),k=this.top=Math.round(K(D(c.top,b.plotTop+f[0]),b.plotHeight,b.plotTop));c=this.left=Math.round(K(D(c.left,b.plotLeft+f[3]),b.plotWidth,\nb.plotLeft));this.bottom=b.chartHeight-n-k;this.right=b.chartWidth-d-c;this.len=Math.max(a?d:n,0);this.pos=a?c:k}getExtremes(){const b=this.logarithmic;return{min:b?g(b.lin2log(this.min)):this.min,max:b?g(b.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(b){var c=this.logarithmic;const f=c?c.lin2log(this.min):this.min;c=c?c.lin2log(this.max):this.max;null===b||-Infinity===b?b=f:Infinity===b?b=c:f>b?b=f:c<b&&(b=c);return this.translate(b,\n0,1,0,1)}autoLabelAlign(b){const c=(D(b,0)-90*this.side+720)%360;b={align:\"center\"};k(this,\"autoLabelAlign\",b,function(b){15<c&&165>c?b.align=\"right\":195<c&&345>c&&(b.align=\"left\")});return b.align}tickSize(b){const c=this.options,f=D(c[\"tick\"===b?\"tickWidth\":\"minorTickWidth\"],\"tick\"===b&&this.isXAxis&&!this.categories?1:0);let a=c[\"tick\"===b?\"tickLength\":\"minorTickLength\"],d;f&&a&&(\"inside\"===c[b+\"Position\"]&&(a=-a),d=[a,f]);b={tickSize:d};k(this,\"afterTickSize\",b);return b.tickSize}labelMetrics(){const b=\nthis.chart.renderer;var c=this.ticks;c=c[Object.keys(c)[0]]||{};return this.chart.renderer.fontMetrics(c.label||c.movedLabel||b.box)}unsquish(){const c=this.options.labels;var f=this.horiz;const a=this.tickInterval,d=this.len/(((this.categories?1:0)+this.max-this.min)/a),n=c.rotation,k=.75*this.labelMetrics().h,e=Math.max(this.max-this.min,0),q=function(b){let c=b/(d||1);c=1<c?Math.ceil(c):1;c*a>e&&Infinity!==b&&Infinity!==d&&e&&(c=Math.ceil(e/a));return g(c*a)};let h=a,r,l=Number.MAX_VALUE,m;if(f){if(c.staggerLines||\n(b(n)?m=[n]:d<c.autoRotationLimit&&(m=c.autoRotation)),m){let b;for(const c of m)if(c===n||c&&-90<=c&&90>=c)f=q(Math.abs(k/Math.sin(p*c))),b=f+Math.abs(c/360),b<l&&(l=b,r=c,h=f)}}else h=q(k);this.autoRotation=m;this.labelRotation=D(r,b(n)?n:0);return c.step?a:h}getSlotWidth(c){const f=this.chart,a=this.horiz,d=this.options.labels,n=Math.max(this.tickPositions.length-(this.categories?0:1),1),k=f.margin[3];if(c&&b(c.slotWidth))return c.slotWidth;if(a&&2>d.step)return d.rotation?0:(this.staggerLines||\n1)*this.len/n;if(!a){c=d.style.width;if(void 0!==c)return parseInt(String(c),10);if(k)return k-f.spacing[3]}return.33*f.chartWidth}renderUnsquish(){const b=this.chart,c=b.renderer,a=this.tickPositions,d=this.ticks,n=this.options.labels,k=n.style,e=this.horiz,q=this.getSlotWidth();var g=Math.max(1,Math.round(q-2*n.padding));const h={},r=this.labelMetrics(),m=k.textOverflow;let l,p,D=0;f(n.rotation)||(h.rotation=n.rotation||0);a.forEach(function(b){b=d[b];b.movedLabel&&b.replaceMovedLabel();b&&b.label&&\nb.label.textPxLength>D&&(D=b.label.textPxLength)});this.maxLabelLength=D;if(this.autoRotation)D>g&&D>r.h?h.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(l=g,!m))for(p=\"clip\",g=a.length;!e&&g--;){var t=a[g];if(t=d[t].label)t.styles&&\"ellipsis\"===t.styles.textOverflow?t.css({textOverflow:\"clip\"}):t.textPxLength>q&&t.css({width:q+\"px\"}),t.getBBox().height>this.len/a.length-(r.h-r.f)&&(t.specificTextOverflow=\"ellipsis\")}h.rotation&&(l=D>.5*b.chartHeight?.33*b.chartHeight:D,m||(p=\"ellipsis\"));\nif(this.labelAlign=n.align||this.autoLabelAlign(this.labelRotation))h.align=this.labelAlign;a.forEach(function(b){const c=(b=d[b])&&b.label,f=k.width,a={};c&&(c.attr(h),b.shortenLabel?b.shortenLabel():l&&!f&&\"nowrap\"!==k.whiteSpace&&(l<c.textPxLength||\"SPAN\"===c.element.tagName)?(a.width=l+\"px\",m||(a.textOverflow=c.specificTextOverflow||p),c.css(a)):c.styles&&c.styles.width&&!a.width&&!f&&c.css({width:null}),delete c.specificTextOverflow,b.rotation=h.rotation)},this);this.tickRotCorr=c.rotCorr(r.b,\nthis.labelRotation||0,0!==this.side)}hasData(){return this.series.some(function(b){return b.hasData()})||this.options.showEmpty&&e(this.min)&&e(this.max)}addTitle(b){const f=this.chart.renderer,a=this.horiz,d=this.opposite,n=this.options.title,k=this.chart.styledMode;let e;this.axisTitle||((e=n.textAlign)||(e=(a?{low:\"left\",middle:\"center\",high:\"right\"}:{low:d?\"right\":\"left\",middle:\"center\",high:d?\"left\":\"right\"})[n.align]),this.axisTitle=f.text(n.text||\"\",0,0,n.useHTML).attr({zIndex:7,rotation:n.rotation,\nalign:e}).addClass(\"highcharts-axis-title\"),k||this.axisTitle.css(c(n.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0);k||n.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"});this.axisTitle[b?\"show\":\"hide\"](b)}generateTick(b){const c=this.ticks;c[b]?c[b].addLabel():c[b]=new H(this,b)}getOffset(){const c=this,{chart:f,horiz:a,options:d,side:n,ticks:q,tickPositions:g,coll:h,axisParent:r}=c,m=f.renderer,l=f.inverted&&!c.isZAxis?[1,0,3,2][n]:n;var p=c.hasData();const t=\nd.title;var w=d.labels;const K=b(d.crossing);var G=f.axisOffset;const R=f.clipOffset,Q=[-1,1,1,-1][n],v=d.className;let ja,u=0,x;var E=0;let F=0;c.showAxis=ja=p||d.showEmpty;c.staggerLines=c.horiz&&w.staggerLines||void 0;if(!c.axisGroup){const b=(b,c,f)=>m.g(b).attr({zIndex:f}).addClass(`highcharts-${h.toLowerCase()}${c} `+(this.isRadial?`highcharts-radial-axis${c} `:\"\")+(v||\"\")).add(r);c.gridGroup=b(\"grid\",\"-grid\",d.gridZIndex);c.axisGroup=b(\"axis\",\"\",d.zIndex);c.labelGroup=b(\"axis-labels\",\"-labels\",\nw.zIndex)}p||c.isLinked?(g.forEach(function(b){c.generateTick(b)}),c.renderUnsquish(),c.reserveSpaceDefault=0===n||2===n||{1:\"left\",3:\"right\"}[n]===c.labelAlign,D(w.reserveSpace,K?!1:null,\"center\"===c.labelAlign?!0:null,c.reserveSpaceDefault)&&g.forEach(function(b){F=Math.max(q[b].getLabelSize(),F)}),c.staggerLines&&(F*=c.staggerLines),c.labelOffset=F*(c.opposite?-1:1)):P(q,function(b,c){b.destroy();delete q[c]});t&&t.text&&!1!==t.enabled&&(c.addTitle(ja),ja&&!K&&!1!==t.reserveSpace&&(c.titleOffset=\nu=c.axisTitle.getBBox()[a?\"height\":\"width\"],x=t.offset,E=e(x)?0:D(t.margin,a?5:10)));c.renderLine();c.offset=Q*D(d.offset,G[n]?G[n]+(d.margin||0):0);c.tickRotCorr=c.tickRotCorr||{x:0,y:0};p=0===n?-c.labelMetrics().h:2===n?c.tickRotCorr.y:0;E=Math.abs(F)+E;F&&(E=E-p+Q*(a?D(w.y,c.tickRotCorr.y+Q*w.distance):D(w.x,Q*w.distance)));c.axisTitleMargin=D(x,E);c.getMaxLabelDimensions&&(c.maxLabelDimensions=c.getMaxLabelDimensions(q,g));\"colorAxis\"!==h&&(w=this.tickSize(\"tick\"),G[n]=Math.max(G[n],(c.axisTitleMargin||\n0)+u+Q*c.offset,E,g&&g.length&&w?w[0]+Q*c.offset:0),G=!c.axisLine||d.offset?0:2*Math.floor(c.axisLine.strokeWidth()/2),R[l]=Math.max(R[l],G));k(this,\"afterGetOffset\")}getLinePath(b){const c=this.chart,f=this.opposite;var a=this.offset;const d=this.horiz,n=this.left+(f?this.width:0)+a;a=c.chartHeight-this.bottom-(f?this.height:0)+a;f&&(b*=-1);return c.renderer.crispLine([[\"M\",d?this.left:n,d?a:this.top],[\"L\",d?c.chartWidth-this.right:n,d?a:c.chartHeight-this.bottom]],b)}renderLine(){this.axisLine||\n(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))}getTitlePosition(b){var c=this.horiz,f=this.left;const a=this.top;var d=this.len;const n=this.options.title,e=c?f:a,q=this.opposite,g=this.offset,h=n.x,r=n.y,l=this.chart.renderer.fontMetrics(b);b=b?Math.max(b.getBBox(!1,0).height-l.h-1,0):0;d={low:e+(c?0:d),middle:e+d/2,high:e+(c?d:\n0)}[n.align];f=(c?a+this.height:f)+(c?1:-1)*(q?-1:1)*(this.axisTitleMargin||0)+[-b,b,l.f,-b][this.side];c={x:c?d+h:f+(q?this.width:0)+g+h,y:c?f+r-(q?this.height:0)+g:d+r};k(this,\"afterGetTitlePosition\",{titlePosition:c});return c}renderMinorTick(b,c){const f=this.minorTicks;f[b]||(f[b]=new H(this,b,\"minor\"));c&&f[b].isNew&&f[b].render(null,!0);f[b].render(null,!1,1)}renderTick(b,c,f){const a=this.ticks;if(!this.isLinked||b>=this.min&&b<=this.max||this.grid&&this.grid.isColumn)a[b]||(a[b]=new H(this,\nb)),f&&a[b].isNew&&a[b].render(c,!0,-1),a[b].render(c)}render(){const c=this,f=c.chart,a=c.logarithmic,d=c.options,n=c.isLinked,e=c.tickPositions,q=c.axisTitle,g=c.ticks,h=c.minorTicks,r=c.alternateBands,l=d.stackLabels,m=d.alternateGridColor;var p=d.crossing;const D=c.tickmarkOffset,t=c.axisLine,w=c.showAxis,K=u(f.renderer.globalAnimation);let Q,G;c.labelEdge.length=0;c.overlap=!1;[g,h,r].forEach(function(b){P(b,function(b){b.isActive=!1})});if(b(p)){const b=this.isXAxis?f.yAxis[0]:f.xAxis[0],a=\n[1,-1,-1,1][this.side];b&&(p=b.toPixels(p,!0),c.horiz&&(p=b.len-p),c.offset=a*p)}if(c.hasData()||n){const n=c.chart.hasRendered&&c.old&&b(c.old.min);c.minorTickInterval&&!c.categories&&c.getMinorTickPositions().forEach(function(b){c.renderMinorTick(b,n)});e.length&&(e.forEach(function(b,f){c.renderTick(b,f,n)}),D&&(0===c.min||c.single)&&(g[-1]||(g[-1]=new H(c,-1,null,!0)),g[-1].render(-1)));m&&e.forEach(function(b,d){G=\"undefined\"!==typeof e[d+1]?e[d+1]+D:c.max-D;0===d%2&&b<c.max&&G<=c.max+(f.polar?\n-D:D)&&(r[b]||(r[b]=new z.PlotLineOrBand(c)),Q=b+D,r[b].options={from:a?a.lin2log(Q):Q,to:a?a.lin2log(G):G,color:m,className:\"highcharts-alternate-grid\"},r[b].render(),r[b].isActive=!0)});c._addedPlotLB||(c._addedPlotLB=!0,(d.plotLines||[]).concat(d.plotBands||[]).forEach(function(b){c.addPlotBandOrLine(b)}))}[g,h,r].forEach(function(b){const c=[],a=K.duration;P(b,function(b,f){b.isActive||(b.render(f,!1,0),b.isActive=!1,c.push(f))});Z(function(){let f=c.length;for(;f--;)b[c[f]]&&!b[c[f]].isActive&&\n(b[c[f]].destroy(),delete b[c[f]])},b!==r&&f.hasRendered&&a?a:0)});t&&(t[t.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(t.strokeWidth())}),t.isPlaced=!0,t[w?\"show\":\"hide\"](w));q&&w&&(q[q.isNew?\"attr\":\"animate\"](c.getTitlePosition(q)),q.isNew=!1);l&&l.enabled&&c.stacking&&c.stacking.renderStackTotals();c.old={len:c.len,max:c.max,min:c.min,transA:c.transA,userMax:c.userMax,userMin:c.userMin};c.isDirty=!1;k(this,\"afterRender\")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(b){b.render()}));\nthis.series.forEach(function(b){b.isDirty=!0})}getKeepProps(){return this.keepProps||Y.keepProps}destroy(b){const c=this,f=c.plotLinesAndBands,a=this.eventOptions;k(this,\"destroy\",{keepEvents:b});b||X(c);[c.ticks,c.minorTicks,c.alternateBands].forEach(function(b){w(b)});if(f)for(b=f.length;b--;)f[b].destroy();\"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function(b){c[b]&&(c[b]=c[b].destroy())});for(const b in c.plotLinesAndBandsGroups)c.plotLinesAndBandsGroups[b]=\nc.plotLinesAndBandsGroups[b].destroy();P(c,function(b,f){-1===c.getKeepProps().indexOf(f)&&delete c[f]});this.eventOptions=a}drawCrosshair(b,c){const f=this.crosshair;var a=D(f&&f.snap,!0);const n=this.chart;let q,g=this.cross;k(this,\"drawCrosshair\",{e:b,point:c});b||(b=this.cross&&this.cross.e);if(f&&!1!==(e(c)||!a)){a?e(c)&&(q=D(\"colorAxis\"!==this.coll?c.crosshairPos:null,this.isXAxis?c.plotX:this.len-c.plotY)):q=b&&(this.horiz?b.chartX-this.pos:this.len-b.chartY+this.pos);if(e(q)){var h={value:c&&\n(this.isXAxis?c.x:D(c.stackY,c.y)),translatedValue:q};n.polar&&d(h,{isCrosshair:!0,chartX:b&&b.chartX,chartY:b&&b.chartY,point:c});h=this.getPlotLinePath(h)||null}if(!e(h)){this.hideCrosshair();return}a=this.categories&&!this.isRadial;g||(this.cross=g=n.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(a?\"category \":\"thin \")+(f.className||\"\")).attr({zIndex:D(f.zIndex,2)}).add(),n.styledMode||(g.attr({stroke:f.color||(a?I.parse(\"#ccd3ff\").setOpacity(.25).get():\"#cccccc\"),\"stroke-width\":D(f.width,\n1)}).css({\"pointer-events\":\"none\"}),f.dashStyle&&g.attr({dashstyle:f.dashStyle})));g.show().attr({d:h});a&&!f.width&&g.attr({\"stroke-width\":this.transA});this.cross.e=b}else this.hideCrosshair();k(this,\"afterDrawCrosshair\",{e:b,point:c})}hideCrosshair(){this.cross&&this.cross.hide();k(this,\"afterHideCrosshair\")}hasVerticalPanning(){const b=this.chart.options.chart.panning;return!!(b&&b.enabled&&/y/.test(b.type))}update(b,f){const a=this.chart;b=c(this.userOptions,b);this.destroy(!0);this.init(a,b);\na.isDirtyBox=!0;D(f,!0)&&a.redraw()}remove(b){const c=this.chart,f=this.coll,a=this.series;let d=a.length;for(;d--;)a[d]&&a[d].remove(!1);x(c.axes,this);x(c[f]||[],this);c.orderItems(f);this.destroy();c.isDirtyBox=!0;D(b,!0)&&c.redraw()}setTitle(b,c){this.update({title:b},c)}setCategories(b,c){this.update({categories:b},c)}}Y.defaultOptions=y.defaultXAxisOptions;Y.keepProps=\"coll extKey hcEvents names series userMax userMin\".split(\" \");\"\";return Y});M(a,\"Core/Axis/DateTimeAxis.js\",[a[\"Core/Utilities.js\"]],\nfunction(a){const {addEvent:x,getMagnitude:I,normalizeTickInterval:L,timeUnits:C}=a;var z;(function(y){function B(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function u(a){\"datetime\"!==a.userOptions.type?this.dateTime=void 0:this.dateTime||(this.dateTime=new l(this))}const v=[];y.compose=function(l){a.pushUnique(v,l)&&(l.keepProps.push(\"dateTime\"),l.prototype.getTimeTicks=B,x(l,\"init\",u));return l};class l{constructor(a){this.axis=a}normalizeTimeTickInterval(a,l){const m=\nl||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]];l=m[m.length-1];let h=C[l[0]],g=l[1],e;for(e=0;e<m.length&&!(l=m[e],h=C[l[0]],g=l[1],m[e+1]&&a<=(h*g[g.length-1]+C[m[e+1][0]])/2);e++);h===C.year&&a<5*h&&(g=[1,2,5]);a=L(a/h,g,\"year\"===l[0]?Math.max(I(a/h),1):1);return{unitRange:h,count:a,unitName:l[0]}}getXDateFormat(a,l){const {axis:m}=this,h=m.chart.time;\nreturn m.closestPointRange?h.getDateFormat(m.closestPointRange,a,m.options.startOfWeek,l)||h.resolveDTLFormat(l.year).main:h.resolveDTLFormat(l.day).main}}y.Additions=l})(z||(z={}));return z});M(a,\"Core/Axis/LogarithmicAxis.js\",[a[\"Core/Utilities.js\"]],function(a){const {addEvent:x,normalizeTickInterval:I,pick:L}=a;var C;(function(y){function H(a){let l=this.logarithmic;\"logarithmic\"!==a.userOptions.type?this.logarithmic=void 0:l||(this.logarithmic=new v(this))}function B(){const a=this.logarithmic;\na&&(this.lin2val=function(l){return a.lin2log(l)},this.val2lin=function(l){return a.log2lin(l)})}const u=[];y.compose=function(l){a.pushUnique(u,l)&&(l.keepProps.push(\"logarithmic\"),x(l,\"init\",H),x(l,\"afterInit\",B));return l};class v{constructor(a){this.axis=a}getLogTickPositions(a,p,t,m){const h=this.axis;var g=h.len,e=h.options;let l=[];m||(this.minorAutoInterval=void 0);if(.5<=a)a=Math.round(a),l=h.getLinearTickPositions(a,p,t);else if(.08<=a){e=Math.floor(p);let h,w,d,k,r;for(g=.3<a?[1,2,4]:.15<\na?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];e<t+1&&!r;e++)for(w=g.length,h=0;h<w&&!r;h++)d=this.log2lin(this.lin2log(e)*g[h]),d>p&&(!m||k<=t)&&\"undefined\"!==typeof k&&l.push(k),k>t&&(r=!0),k=d}else p=this.lin2log(p),t=this.lin2log(t),a=m?h.getMinorTickInterval():e.tickInterval,a=L(\"auto\"===a?null:a,this.minorAutoInterval,e.tickPixelInterval/(m?5:1)*(t-p)/((m?g/h.tickPositions.length:g)||1)),a=I(a),l=h.getLinearTickPositions(a,p,t).map(this.log2lin),m||(this.minorAutoInterval=a/5);m||(h.tickInterval=a);return l}lin2log(a){return Math.pow(10,\na)}log2lin(a){return Math.log(a)/Math.LN10}}y.Additions=v})(C||(C={}));return C});M(a,\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\",[a[\"Core/Utilities.js\"]],function(a){const {erase:x,extend:I,isNumber:L}=a;var C;(function(y){function H(a){return this.addPlotBandOrLine(a,\"plotBands\")}function B(a,e){const g=this.userOptions;let l=new h(this,a);this.visible&&(l=l.render());if(l){this._addedPlotLB||(this._addedPlotLB=!0,(g.plotLines||[]).concat(g.plotBands||[]).forEach(a=>{this.addPlotBandOrLine(a)}));\nif(e){const h=g[e]||[];h.push(a);g[e]=h}this.plotLinesAndBands.push(l)}return l}function u(a){return this.addPlotBandOrLine(a,\"plotLines\")}function v(a,e,h=this.options){const g=this.getPlotLinePath({value:e,force:!0,acrossPanes:h.acrossPanes}),l=[],d=this.horiz;e=!L(this.min)||!L(this.max)||a<this.min&&e<this.min||a>this.max&&e>this.max;a=this.getPlotLinePath({value:a,force:!0,acrossPanes:h.acrossPanes});h=1;let k;if(a&&g)for(e&&(k=a.toString()===g.toString(),h=0),e=0;e<a.length;e+=2){const r=a[e],\nq=a[e+1],m=g[e],b=g[e+1];\"M\"!==r[0]&&\"L\"!==r[0]||\"M\"!==q[0]&&\"L\"!==q[0]||\"M\"!==m[0]&&\"L\"!==m[0]||\"M\"!==b[0]&&\"L\"!==b[0]||(d&&m[1]===r[1]?(m[1]+=h,b[1]+=h):d||m[2]!==r[2]||(m[2]+=h,b[2]+=h),l.push([\"M\",r[1],r[2]],[\"L\",q[1],q[2]],[\"L\",b[1],b[2]],[\"L\",m[1],m[2]],[\"Z\"]));l.isFlat=k}return l}function l(a){this.removePlotBandOrLine(a)}function p(a){const e=this.plotLinesAndBands,g=this.options,h=this.userOptions;if(e){let l=e.length;for(;l--;)e[l].id===a&&e[l].destroy();[g.plotLines||[],h.plotLines||[],\ng.plotBands||[],h.plotBands||[]].forEach(function(d){for(l=d.length;l--;)(d[l]||{}).id===a&&x(d,d[l])})}}function t(a){this.removePlotBandOrLine(a)}const m=[];let h;y.compose=function(g,e){h||(h=g);a.pushUnique(m,e)&&I(e.prototype,{addPlotBand:H,addPlotLine:u,addPlotBandOrLine:B,getPlotBandPath:v,removePlotBand:l,removePlotLine:t,removePlotBandOrLine:p});return e}})(C||(C={}));return C});M(a,\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\",[a[\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\"],a[\"Core/Utilities.js\"]],\nfunction(a,y){const {arrayMax:x,arrayMin:L,defined:C,destroyObjectProperties:z,erase:H,fireEvent:B,merge:u,objectEach:v,pick:l}=y;class p{static compose(l){return a.compose(p,l)}constructor(a,l){this.axis=a;l&&(this.options=l,this.id=l.id)}render(){B(this,\"render\");const a=this,m=a.axis,h=m.horiz;var g=m.logarithmic;const e=a.options,p=e.color,x=l(e.zIndex,0),F=e.events,d={},k=m.chart.renderer;let r=e.label,q=a.label,G=e.to,b=e.from,f=e.value,c=a.svgElem;var n=[];const P=C(b)&&C(G);n=C(f);const D=\n!c,K={\"class\":\"highcharts-plot-\"+(P?\"band \":\"line \")+(e.className||\"\")};let X=P?\"bands\":\"lines\";g&&(b=g.log2lin(b),G=g.log2lin(G),f=g.log2lin(f));m.chart.styledMode||(n?(K.stroke=p||\"#999999\",K[\"stroke-width\"]=l(e.width,1),e.dashStyle&&(K.dashstyle=e.dashStyle)):P&&(K.fill=p||\"#e6e9ff\",e.borderWidth&&(K.stroke=e.borderColor,K[\"stroke-width\"]=e.borderWidth)));d.zIndex=x;X+=\"-\"+x;(g=m.plotLinesAndBandsGroups[X])||(m.plotLinesAndBandsGroups[X]=g=k.g(\"plot-\"+X).attr(d).add());D&&(a.svgElem=c=k.path().attr(K).add(g));\nif(n)n=m.getPlotLinePath({value:f,lineWidth:c.strokeWidth(),acrossPanes:e.acrossPanes});else if(P)n=m.getPlotBandPath(b,G,e);else return;!a.eventsAdded&&F&&(v(F,function(b,f){c.on(f,function(b){F[f].apply(a,[b])})}),a.eventsAdded=!0);(D||!c.d)&&n&&n.length?c.attr({d:n}):c&&(n?(c.show(),c.animate({d:n})):c.d&&(c.hide(),q&&(a.label=q=q.destroy())));r&&(C(r.text)||C(r.formatter))&&n&&n.length&&0<m.width&&0<m.height&&!n.isFlat?(r=u({align:h&&P&&\"center\",x:h?!P&&4:10,verticalAlign:!h&&P&&\"middle\",y:h?\nP?16:10:P?6:-4,rotation:h&&!P&&90},r),this.renderLabel(r,n,P,x)):q&&q.hide();return a}renderLabel(a,l,h,g){const e=this.axis;var m=e.chart.renderer;let p=this.label;p||(this.label=p=m.text(this.getLabelText(a),0,0,a.useHTML).attr({align:a.textAlign||a.align,rotation:a.rotation,\"class\":\"highcharts-plot-\"+(h?\"band\":\"line\")+\"-label \"+(a.className||\"\"),zIndex:g}).add(),e.chart.styledMode||p.css(u({fontSize:\"0.8em\",textOverflow:\"ellipsis\"},a.style)));g=l.xBounds||[l[0][1],l[1][1],h?l[2][1]:l[0][1]];l=\nl.yBounds||[l[0][2],l[1][2],h?l[2][2]:l[0][2]];h=L(g);m=L(l);p.align(a,!1,{x:h,y:m,width:x(g)-h,height:x(l)-m});p.alignValue&&\"left\"!==p.alignValue||(a=a.clip?e.width:e.chart.chartWidth,p.css({width:(90===p.rotation?e.height-(p.alignAttr.y-e.top):a-(p.alignAttr.x-e.left))+\"px\"}));p.show(!0)}getLabelText(a){return C(a.formatter)?a.formatter.call(this):a.text}destroy(){H(this.axis.plotLinesAndBands,this);delete this.axis;z(this)}}\"\";\"\";return p});M(a,\"Core/Tooltip.js\",[a[\"Core/Templating.js\"],a[\"Core/Globals.js\"],\na[\"Core/Renderer/RendererUtilities.js\"],a[\"Core/Renderer/RendererRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C){const {format:x}=a,{doc:H,isSafari:B}=y,{distribute:u}=I,{addEvent:v,clamp:l,css:p,discardElement:t,extend:m,fireEvent:h,isArray:g,isNumber:e,isString:w,merge:E,pick:F,splat:d,syncTimeout:k}=C;class r{constructor(a,d){this.allowShared=!0;this.container=void 0;this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=\na;this.init(a,d)}bodyFormatter(a){return a.map(function(a){const b=a.series.tooltipOptions;return(b[(a.point.formatPrefix||\"point\")+\"Formatter\"]||a.point.tooltipFormatter).call(a.point,b[(a.point.formatPrefix||\"point\")+\"Format\"]||\"\")})}cleanSplit(a){this.chart.series.forEach(function(d){const b=d&&d.tt;b&&(!b.isActive||a?d.tt=b.destroy():b.isActive=!1)})}defaultFormatter(a){const k=this.points||d(this);let b;b=[a.tooltipFooterHeaderFormatter(k[0])];b=b.concat(a.bodyFormatter(k));b.push(a.tooltipFooterHeaderFormatter(k[0],\n!0));return b}destroy(){this.label&&(this.label=this.label.destroy());this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy()));this.renderer&&(this.renderer=this.renderer.destroy(),t(this.container));C.clearTimeout(this.hideTimer);C.clearTimeout(this.tooltipTimeout)}getAnchor(a,k){var b=this.chart;const f=b.pointer,c=b.inverted,n=b.plotTop;b=b.plotLeft;a=d(a);a[0].series&&a[0].series.yAxis&&!a[0].series.yAxis.options.reversedStacks&&(a=a.slice().reverse());if(this.followPointer&&k)\"undefined\"===\ntypeof k.chartX&&(k=f.normalize(k)),a=[k.chartX-b,k.chartY-n];else if(a[0].tooltipPos)a=a[0].tooltipPos;else{let f=0,d=0;a.forEach(function(b){if(b=b.pos(!0))f+=b[0],d+=b[1]});f/=a.length;d/=a.length;this.shared&&1<a.length&&k&&(c?f=k.chartX:d=k.chartY);a=[f-b,d-n]}return a.map(Math.round)}getClassName(a,d,b){const f=a.series,c=f.options;return[this.options.className,\"highcharts-label\",b&&\"highcharts-tooltip-header\",d?\"highcharts-tooltip-box\":\"highcharts-tooltip\",!b&&\"highcharts-color-\"+F(a.colorIndex,\nf.colorIndex),c&&c.className].filter(w).join(\" \")}getLabel(){const a=this,d=this.chart.styledMode,b=this.options,f=this.split&&this.allowShared,c=b.style.pointerEvents||(this.shouldStickOnContact()?\"auto\":\"none\");let n,k=this.chart.renderer;if(this.label){var e=!this.label.hasClass(\"highcharts-label\");(!f&&e||f&&!e)&&this.destroy()}if(!this.label){if(this.outside){e=this.chart.options.chart.style;const b=L.getRendererType();this.container=n=y.doc.createElement(\"div\");n.className=\"highcharts-tooltip-container\";\np(n,{position:\"absolute\",top:\"1px\",pointerEvents:c,zIndex:Math.max(this.options.style.zIndex||0,(e&&e.zIndex||0)+3)});y.doc.body.appendChild(n);this.renderer=k=new b(n,0,0,e,void 0,void 0,k.styledMode)}f?this.label=k.g(\"tooltip\"):(this.label=k.label(\"\",0,0,b.shape,void 0,void 0,b.useHTML,void 0,\"tooltip\").attr({padding:b.padding,r:b.borderRadius}),d||this.label.attr({fill:b.backgroundColor,\"stroke-width\":b.borderWidth||0}).css(b.style).css({pointerEvents:c}));if(a.outside){const b=this.label,{xSetter:c,\nySetter:f}=b;b.xSetter=function(f){c.call(b,a.distance);n.style.left=f+\"px\"};b.ySetter=function(c){f.call(b,a.distance);n.style.top=c+\"px\"}}this.label.attr({zIndex:8}).shadow(b.shadow).add()}return this.label}getPlayingField(){const {body:a,documentElement:d}=H,{chart:b,distance:f,outside:c}=this;return{width:c?Math.max(a.scrollWidth,d.scrollWidth,a.offsetWidth,d.offsetWidth,d.clientWidth)-2*f:b.chartWidth,height:c?Math.max(a.scrollHeight,d.scrollHeight,a.offsetHeight,d.offsetHeight,d.clientHeight):\nb.chartHeight}}getPosition(a,d,b){const f=this.chart,c=this.distance,n={},k=f.inverted&&b.h||0,e=this.outside;var q=this.getPlayingField();const g=q.width,h=q.height,r=f.pointer.getChartPosition();q=n=>{const k=\"x\"===n;return[n,k?g:h,k?a:d].concat(e?[k?a*r.scaleX:d*r.scaleY,k?r.left-c+(b.plotX+f.plotLeft)*r.scaleX:r.top-c+(b.plotY+f.plotTop)*r.scaleY,0,k?g:h]:[k?a:d,k?b.plotX+f.plotLeft:b.plotY+f.plotTop,k?f.plotLeft:f.plotTop,k?f.plotLeft+f.plotWidth:f.plotTop+f.plotHeight])};let l=q(\"y\"),m=q(\"x\"),\np;q=!!b.negative;!f.polar&&f.hoverSeries&&f.hoverSeries.yAxis&&f.hoverSeries.yAxis.reversed&&(q=!q);const t=!this.followPointer&&F(b.ttBelow,!f.inverted===q),w=function(b,a,f,d,q,g,h){const l=e?\"y\"===b?c*r.scaleY:c*r.scaleX:c,m=(f-d)/2,p=d<q-c,J=q+c+d<a,D=q-l-f+m;q=q+l-m;if(t&&J)n[b]=q;else if(!t&&p)n[b]=D;else if(p)n[b]=Math.min(h-d,0>D-k?D:D-k);else if(J)n[b]=Math.max(g,q+k+f>a?q:q+k);else return!1},G=function(b,a,f,d,k){let e;k<c||k>a-c?e=!1:n[b]=k<f/2?1:k>a-d/2?a-d-2:k-f/2;return e},v=function(b){const c=\nl;l=m;m=c;p=b},J=function(){!1!==w.apply(0,l)?!1!==G.apply(0,m)||p||(v(!0),J()):p?n.x=n.y=0:(v(!0),J())};(f.inverted||1<this.len)&&v();J();return n}hide(a){const d=this;C.clearTimeout(this.hideTimer);a=F(a,this.options.hideDelay);this.isHidden||(this.hideTimer=k(function(){d.getLabel().fadeOut(a?void 0:a);d.isHidden=!0},a))}init(a,d){this.chart=a;this.options=d;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=d.split&&!a.inverted&&!a.polar;this.shared=d.shared||this.split;this.outside=\nF(d.outside,!(!a.scrollablePixelsX&&!a.scrollablePixelsY))}shouldStickOnContact(a){return!(this.followPointer||!this.options.stickOnContact||a&&!this.chart.pointer.inClass(a.target,\"highcharts-tooltip\"))}move(a,d,b,f){const c=this,n=c.now,k=!1!==c.options.animation&&!c.isHidden&&(1<Math.abs(a-n.x)||1<Math.abs(d-n.y)),e=c.followPointer||1<c.len;m(n,{x:k?(2*n.x+a)/3:a,y:k?(n.y+d)/2:d,anchorX:e?void 0:k?(2*n.anchorX+b)/3:b,anchorY:e?void 0:k?(n.anchorY+f)/2:f});c.getLabel().attr(n);c.drawTracker();k&&\n(C.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){c&&c.move(a,d,b,f)},32))}refresh(a,k){const b=this.chart,f=this.options,c=b.pointer,n=d(a),e=n[0],q=[];var r=f.format,l=f.formatter||this.defaultFormatter;const m=this.shared,p=b.styledMode;let t={};if(f.enabled&&e.series){C.clearTimeout(this.hideTimer);this.allowShared=!(!g(a)&&a.series&&a.series.noSharedTooltip);this.followPointer=!this.split&&e.series.tooltipOptions.followPointer;a=this.getAnchor(a,k);var v=a[0],G=a[1];\nm&&this.allowShared?(c.applyInactiveState(n),n.forEach(function(b){b.setState(\"hover\");q.push(b.getLabelConfig())}),t=e.getLabelConfig(),t.points=q):t=e.getLabelConfig();this.len=q.length;r=w(r)?x(r,t,b):l.call(t,this);l=e.series;this.distance=F(l.tooltipOptions.distance,16);if(!1===r)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(r,n);else{let d=v,g=G;k&&c.isDirectTouch&&(d=k.chartX-b.plotLeft,g=k.chartY-b.plotTop);if(b.polar||!1===l.options.clip||n.some(b=>c.isDirectTouch||b.series.shouldShowTooltip(d,\ng)))k=this.getLabel(),f.style.width&&!p||k.css({width:(this.outside?this.getPlayingField():b.spacingBox).width+\"px\"}),k.attr({text:r&&r.join?r.join(\"\"):r}),k.addClass(this.getClassName(e),!0),p||k.attr({stroke:f.borderColor||e.color||l.color||\"#666666\"}),this.updatePosition({plotX:v,plotY:G,negative:e.negative,ttBelow:e.ttBelow,h:a[2]||0});else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show();this.isHidden=!1}h(this,\"refresh\")}}renderSplit(a,d){function b(b,c,a,d,\nn=!0){a?(c=S?0:z,b=l(b-d/2,J.left,J.right-d-(f.outside?W:0))):(c-=da,b=n?b-d-x:b+x,b=l(b,n?b:J.left,J.right));return{x:b,y:c}}const f=this,{chart:c,chart:{chartWidth:n,chartHeight:k,plotHeight:e,plotLeft:g,plotTop:h,pointer:q,scrollablePixelsY:r=0,scrollablePixelsX:p,scrollingContainer:{scrollLeft:t,scrollTop:v}={scrollLeft:0,scrollTop:0},styledMode:G},distance:x,options:E,options:{positioner:y}}=f,J=f.outside&&\"number\"!==typeof p?H.documentElement.getBoundingClientRect():{left:t,right:t+n,top:v,\nbottom:v+k},N=f.getLabel(),O=this.renderer||c.renderer,S=!(!c.xAxis[0]||!c.xAxis[0].opposite),{left:W,top:ha}=q.getChartPosition();let da=h+v,C=0,z=e-r;w(a)&&(a=[!1,a]);a=a.slice(0,d.length+1).reduce(function(c,a,n){if(!1!==a&&\"\"!==a){n=d[n-1]||{isHeader:!0,plotX:d[0].plotX,plotY:e,series:{}};const D=n.isHeader;var k=D?f:n.series,q;{var r=n;a=a.toString();var m=k.tt;const {isHeader:b,series:c}=r;m||(m={padding:E.padding,r:E.borderRadius},G||(m.fill=E.backgroundColor,m[\"stroke-width\"]=null!==(q=E.borderWidth)&&\nvoid 0!==q?q:1),m=O.label(\"\",0,0,E[b?\"headerShape\":\"shape\"],void 0,void 0,E.useHTML).addClass(f.getClassName(r,!0,b)).attr(m).add(N));m.isActive=!0;m.attr({text:a});G||m.css(E.style).attr({stroke:E.borderColor||r.color||c.color||\"#333333\"});q=m}q=k.tt=q;r=q.getBBox();k=r.width+q.strokeWidth();D&&(C=r.height,z+=C,S&&(da-=C));{const {isHeader:b,plotX:c=0,plotY:f=0,series:d}=n;if(b){a=g+c;var p=h+e/2}else{const {xAxis:b,yAxis:n}=d;a=b.pos+l(c,-x,b.len+x);d.shouldShowTooltip(0,n.pos-h+f,{ignoreX:!0})&&\n(p=n.pos+f)}a=l(a,J.left-x,J.right+x);p={anchorX:a,anchorY:p}}const {anchorX:t,anchorY:Q}=p;\"number\"===typeof Q?(p=r.height+1,r=y?y.call(f,k,p,n):b(t,Q,D,k),c.push({align:y?0:void 0,anchorX:t,anchorY:Q,boxWidth:k,point:n,rank:F(r.rank,D?1:0),size:p,target:r.y,tt:q,x:r.x})):q.isActive=!1}return c},[]);!y&&a.some(b=>{var {outside:c}=f;c=(c?W:0)+b.anchorX;return c<J.left&&c+b.boxWidth<J.right?!0:c<W-J.left+b.boxWidth&&J.right-c>c})&&(a=a.map(c=>{const {x:a,y:f}=b(c.anchorX,c.anchorY,c.point.isHeader,\nc.boxWidth,!1);return m(c,{target:f,x:a})}));f.cleanSplit();u(a,z);var ca=W,L=W;a.forEach(function(b){const {x:c,boxWidth:a,isHeader:d}=b;d||(f.outside&&W+c<ca&&(ca=W+c),!d&&f.outside&&ca+a>L&&(L=W+c))});a.forEach(function(b){const {x:c,anchorX:a,anchorY:d,pos:n,point:{isHeader:k}}=b,e={visibility:\"undefined\"===typeof n?\"hidden\":\"inherit\",x:c,y:(n||0)+da,anchorX:a,anchorY:d};if(f.outside&&c<a){const b=W-ca;0<b&&(k||(e.x=c+b,e.anchorX=a+b),k&&(e.x=(L-ca)/2,e.anchorX=a+b))}b.tt.attr(e)});const {container:R,\noutside:Q,renderer:la}=f;if(Q&&R&&la){const {width:b,height:c,x:a,y:f}=N.getBBox();la.setSize(b+a,c+f,!1);R.style.left=ca+\"px\";R.style.top=ha+\"px\"}B&&N.attr({opacity:1===N.opacity?.999:1})}drawTracker(){if(this.shouldStickOnContact()){var a=this.chart,d=this.label,b=this.shared?a.hoverPoints:a.hoverPoint;if(d&&b){var f={x:0,y:0,width:0,height:0};b=this.getAnchor(b);var c=d.getBBox();b[0]+=a.plotLeft-d.translateX;b[1]+=a.plotTop-d.translateY;f.x=Math.min(0,b[0]);f.y=Math.min(0,b[1]);f.width=0>b[0]?\nMath.max(Math.abs(b[0]),c.width-b[0]):Math.max(Math.abs(b[0]),c.width);f.height=0>b[1]?Math.max(Math.abs(b[1]),c.height-Math.abs(b[1])):Math.max(Math.abs(b[1]),c.height);this.tracker?this.tracker.attr(f):(this.tracker=d.renderer.rect(f).addClass(\"highcharts-tracker\").add(d),a.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}else this.tracker&&(this.tracker=this.tracker.destroy())}styledModeFormat(a){return a.replace('style=\"font-size: 0.8em\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,\n'class=\"highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}\"')}tooltipFooterHeaderFormatter(a,d){const b=a.series,f=b.tooltipOptions;var c=b.xAxis;const n=c&&c.dateTime;c={isFooter:d,labelConfig:a};let k=f.xDateFormat,g=f[d?\"footerFormat\":\"headerFormat\"];h(this,\"headerFormatter\",c,function(c){n&&!k&&e(a.key)&&(k=n.getXDateFormat(a.key,f.dateTimeLabelFormats));n&&k&&(a.point&&a.point.tooltipDateKeys||[\"key\"]).forEach(function(b){g=g.replace(\"{point.\"+b+\"}\",\"{point.\"+\nb+\":\"+k+\"}\")});b.chart.styledMode&&(g=this.styledModeFormat(g));c.text=x(g,{point:a,series:b},this.chart)});return c.text}update(a){this.destroy();this.init(this.chart,E(!0,this.options,a))}updatePosition(a){const {chart:d,distance:b,options:f}=this;var c=d.pointer;const n=this.getLabel(),{left:k,top:e,scaleX:g,scaleY:h}=c.getChartPosition();c=(f.positioner||this.getPosition).call(this,n.width,n.height,a);let q=(a.plotX||0)+d.plotLeft;a=(a.plotY||0)+d.plotTop;let r;if(this.outside){f.positioner&&\n(c.x+=k-b,c.y+=e-b);r=(f.borderWidth||0)+2*b;this.renderer.setSize(n.width+r,n.height+r,!1);if(1!==g||1!==h)p(this.container,{transform:`scale(${g}, ${h})`}),q*=g,a*=h;q+=k-c.x;a+=e-c.y}this.move(Math.round(c.x),Math.round(c.y||0),q,a)}}(function(a){const d=[];a.compose=function(b){C.pushUnique(d,b)&&v(b,\"afterInit\",function(){const b=this.chart;b.options.tooltip&&(b.tooltip=new a(b,b.options.tooltip))})}})(r||(r={}));\"\";return r});M(a,\"Core/Series/Point.js\",[a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Animation/AnimationUtilities.js\"],\na[\"Core/Defaults.js\"],a[\"Core/Templating.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C){const {animObject:x}=y,{defaultOptions:H}=I,{format:B}=L,{addEvent:u,defined:v,erase:l,extend:p,fireEvent:t,getNestedProperty:m,isArray:h,isFunction:g,isNumber:e,isObject:w,merge:E,objectEach:F,pick:d,syncTimeout:k,removeEvent:r,uniqueKey:q}=C;class G{constructor(){this.category=void 0;this.destroyed=!1;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=\n!1;this.total=this.shapeArgs=this.series=void 0;this.visible=!0;this.x=void 0}animateBeforeDestroy(){const b=this,a={x:b.startXPos,opacity:0},c=b.getGraphicalProps();c.singular.forEach(function(c){b[c]=b[c].animate(\"dataLabel\"===c?{x:b[c].startXPos,y:b[c].startYPos,opacity:0}:a)});c.plural.forEach(function(c){b[c].forEach(function(c){c.element&&c.animate(p({x:b.startXPos},c.startYPos?{x:c.startXPos,y:c.startYPos}:{}))})})}applyOptions(b,a){const c=this.series,f=c.options.pointValKey||c.pointValKey;\nb=G.prototype.optionsToObject.call(this,b);p(this,b);this.options=this.options?p(this.options,b):b;b.group&&delete this.group;b.dataLabels&&delete this.dataLabels;f&&(this.y=G.prototype.getNestedProperty.call(this,f));this.formatPrefix=(this.isNull=this.isValid&&!this.isValid())?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof a&&c.xAxis&&c.xAxis.hasNames&&(this.x=c.xAxis.nameToX(this));\"undefined\"===typeof this.x&&c?this.x=\"undefined\"===typeof a?c.autoIncrement():\na:e(b.x)&&c.options.relativeXValue&&(this.x=c.autoIncrement(b.x));return this}destroy(){if(!this.destroyed){const a=this;var b=a.series;const c=b.chart;b=b.options.dataSorting;const d=c.hoverPoints,e=x(a.series.chart.renderer.globalAnimation),g=()=>{if(a.graphic||a.graphics||a.dataLabel||a.dataLabels)r(a),a.destroyElements();for(const b in a)delete a[b]};a.legendItem&&c.legend.destroyItem(a);d&&(a.setState(),l(d,a),d.length||(c.hoverPoints=null));if(a===c.hoverPoint)a.onMouseOut();b&&b.enabled?(this.animateBeforeDestroy(),\nk(g,e.duration)):g();c.pointCount--}this.destroyed=!0}destroyElements(b){const a=this;b=a.getGraphicalProps(b);b.singular.forEach(function(b){a[b]=a[b].destroy()});b.plural.forEach(function(b){a[b].forEach(function(b){b&&b.element&&b.destroy()});delete a[b]})}firePointEvent(b,a,c){const f=this,d=this.series.options;(d.point.events[b]||f.options&&f.options.events&&f.options.events[b])&&f.importEvents();\"click\"===b&&d.allowPointSelect&&(c=function(b){f.select&&f.select(null,b.ctrlKey||b.metaKey||b.shiftKey)});\nt(f,b,a,c)}getClassName(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")}getGraphicalProps(b){const a=this,c=[],d={singular:[],plural:[]};let k,e;b=b||{graphic:1,dataLabel:1};\nb.graphic&&c.push(\"graphic\");b.dataLabel&&c.push(\"dataLabel\",\"dataLabelPath\",\"dataLabelUpper\",\"connector\");for(e=c.length;e--;)k=c[e],a[k]&&d.singular.push(k);[\"graphic\",\"dataLabel\",\"connector\"].forEach(function(c){const f=c+\"s\";b[c]&&a[f]&&d.plural.push(f)});return d}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(b){if(b)return 0===\nb.indexOf(\"custom.\")?m(b,this.options):this[b]}getZone(){var b=this.series;const a=b.zones;b=b.zoneAxis||\"y\";let c,d=0;for(c=a[d];this[b]>=c.value;)c=a[++d];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=c&&c.color&&!this.options.color?c.color:this.nonZonedColor;return c}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}init(b,a,c){this.series=b;this.applyOptions(a,c);this.id=v(this.id)?this.id:q();this.resolveColor();\nb.chart.pointCount++;t(this,\"afterInit\");return this}isValid(){return null!==this.x&&e(this.y)}optionsToObject(b){var a=this.series;const c=a.options.keys,d=c||a.pointArrayMap||[\"y\"],k=d.length;let g={},q=0,r=0;if(e(b)||null===b)g[d[0]]=b;else if(h(b))for(!c&&b.length>k&&(a=typeof b[0],\"string\"===a?g.name=b[0]:\"number\"===a&&(g.x=b[0]),q++);r<k;)c&&\"undefined\"===typeof b[q]||(0<d[r].indexOf(\".\")?G.prototype.setNestedProperty(g,b[q],d[r]):g[d[r]]=b[q]),q++,r++;else\"object\"===typeof b&&(g=b,b.dataLabels&&\n(a._hasPointLabels=!0),b.marker&&(a._hasPointMarkers=!0));return g}pos(b,a=this.plotY){if(!this.destroyed){const {plotX:c,series:f}=this,{chart:d,xAxis:k,yAxis:g}=f;let h=0,q=0;if(e(c)&&e(a))return b&&(h=k?k.pos:d.plotLeft,q=g?g.pos:d.plotTop),d.inverted&&k&&g?[g.len-a+q,k.len-c+h]:[c+h,a+q]}}resolveColor(){const b=this.series;var a=b.chart.styledMode;let c;var k=b.chart.options.chart.colorCount;delete this.nonZonedColor;b.options.colorByPoint?(a||(k=b.options.colors||b.chart.options.colors,c=k[b.colorCounter],\nk=k.length),a=b.colorCounter,b.colorCounter++,b.colorCounter===k&&(b.colorCounter=0)):(a||(c=b.color),a=b.colorIndex);this.colorIndex=d(this.options.colorIndex,a);this.color=d(this.options.color,c)}setNestedProperty(b,a,c){c.split(\".\").reduce(function(b,c,f,d){b[c]=d.length-1===f?a:w(b[c],!0)?b[c]:{};return b[c]},b);return b}shouldDraw(){return!this.isNull}tooltipFormatter(b){const a=this.series,c=a.tooltipOptions,k=d(c.valueDecimals,\"\"),e=c.valuePrefix||\"\",g=c.valueSuffix||\"\";a.chart.styledMode&&\n(b=a.chart.tooltip.styledModeFormat(b));(a.pointArrayMap||[\"y\"]).forEach(function(c){c=\"{point.\"+c;if(e||g)b=b.replace(RegExp(c+\"}\",\"g\"),e+c+\"}\"+g);b=b.replace(RegExp(c+\"}\",\"g\"),c+\":,.\"+k+\"f}\")});return B(b,{point:this,series:this.series},a.chart)}update(b,a,c,k){function f(){n.applyOptions(b);var f=g&&n.hasMockGraphic;f=null===n.y?!f:f;g&&f&&(n.graphic=g.destroy(),delete n.hasMockGraphic);w(b,!0)&&(g&&g.element&&b&&b.marker&&\"undefined\"!==typeof b.marker.symbol&&(n.graphic=g.destroy()),b&&b.dataLabels&&\nn.dataLabel&&(n.dataLabel=n.dataLabel.destroy()),n.connector&&(n.connector=n.connector.destroy()));r=n.index;e.updateParallelArrays(n,r);q.data[r]=w(q.data[r],!0)||w(b,!0)?n.options:d(b,q.data[r]);e.isDirty=e.isDirtyData=!0;!e.fixedBox&&e.hasCartesianSeries&&(h.isDirtyBox=!0);\"point\"===q.legendType&&(h.isDirtyLegend=!0);a&&h.redraw(c)}const n=this,e=n.series,g=n.graphic,h=e.chart,q=e.options;let r;a=d(a,!0);!1===k?f():n.firePointEvent(\"update\",{options:b},f)}remove(b,a){this.series.removePoint(this.series.data.indexOf(this),\nb,a)}select(b,a){const c=this,f=c.series,k=f.chart;this.selectedStaging=b=d(b,!c.selected);c.firePointEvent(b?\"select\":\"unselect\",{accumulate:a},function(){c.selected=c.options.selected=b;f.options.data[f.data.indexOf(c)]=c.options;c.setState(b&&\"select\");a||k.getSelectedPoints().forEach(function(b){const a=b.series;b.selected&&b!==c&&(b.selected=b.options.selected=!1,a.options.data[a.data.indexOf(b)]=b.options,b.setState(k.hoverPoints&&a.options.inactiveOtherPoints?\"inactive\":\"\"),b.firePointEvent(\"unselect\"))})});\ndelete this.selectedStaging}onMouseOver(b){const a=this.series.chart,c=a.pointer;b=b?c.normalize(b):c.getChartCoordinatesFromPoint(this,a.inverted);c.runPointActions(b,this)}onMouseOut(){const b=this.series.chart;this.firePointEvent(\"mouseOut\");this.series.options.inactiveOtherPoints||(b.hoverPoints||[]).forEach(function(b){b.setState()});b.hoverPoints=b.hoverPoint=null}importEvents(){if(!this.hasImportedEvents){const b=this,a=E(b.series.options.point,b.options).events;b.events=a;F(a,function(c,a){g(c)&&\nu(b,a,c)});this.hasImportedEvents=!0}}setState(b,f){const c=this.series;var k=this.state,g=c.options.states[b||\"normal\"]||{},h=H.plotOptions[c.type].marker&&c.options.marker;const q=h&&!1===h.enabled,r=h&&h.states&&h.states[b||\"normal\"]||{},l=!1===r.enabled,m=this.marker||{},w=c.chart,v=h&&c.markerAttribs;let G=c.halo;var u;let x;var E=c.stateMarkerGraphic;b=b||\"\";if(!(b===this.state&&!f||this.selected&&\"select\"!==b||!1===g.enabled||b&&(l||q&&!1===r.enabled)||b&&m.states&&m.states[b]&&!1===m.states[b].enabled)){this.state=\nb;v&&(u=c.markerAttribs(this,b));if(this.graphic&&!this.hasMockGraphic){k&&this.graphic.removeClass(\"highcharts-point-\"+k);b&&this.graphic.addClass(\"highcharts-point-\"+b);if(!w.styledMode){k=c.pointAttribs(this,b);x=d(w.options.chart.animation,g.animation);const a=k.opacity;c.options.inactiveOtherPoints&&e(a)&&((this.dataLabels||[]).forEach(function(b){b&&!b.hasClass(\"highcharts-data-label-hidden\")&&b.animate({opacity:a},x)}),this.connector&&this.connector.animate({opacity:a},x));this.graphic.animate(k,\nx)}u&&this.graphic.animate(u,d(w.options.chart.animation,r.animation,h.animation));E&&E.hide()}else{if(b&&r){h=m.symbol||c.symbol;E&&E.currentSymbol!==h&&(E=E.destroy());if(u)if(E)E[f?\"animate\":\"attr\"]({x:u.x,y:u.y});else h&&(c.stateMarkerGraphic=E=w.renderer.symbol(h,u.x,u.y,u.width,u.height).add(c.markerGroup),E.currentSymbol=h);!w.styledMode&&E&&\"inactive\"!==this.state&&E.attr(c.pointAttribs(this,b))}E&&(E[b&&this.isInside?\"show\":\"hide\"](),E.element.point=this,E.addClass(this.getClassName(),!0))}g=\ng.halo;u=(E=this.graphic||E)&&E.visibility||\"inherit\";g&&g.size&&E&&\"hidden\"!==u&&!this.isCluster?(G||(c.halo=G=w.renderer.path().add(E.parentGroup)),G.show()[f?\"animate\":\"attr\"]({d:this.haloPath(g.size)}),G.attr({\"class\":\"highcharts-halo highcharts-color-\"+d(this.colorIndex,c.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:u,zIndex:-1}),G.point=this,w.styledMode||G.attr(p({fill:this.color||c.color,\"fill-opacity\":g.opacity},a.filterUserAttributes(g.attributes||{})))):G&&G.point&&G.point.haloPath&&\nG.animate({d:G.point.haloPath(0)},null,G.hide);t(this,\"afterSetState\",{state:b})}}haloPath(b){const a=this.pos();return a?this.series.chart.renderer.symbols.circle(Math.floor(a[0])-b,a[1]-b,2*b,2*b):[]}}\"\";return G});M(a,\"Core/Pointer.js\",[a[\"Core/Color/Color.js\"],a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {parse:x}=a,{charts:C,noop:z}=y,{addEvent:H,attr:B,css:u,defined:v,extend:l,find:p,fireEvent:t,isNumber:m,isObject:h,objectEach:g,offset:e,pick:w,splat:E}=I;class F{constructor(a,\nk){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.eventsToUnbind=[];this.chart=a;this.hasDragged=!1;this.options=k;this.init(a,k)}applyInactiveState(a){let d=[],e;(a||[]).forEach(function(a){e=a.series;d.push(e);e.linkedParent&&d.push(e.linkedParent);e.linkedSeries&&(d=d.concat(e.linkedSeries));e.navigatorSeries&&d.push(e.navigatorSeries)});this.chart.series.forEach(function(a){-1===d.indexOf(a)?a.setState(\"inactive\",!0):a.options.inactiveOtherPoints&&a.setAllPointsToState(\"inactive\")})}destroy(){const a=\nthis;this.eventsToUnbind.forEach(a=>a());this.eventsToUnbind=[];y.chartCount||(F.unbindDocumentMouseUp&&(F.unbindDocumentMouseUp=F.unbindDocumentMouseUp()),F.unbindDocumentTouchEnd&&(F.unbindDocumentTouchEnd=F.unbindDocumentTouchEnd()));clearInterval(a.tooltipTimeout);g(a,function(d,e){a[e]=void 0})}getSelectionMarkerAttrs(a,k){const d={args:{chartX:a,chartY:k},attrs:{},shapeType:\"rect\"};t(this,\"getSelectionMarkerAttrs\",d,d=>{const {chart:e,mouseDownX:b=0,mouseDownY:f=0,zoomHor:c,zoomVert:n}=this;\nd=d.attrs;let g;d.x=e.plotLeft;d.y=e.plotTop;d.width=c?1:e.plotWidth;d.height=n?1:e.plotHeight;c&&(g=a-b,d.width=Math.abs(g),d.x=(0<g?0:g)+b);n&&(g=k-f,d.height=Math.abs(g),d.y=(0<g?0:g)+f)});return d}drag(a){const d=this.chart,e=d.options.chart;var g=d.plotLeft;const l=d.plotTop,b=d.plotWidth,f=d.plotHeight,c=this.mouseDownX||0,n=this.mouseDownY||0,m=h(e.panning)?e.panning&&e.panning.enabled:e.panning,p=e.panKey&&a[e.panKey+\"Key\"];let t=a.chartX,w=a.chartY,v=this.selectionMarker;if(!v||!v.touch)if(t<\ng?t=g:t>g+b&&(t=g+b),w<l?w=l:w>l+f&&(w=l+f),this.hasDragged=Math.sqrt(Math.pow(c-t,2)+Math.pow(n-w,2)),10<this.hasDragged){g=d.isInsidePlot(c-g,n-l,{visiblePlotOnly:!0});const {shapeType:b,attrs:f}=this.getSelectionMarkerAttrs(t,w);!d.hasCartesianSeries&&!d.mapView||!this.zoomX&&!this.zoomY||!g||p||v||(this.selectionMarker=v=d.renderer[b](),v.attr({\"class\":\"highcharts-selection-marker\",zIndex:7}).add(),d.styledMode||v.attr({fill:e.selectionMarkerFill||x(\"#334eff\").setOpacity(.25).get()}));v&&v.attr(f);\ng&&!v&&m&&d.pan(a,e.panning)}}dragStart(a){const d=this.chart;d.mouseIsDown=a.type;d.cancelClick=!1;d.mouseDownX=this.mouseDownX=a.chartX;d.mouseDownY=this.mouseDownY=a.chartY}getSelectionBox(a){const d={args:{marker:a},result:{}};t(this,\"getSelectionBox\",d,d=>{d.result={x:a.attr?+a.attr(\"x\"):a.x,y:a.attr?+a.attr(\"y\"):a.y,width:a.attr?a.attr(\"width\"):a.width,height:a.attr?a.attr(\"height\"):a.height}});return d.result}drop(a){const d=this,e=this.chart,g=this.hasPinched;if(this.selectionMarker){const {x:k,\ny:b,width:f,height:c}=this.getSelectionBox(this.selectionMarker),n={originalEvent:a,xAxis:[],yAxis:[],x:k,y:b,width:f,height:c};let h=!!e.mapView;if(this.hasDragged||g)e.axes.forEach(function(e){if(e.zoomEnabled&&v(e.min)&&(g||d[{xAxis:\"zoomX\",yAxis:\"zoomY\"}[e.coll]])&&m(k)&&m(b)&&m(f)&&m(c)){var q=e.horiz;const d=\"touchend\"===a.type?e.minPixelPadding:0,g=e.toValue((q?k:b)+d);q=e.toValue((q?k+f:b+c)-d);n[e.coll].push({axis:e,min:Math.min(g,q),max:Math.max(g,q)});h=!0}}),h&&t(e,\"selection\",n,function(b){e.zoom(l(b,\ng?{animation:!1}:null))});m(e.index)&&(this.selectionMarker=this.selectionMarker.destroy());g&&this.scaleGroups()}e&&m(e.index)&&(u(e.container,{cursor:e._cursor}),e.cancelClick=10<this.hasDragged,e.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])}findNearestKDPoint(a,k,e){let d;a.forEach(function(a){var b=!(a.noSharedTooltip&&k)&&0>a.options.findNearestPointBy.indexOf(\"y\");a=a.searchPoint(e,b);if((b=h(a,!0)&&a.series)&&!(b=!h(d,!0))){{b=d.distX-a.distX;const f=d.dist-a.dist,c=(a.series.group&&\na.series.group.zIndex)-(d.series.group&&d.series.group.zIndex);b=0!==b&&k?b:0!==f?f:0!==c?c:d.series.index>a.series.index?-1:1}b=0<b}b&&(d=a)});return d}getChartCoordinatesFromPoint(a,k){var d=a.series;const e=d.xAxis;d=d.yAxis;const g=a.shapeArgs;if(e&&d){let b=w(a.clientX,a.plotX),f=a.plotY||0;a.isNode&&g&&m(g.x)&&m(g.y)&&(b=g.x,f=g.y);return k?{chartX:d.len+d.pos-f,chartY:e.len+e.pos-b}:{chartX:b+e.pos,chartY:f+d.pos}}if(g&&g.x&&g.y)return{chartX:g.x,chartY:g.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;\nvar {container:a}=this.chart;const k=e(a);this.chartPosition={left:k.left,top:k.top,scaleX:1,scaleY:1};const g=a.offsetWidth;a=a.offsetHeight;2<g&&2<a&&(this.chartPosition.scaleX=k.width/g,this.chartPosition.scaleY=k.height/a);return this.chartPosition}getCoordinates(a){const d={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(k){d[k.isXAxis?\"xAxis\":\"yAxis\"].push({axis:k,value:k.toValue(a[k.horiz?\"chartX\":\"chartY\"])})});return d}getHoverData(a,k,e,g,l,b){const f=[];g=!(!g||!a);const c=function(b){return b.visible&&\n!(!l&&b.directTouch)&&w(b.options.enableMouseTracking,!0)};let d,q={chartX:b?b.chartX:void 0,chartY:b?b.chartY:void 0,shared:l};t(this,\"beforeGetHoverData\",q);d=k&&!k.stickyTracking?[k]:e.filter(b=>b.stickyTracking&&(q.filter||c)(b));const r=g||!b?a:this.findNearestKDPoint(d,l,b);k=r&&r.series;r&&(l&&!k.noSharedTooltip?(d=e.filter(function(b){return q.filter?q.filter(b):c(b)&&!b.noSharedTooltip}),d.forEach(function(b){let c=p(b.points,function(b){return b.x===r.x&&!b.isNull});h(c)&&(b.boosted&&b.boost&&\n(c=b.boost.getPoint(c)),f.push(c))})):f.push(r));q={hoverPoint:r};t(this,\"afterGetHoverData\",q);return{hoverPoint:q.hoverPoint,hoverSeries:k,hoverPoints:f}}getPointFromEvent(a){a=a.target;let d;for(;a&&!d;)d=a.point,a=a.parentNode;return d}onTrackerMouseOut(a){a=a.relatedTarget;const d=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!d||!a||d.stickyTracking||this.inClass(a,\"highcharts-tooltip\")||this.inClass(a,\"highcharts-series-\"+d.index)&&this.inClass(a,\"highcharts-tracker\")))d.onMouseOut()}inClass(a,\nk){let d;for(;a;){if(d=B(a,\"class\")){if(-1!==d.indexOf(k))return!0;if(-1!==d.indexOf(\"highcharts-container\"))return!1}a=a.parentElement}}init(a,k){this.options=k;this.chart=a;this.runChartClick=!(!k.chart.events||!k.chart.events.click);this.pinchDown=[];this.lastValidTouch={};this.setDOMEvents();t(this,\"afterInit\")}normalize(a,k){var d=a.touches,e=d?d.length?d.item(0):w(d.changedTouches,a.changedTouches)[0]:a;k||(k=this.getChartPosition());d=e.pageX-k.left;e=e.pageY-k.top;d/=k.scaleX;e/=k.scaleY;\nreturn l(a,{chartX:Math.round(d),chartY:Math.round(e)})}onContainerClick(a){const d=this.chart,e=d.hoverPoint;a=this.normalize(a);const g=d.plotLeft,h=d.plotTop;d.cancelClick||(e&&this.inClass(a.target,\"highcharts-tracker\")?(t(e.series,\"click\",l(a,{point:e})),d.hoverPoint&&e.firePointEvent(\"click\",a)):(l(a,this.getCoordinates(a)),d.isInsidePlot(a.chartX-g,a.chartY-h,{visiblePlotOnly:!0})&&t(d,\"click\",a)))}onContainerMouseDown(a){const d=1===((a.buttons||a.button)&1);a=this.normalize(a);if(y.isFirefox&&\n0!==a.button)this.onContainerMouseMove(a);if(\"undefined\"===typeof a.button||d)this.zoomOption(a),d&&a.preventDefault&&a.preventDefault(),this.dragStart(a)}onContainerMouseLeave(a){const d=C[w(F.hoverChartIndex,-1)];a=this.normalize(a);d&&a.relatedTarget&&!this.inClass(a.relatedTarget,\"highcharts-tooltip\")&&(d.pointer.reset(),d.pointer.chartPosition=void 0)}onContainerMouseEnter(a){delete this.chartPosition}onContainerMouseMove(a){const d=this.chart,e=d.tooltip;a=this.normalize(a);this.setHoverChartIndex();\n(\"mousedown\"===d.mouseIsDown||this.touchSelect(a))&&this.drag(a);d.openMenu||!this.inClass(a.target,\"highcharts-tracker\")&&!d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0})||e&&e.shouldStickOnContact(a)||(this.inClass(a.target,\"highcharts-no-tooltip\")?this.reset(!1,0):this.runPointActions(a))}onDocumentTouchEnd(a){const d=C[w(F.hoverChartIndex,-1)];d&&d.pointer.drop(a)}onContainerTouchMove(a){if(this.touchSelect(a))this.onContainerMouseMove(a);else this.touch(a)}onContainerTouchStart(a){if(this.touchSelect(a))this.onContainerMouseDown(a);\nelse this.zoomOption(a),this.touch(a,!0)}onDocumentMouseMove(a){const d=this.chart,e=d.tooltip,g=this.chartPosition;a=this.normalize(a,g);!g||d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0})||e&&e.shouldStickOnContact(a)||this.inClass(a.target,\"highcharts-tracker\")||this.reset()}onDocumentMouseUp(a){const d=C[w(F.hoverChartIndex,-1)];d&&d.pointer.drop(a)}pinch(a){const d=this,e=d.chart,g=d.pinchDown,h=a.touches||[],b=h.length,f=d.lastValidTouch,c=d.hasZoom,n={},m=1===b&&\n(d.inClass(a.target,\"highcharts-tracker\")&&e.runTrackerClick||d.runChartClick),p={};var v=d.chart.tooltip;v=1===b&&w(v&&v.options.followTouchMove,!0);let u=d.selectionMarker;1<b?d.initiated=!0:v&&(d.initiated=!1);c&&d.initiated&&!m&&!1!==a.cancelable&&a.preventDefault();[].map.call(h,function(b){return d.normalize(b)});\"touchstart\"===a.type?([].forEach.call(h,function(b,a){g[a]={chartX:b.chartX,chartY:b.chartY}}),f.x=[g[0].chartX,g[1]&&g[1].chartX],f.y=[g[0].chartY,g[1]&&g[1].chartY],e.axes.forEach(function(b){if(b.zoomEnabled){const a=\ne.bounds[b.horiz?\"h\":\"v\"],c=b.minPixelPadding,f=b.toPixels(Math.min(w(b.options.min,b.dataMin),b.dataMin)),d=b.toPixels(Math.max(w(b.options.max,b.dataMax),b.dataMax)),n=Math.max(f,d);a.min=Math.min(b.pos,Math.min(f,d)-c);a.max=Math.max(b.pos+b.len,n+c)}}),d.res=!0):v?this.runPointActions(d.normalize(a)):g.length&&(t(e,\"touchpan\",{originalEvent:a},()=>{u||(d.selectionMarker=u=l({destroy:z,touch:!0},e.plotBox));d.pinchTranslate(g,h,n,u,p,f);d.hasPinched=c;d.scaleGroups(n,p)}),d.res&&(d.res=!1,this.reset(!1,\n0)))}pinchTranslate(a,e,g,h,l,b){this.zoomHor&&this.pinchTranslateDirection(!0,a,e,g,h,l,b);this.zoomVert&&this.pinchTranslateDirection(!1,a,e,g,h,l,b)}pinchTranslateDirection(a,e,g,h,l,b,f,c){const d=this.chart,k=a?\"x\":\"y\",q=a?\"X\":\"Y\",m=\"chart\"+q,r=a?\"width\":\"height\",p=d[\"plot\"+(a?\"Left\":\"Top\")],t=d.inverted,w=d.bounds[a?\"h\":\"v\"],v=1===e.length,u=e[0][m],x=!v&&e[1][m];e=function(){\"number\"===typeof N&&20<Math.abs(u-x)&&(F=c||Math.abs(J-N)/Math.abs(u-x));E=(p-J)/F+u;G=d[\"plot\"+(a?\"Width\":\"Height\")]/\nF};let G,E,F=c||1,J=g[0][m],N=!v&&g[1][m],O;e();g=E;g<w.min?(g=w.min,O=!0):g+G>w.max&&(g=w.max-G,O=!0);O?(J-=.8*(J-f[k][0]),\"number\"===typeof N&&(N-=.8*(N-f[k][1])),e()):f[k]=[J,N];t||(b[k]=E-p,b[r]=G);b=t?1/F:F;l[r]=G;l[k]=g;h[t?a?\"scaleY\":\"scaleX\":\"scale\"+q]=F;h[\"translate\"+q]=b*p+(J-b*u)}reset(a,e){const d=this.chart,k=d.hoverSeries,g=d.hoverPoint,b=d.hoverPoints,f=d.tooltip,c=f&&f.shared?b:g;a&&c&&E(c).forEach(function(b){b.series.isCartesian&&\"undefined\"===typeof b.plotX&&(a=!1)});if(a)f&&c&&\nE(c).length&&(f.refresh(c),f.shared&&b?b.forEach(function(b){b.setState(b.state,!0);b.series.isCartesian&&(b.series.xAxis.crosshair&&b.series.xAxis.drawCrosshair(null,b),b.series.yAxis.crosshair&&b.series.yAxis.drawCrosshair(null,b))}):g&&(g.setState(g.state,!0),d.axes.forEach(function(b){b.crosshair&&g.series[b.coll]===b&&b.drawCrosshair(null,g)})));else{if(g)g.onMouseOut();b&&b.forEach(function(b){b.setState()});if(k)k.onMouseOut();f&&f.hide(e);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());\nd.axes.forEach(function(b){b.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}}runPointActions(a,e,g){const d=this.chart,k=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,b=k?k.shared:!1;let f=e||d.hoverPoint,c=f&&f.series||d.hoverSeries;e=this.getHoverData(f,c,d.series,(!a||\"touchmove\"!==a.type)&&(!!e||c&&c.directTouch&&this.isDirectTouch),b,a);f=e.hoverPoint;c=e.hoverSeries;const n=e.hoverPoints;e=c&&c.tooltipOptions.followPointer&&!c.tooltipOptions.split;const h=b&&c&&!c.noSharedTooltip;\nif(f&&(g||f!==d.hoverPoint||k&&k.isHidden)){(d.hoverPoints||[]).forEach(function(b){-1===n.indexOf(b)&&b.setState()});if(d.hoverSeries!==c)c.onMouseOver();this.applyInactiveState(n);(n||[]).forEach(function(b){b.setState(\"hover\")});d.hoverPoint&&d.hoverPoint.firePointEvent(\"mouseOut\");if(!f.series)return;d.hoverPoints=n;d.hoverPoint=f;f.firePointEvent(\"mouseOver\",void 0,()=>{k&&f&&k.refresh(h?n:f,a)})}else e&&k&&!k.isHidden&&(g=k.getAnchor([{}],a),d.isInsidePlot(g[0],g[1],{visiblePlotOnly:!0})&&k.updatePosition({plotX:g[0],\nplotY:g[1]}));this.unDocMouseMove||(this.unDocMouseMove=H(d.container.ownerDocument,\"mousemove\",function(b){const a=C[F.hoverChartIndex];if(a)a.pointer.onDocumentMouseMove(b)}),this.eventsToUnbind.push(this.unDocMouseMove));d.axes.forEach(function(b){const c=w((b.crosshair||{}).snap,!0);let f;c&&((f=d.hoverPoint)&&f.series[b.coll]===b||(f=p(n,a=>a.series&&a.series[b.coll]===b)));f||!c?b.drawCrosshair(a,f):b.hideCrosshair()})}scaleGroups(a,e){const d=this.chart;d.series.forEach(function(k){const g=\na||k.getPlotBox();k.group&&(k.xAxis&&k.xAxis.zoomEnabled||d.mapView)&&(k.group.attr(g),k.markerGroup&&(k.markerGroup.attr(g),k.markerGroup.clip(e?d.clipRect:null)),k.dataLabelsGroup&&k.dataLabelsGroup.attr(g))});d.clipRect.attr(e||d.clipBox)}setDOMEvents(){const a=this.chart.container,e=a.ownerDocument;a.onmousedown=this.onContainerMouseDown.bind(this);a.onmousemove=this.onContainerMouseMove.bind(this);a.onclick=this.onContainerClick.bind(this);this.eventsToUnbind.push(H(a,\"mouseenter\",this.onContainerMouseEnter.bind(this)));\nthis.eventsToUnbind.push(H(a,\"mouseleave\",this.onContainerMouseLeave.bind(this)));F.unbindDocumentMouseUp||(F.unbindDocumentMouseUp=H(e,\"mouseup\",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&\"BODY\"!==g.tagName;)this.eventsToUnbind.push(H(g,\"scroll\",()=>{delete this.chartPosition})),g=g.parentElement;y.hasTouch&&(this.eventsToUnbind.push(H(a,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(H(a,\"touchmove\",this.onContainerTouchMove.bind(this),\n{passive:!1})),F.unbindDocumentTouchEnd||(F.unbindDocumentTouchEnd=H(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})))}setHoverChartIndex(){const a=this.chart,e=y.charts[w(F.hoverChartIndex,-1)];if(e&&e!==a)e.pointer.onContainerMouseLeave({relatedTarget:a.container});e&&e.mouseIsDown||(F.hoverChartIndex=a.index)}touch(a,e){const d=this.chart;let g,k;this.setHoverChartIndex();1===a.touches.length?(a=this.normalize(a),(k=d.isInsidePlot(a.chartX-d.plotLeft,a.chartY-d.plotTop,{visiblePlotOnly:!0}))&&\n!d.openMenu?(e&&this.runPointActions(a),\"touchmove\"===a.type&&(e=this.pinchDown,g=e[0]?4<=Math.sqrt(Math.pow(e[0].chartX-a.chartX,2)+Math.pow(e[0].chartY-a.chartY,2)):!1),w(g,!0)&&this.pinch(a)):e&&this.reset()):2===a.touches.length&&this.pinch(a)}touchSelect(a){return!(!this.chart.zooming.singleTouch||!a.touches||1!==a.touches.length)}zoomOption(a){const d=this.chart,e=d.inverted;var g=d.zooming.type||\"\";/touch/.test(a.type)&&(g=w(d.zooming.pinchType,g));this.zoomX=a=/x/.test(g);this.zoomY=g=/y/.test(g);\nthis.zoomHor=a&&!e||g&&e;this.zoomVert=g&&!e||a&&e;this.hasZoom=a||g}}(function(a){const d=[],e=[];a.compose=function(d){I.pushUnique(e,d)&&H(d,\"beforeRender\",function(){this.pointer=new a(this,this.options)})};a.dissolve=function(){for(let a=0,e=d.length;a<e;++a)d[a]();d.length=0}})(F||(F={}));\"\";return F});M(a,\"Core/Legend/Legend.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Templating.js\"],a[\"Core/Globals.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Renderer/RendererUtilities.js\"],a[\"Core/Utilities.js\"]],\nfunction(a,y,I,L,C,z){const {animObject:x,setAnimation:B}=a,{format:u}=y,{marginNames:v}=I,{distribute:l}=C,{addEvent:p,createElement:t,css:m,defined:h,discardElement:g,find:e,fireEvent:w,isNumber:E,merge:F,pick:d,relativeLength:k,stableSort:r,syncTimeout:q}=z;class G{constructor(b,a){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=\nthis.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options=void 0;this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=void 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=b;this.init(b,a)}init(b,a){this.chart=b;this.setOptions(a);a.enabled&&(this.render(),p(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),p(this.chart,\"render\",()=>{this.proximate&&(this.proximatePositions(),\nthis.positionItems())}))}setOptions(b){const a=d(b.padding,8);this.options=b;this.chart.styledMode||(this.itemStyle=b.itemStyle,this.itemHiddenStyle=F(this.itemStyle,b.itemHiddenStyle));this.itemMarginTop=b.itemMarginTop;this.itemMarginBottom=b.itemMarginBottom;this.padding=a;this.initialItemY=a-5;this.symbolWidth=d(b.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===b.layout&&!this.chart.inverted;this.baseline=void 0}update(b,a){const c=this.chart;this.setOptions(F(!0,this.options,b));this.destroy();\nc.isDirtyLegend=c.isDirtyBox=!0;d(a,!0)&&c.redraw();w(this,\"afterUpdate\")}colorizeItem(b,a){const {group:c,label:f,line:d,symbol:e}=b.legendItem||{};if(c)c[a?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){const {itemHiddenStyle:c}=this,g=c.color,k=a?b.color||g:g,n=b.options&&b.options.marker;let h={fill:k};null===f||void 0===f?void 0:f.css(F(a?this.itemStyle:c));null===d||void 0===d?void 0:d.attr({stroke:k});e&&(n&&e.isMarker&&(h=b.pointAttribs(),a||(h.stroke=\nh.fill=g)),e.attr(h))}w(this,\"afterColorizeItem\",{item:b,visible:a})}positionItems(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()}positionItem(b){const {group:a,x:c=0,y:d=0}=b.legendItem||{};var e=this.options,g=e.symbolPadding;const k=!e.rtl;e=b.checkbox;a&&a.element&&(g={translateX:k?c:this.legendWidth-c-2*g-4,translateY:d},a[h(a.translateY)?\"animate\":\"attr\"](g,void 0,()=>{w(this,\"afterPositionItem\",{item:b})}));e&&(e.x=c,e.y=d)}destroyItem(b){const a=\nb.checkbox,c=b.legendItem||{};for(const b of[\"group\",\"label\",\"line\",\"symbol\"])c[b]&&(c[b]=c[b].destroy());a&&g(a);b.legendItem=void 0}destroy(){for(const b of this.getAllItems())this.destroyItem(b);for(const b of\"clipRect up down pager nav box title group\".split(\" \"))this[b]&&(this[b]=this[b].destroy());this.display=null}positionCheckboxes(){const b=this.group&&this.group.alignAttr,a=this.clipHeight||this.legendHeight,c=this.titleHeight;let d;b&&(d=b.translateY,this.allItems.forEach(function(f){const e=\nf.checkbox;let g;e&&(g=d+c+e.y+(this.scrollOffset||0)+3,m(e,{left:b.translateX+f.checkboxOffset+e.x-20+\"px\",top:g+\"px\",display:this.proximate||g>d-6&&g<d+a-6?\"\":\"none\"}))},this))}renderTitle(){var b=this.options;const a=this.padding,c=b.title;let d=0;c.text&&(this.title||(this.title=this.chart.renderer.label(c.text,a-3,a-4,void 0,void 0,void 0,b.useHTML,void 0,\"legend-title\").attr({zIndex:1}),this.chart.styledMode||this.title.css(c.style),this.title.add(this.group)),c.width||this.title.css({width:this.maxLegendWidth+\n\"px\"}),b=this.title.getBBox(),d=b.height,this.offsetWidth=b.width,this.contentGroup.attr({translateY:d}));this.titleHeight=d}setText(b){const a=this.options;b.legendItem.label.attr({text:a.labelFormat?u(a.labelFormat,b,this.chart):a.labelFormatter.call(b)})}renderItem(b){const a=b.legendItem=b.legendItem||{};var c=this.chart,e=c.renderer;const g=this.options,k=this.symbolWidth,h=g.symbolPadding||0,l=this.itemStyle,m=this.itemHiddenStyle,q=\"horizontal\"===g.layout?d(g.itemDistance,20):0,r=!g.rtl,p=\n!b.series,t=!p&&b.series.drawLegendSymbol?b.series:b;var w=t.options;const v=this.createCheckboxForItem&&w&&w.showCheckbox,u=g.useHTML,x=b.options.className;let J=a.label;w=k+h+q+(v?20:0);J||(a.group=e.g(\"legend-item\").addClass(\"highcharts-\"+t.type+\"-series highcharts-color-\"+b.colorIndex+(x?\" \"+x:\"\")+(p?\" highcharts-series-\"+b.index:\"\")).attr({zIndex:1}).add(this.scrollGroup),a.label=J=e.text(\"\",r?k+h:-h,this.baseline||0,u),c.styledMode||J.css(F(b.visible?l:m)),J.attr({align:r?\"left\":\"right\",zIndex:2}).add(a.group),\nthis.baseline||(this.fontMetrics=e.fontMetrics(J),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,J.attr(\"y\",this.baseline),this.symbolHeight=d(g.symbolHeight,this.fontMetrics.f),g.squareSymbol&&(this.symbolWidth=d(g.symbolWidth,Math.max(this.symbolHeight,16)),w=this.symbolWidth+h+q+(v?20:0),r&&J.attr(\"x\",this.symbolWidth+h))),t.drawLegendSymbol(this,b),this.setItemEvents&&this.setItemEvents(b,J,u));v&&!b.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(b);this.colorizeItem(b,\nb.visible);!c.styledMode&&l.width||J.css({width:(g.itemWidth||this.widthOption||c.spacingBox.width)-w+\"px\"});this.setText(b);c=J.getBBox();e=this.fontMetrics&&this.fontMetrics.h||0;b.itemWidth=b.checkboxOffset=g.itemWidth||a.labelWidth||c.width+w;this.maxItemWidth=Math.max(this.maxItemWidth,b.itemWidth);this.totalItemWidth+=b.itemWidth;this.itemHeight=b.itemHeight=Math.round(a.labelHeight||(c.height>1.5*e?c.height:e))}layoutItem(b){var a=this.options;const c=this.padding,e=\"horizontal\"===a.layout,\ng=b.itemHeight,k=this.itemMarginBottom,h=this.itemMarginTop,l=e?d(a.itemDistance,20):0,m=this.maxLegendWidth;a=a.alignColumns&&this.totalItemWidth>m?this.maxItemWidth:b.itemWidth;const q=b.legendItem||{};e&&this.itemX-c+a>m&&(this.itemX=c,this.lastLineHeight&&(this.itemY+=h+this.lastLineHeight+k),this.lastLineHeight=0);this.lastItemY=h+this.itemY+k;this.lastLineHeight=Math.max(g,this.lastLineHeight);q.x=this.itemX;q.y=this.itemY;e?this.itemX+=a:(this.itemY+=h+g+k,this.lastLineHeight=g);this.offsetWidth=\nthis.widthOption||Math.max((e?this.itemX-c-(b.checkbox?0:l):a)+c,this.offsetWidth)}getAllItems(){let b=[];this.chart.series.forEach(function(a){const c=a&&a.options;a&&d(c.showInLegend,h(c.linkedTo)?!1:void 0,!0)&&(b=b.concat((a.legendItem||{}).labels||(\"point\"===c.legendType?a.data:a)))});w(this,\"afterGetAllItems\",{allItems:b});return b}getAlignment(){const b=this.options;return this.proximate?b.align.charAt(0)+\"tv\":b.floating?\"\":b.align.charAt(0)+b.verticalAlign.charAt(0)+b.layout.charAt(0)}adjustMargins(b,\na){const c=this.chart,f=this.options,e=this.getAlignment();e&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(g,k){g.test(e)&&!h(b[k])&&(c[v[k]]=Math.max(c[v[k]],c.legend[(k+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][k]*f[k%2?\"x\":\"y\"]+d(f.margin,12)+a[k]+(c.titleOffset[k]||0)))})}proximatePositions(){const b=this.chart,a=[],c=\"left\"===this.options.align;this.allItems.forEach(function(d){var f;var g=c;let k;d.yAxis&&(d.xAxis.options.reversed&&(g=!g),d.points&&(f=\ne(g?d.points:d.points.slice(0).reverse(),function(b){return E(b.plotY)})),g=this.itemMarginTop+d.legendItem.label.getBBox().height+this.itemMarginBottom,k=d.yAxis.top-b.plotTop,d.visible?(f=f?f.plotY:d.yAxis.height,f+=k-.3*g):f=k+d.yAxis.height,a.push({target:f,size:g,item:d}))},this);let d;for(const c of l(a,b.plotHeight))d=c.item.legendItem||{},E(c.pos)&&(d.y=b.plotTop-b.spacing[0]+c.pos)}render(){const b=this.chart,a=b.renderer,c=this.options,d=this.padding;var e=this.getAllItems();let g,h=this.group,\nl=this.box;this.itemX=d;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=k(c.width,b.spacingBox.width-d);var m=b.spacingBox.width-2*d-c.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(m/=2);this.maxLegendWidth=this.widthOption||m;h||(this.group=h=a.g(\"legend\").addClass(c.className||\"\").attr({zIndex:7}).add(),this.contentGroup=a.g().attr({zIndex:1}).add(h),this.scrollGroup=a.g().add(this.contentGroup));this.renderTitle();r(e,(b,a)=>(b.options&&b.options.legendIndex||\n0)-(a.options&&a.options.legendIndex||0));c.reversed&&e.reverse();this.allItems=e;this.display=m=!!e.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;e.forEach(this.renderItem,this);e.forEach(this.layoutItem,this);e=(this.widthOption||this.offsetWidth)+d;g=this.lastItemY+this.lastLineHeight+this.titleHeight;g=this.handleOverflow(g);g+=d;l||(this.box=l=a.rect().addClass(\"highcharts-legend-box\").attr({r:c.borderRadius}).add(h));b.styledMode||l.attr({stroke:c.borderColor,\n\"stroke-width\":c.borderWidth||0,fill:c.backgroundColor||\"none\"}).shadow(c.shadow);if(0<e&&0<g)l[l.placed?\"animate\":\"attr\"](l.crisp.call({},{x:0,y:0,width:e,height:g},l.strokeWidth()));h[m?\"show\":\"hide\"]();b.styledMode&&\"none\"===h.getStyle(\"display\")&&(e=g=0);this.legendWidth=e;this.legendHeight=g;m&&this.align();this.proximate||this.positionItems();w(this,\"afterRender\")}align(b=this.chart.spacingBox){const a=this.chart,c=this.options;let d=b.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<a.titleOffset[0]?\nd+=a.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&0<a.titleOffset[2]&&(d-=a.titleOffset[2]);d!==b.y&&(b=F(b,{y:d}));a.hasRendered||(this.group.placed=!1);this.group.align(F(c,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":c.verticalAlign}),!0,b)}handleOverflow(b){const a=this,c=this.chart,e=c.renderer,g=this.options;var k=g.y;const h=\"top\"===g.verticalAlign,l=this.padding,m=g.maxHeight,q=g.navigation,r=d(q.animation,!0),p=q.arrowSize||12,t=this.pages,\nw=this.allItems,v=function(b){\"number\"===typeof b?E.attr({height:b}):E&&(a.clipRect=E.destroy(),a.contentGroup.clip());a.contentGroup.div&&(a.contentGroup.div.style.clip=b?\"rect(\"+l+\"px,9999px,\"+(l+b)+\"px,0)\":\"auto\")},u=function(b){a[b]=e.circle(0,0,1.3*p).translate(p/2,p/2).add(O);c.styledMode||a[b].attr(\"fill\",\"rgba(0,0,0,0.0001)\");return a[b]};let x,J,N;k=c.spacingBox.height+(h?-k:k)-l;let O=this.nav,E=this.clipRect;\"horizontal\"!==g.layout||\"middle\"===g.verticalAlign||g.floating||(k/=2);m&&(k=\nMath.min(k,m));t.length=0;b&&0<k&&b>k&&!1!==q.enabled?(this.clipHeight=x=Math.max(k-20-this.titleHeight-l,0),this.currentPage=d(this.currentPage,1),this.fullHeight=b,w.forEach((b,a)=>{N=b.legendItem||{};b=N.y||0;const c=Math.round(N.label.getBBox().height);let d=t.length;if(!d||b-t[d-1]>x&&(J||b)!==t[d-1])t.push(J||b),d++;N.pageIx=d-1;J&&((w[a-1].legendItem||{}).pageIx=d-1);a===w.length-1&&b+c-t[d-1]>x&&b>t[d-1]&&(t.push(b),N.pageIx=d);b!==J&&(J=b)}),E||(E=a.clipRect=e.clipRect(0,l-2,9999,0),a.contentGroup.clip(E)),\nv(x),O||(this.nav=O=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol(\"triangle\",0,0,p,p).add(O),u(\"upTracker\").on(\"click\",function(){a.scroll(-1,r)}),this.pager=e.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),!c.styledMode&&q.style&&this.pager.css(q.style),this.pager.add(O),this.down=e.symbol(\"triangle-down\",0,0,p,p).add(O),u(\"downTracker\").on(\"click\",function(){a.scroll(1,r)})),a.scroll(0),b=k):O&&(v(),this.nav=O.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);\nreturn b}scroll(b,a){const c=this.chart,f=this.pages,e=f.length,g=this.clipHeight,k=this.options.navigation,h=this.pager,l=this.padding;let m=this.currentPage+b;m>e&&(m=e);0<m&&(\"undefined\"!==typeof a&&B(a,c),this.nav.attr({translateX:l,translateY:g+this.padding+7+this.titleHeight,visibility:\"inherit\"}),[this.up,this.upTracker].forEach(function(b){b.attr({\"class\":1===m?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),h.attr({text:m+\"/\"+e}),[this.down,this.downTracker].forEach(function(b){b.attr({x:18+\nthis.pager.getBBox().width,\"class\":m===e?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})},this),c.styledMode||(this.up.attr({fill:1===m?k.inactiveColor:k.activeColor}),this.upTracker.css({cursor:1===m?\"default\":\"pointer\"}),this.down.attr({fill:m===e?k.inactiveColor:k.activeColor}),this.downTracker.css({cursor:m===e?\"default\":\"pointer\"})),this.scrollOffset=-f[m-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=m,this.positionCheckboxes(),\nb=x(d(a,c.renderer.globalAnimation,!0)),q(()=>{w(this,\"afterScroll\",{currentPage:m})},b.duration))}setItemEvents(b,a,c){const d=this,f=b.legendItem||{},e=d.chart.renderer.boxWrapper,g=b instanceof L,k=\"highcharts-legend-\"+(g?\"point\":\"series\")+\"-active\",h=d.chart.styledMode;c=c?[a,f.symbol]:[f.group];const l=a=>{d.allItems.forEach(c=>{b!==c&&[c].concat(c.linkedSeries||[]).forEach(b=>{b.setState(a,!g)})})};for(const f of c)if(f)f.on(\"mouseover\",function(){b.visible&&l(\"inactive\");b.setState(\"hover\");\nb.visible&&e.addClass(k);h||a.css(d.options.itemHoverStyle)}).on(\"mouseout\",function(){d.chart.styledMode||a.css(F(b.visible?d.itemStyle:d.itemHiddenStyle));l(\"\");e.removeClass(k);b.setState()}).on(\"click\",function(a){const c=function(){b.setVisible&&b.setVisible();l(b.visible?\"inactive\":\"\")};e.removeClass(k);a={browserEvent:a};b.firePointEvent?b.firePointEvent(\"legendItemClick\",a,c):w(b,\"legendItemClick\",a,c)})}createCheckboxForItem(b){b.checkbox=t(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",\nchecked:b.selected,defaultChecked:b.selected},this.options.itemCheckboxStyle,this.chart.container);p(b.checkbox,\"click\",function(a){w(b.series||b,\"checkboxClick\",{checked:a.target.checked,item:b},function(){b.select()})})}}(function(b){const a=[];b.compose=function(c){z.pushUnique(a,c)&&p(c,\"beforeMargins\",function(){this.legend=new b(this,this.options.legend)})}})(G||(G={}));\"\";return G});M(a,\"Core/Legend/LegendSymbol.js\",[a[\"Core/Utilities.js\"]],function(a){const {extend:x,merge:I,pick:L}=a;var C;\n(function(a){a.lineMarker=function(a,B){B=this.legendItem=this.legendItem||{};var u=this.options;const v=a.symbolWidth,l=a.symbolHeight,p=l/2,t=this.chart.renderer,m=B.group;a=a.baseline-Math.round(.3*a.fontMetrics.b);let h={},g=u.marker,e=0;this.chart.styledMode||(h={\"stroke-width\":Math.min(u.lineWidth||0,24)},u.dashStyle?h.dashstyle=u.dashStyle:\"square\"!==u.linecap&&(h[\"stroke-linecap\"]=\"round\"));B.line=t.path().addClass(\"highcharts-graph\").attr(h).add(m);h[\"stroke-linecap\"]&&(e=Math.min(B.line.strokeWidth(),\nv)/2);v&&B.line.attr({d:[[\"M\",e,a],[\"L\",v-e,a]]});g&&!1!==g.enabled&&v&&(u=Math.min(L(g.radius,p),p),0===this.symbol.indexOf(\"url\")&&(g=I(g,{width:l,height:l}),u=0),B.symbol=B=t.symbol(this.symbol,v/2-u,a-u,2*u,2*u,x({context:\"legend\"},g)).addClass(\"highcharts-point\").add(m),B.isMarker=!0)};a.rectangle=function(a,x){x=x.legendItem||{};const u=a.symbolHeight,v=a.options.squareSymbol;x.symbol=this.chart.renderer.rect(v?(a.symbolWidth-u)/2:0,a.baseline-u+1,v?u:a.symbolWidth,u,L(a.options.symbolRadius,\nu/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(x.group)}})(C||(C={}));return C});M(a,\"Core/Series/SeriesDefaults.js\",[],function(){return{lineWidth:1,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},\ndataLabels:{animation:{},align:\"center\",borderWidth:0,defer:!0,formatter:function(){const {numberFormatter:a}=this.series.chart;return\"number\"!==typeof this.y?\"\":a(this.y,-1)},padding:5,style:{fontSize:\"0.7em\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},\ninactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"}});M(a,\"Core/Series/SeriesRegistry.js\",[a[\"Core/Globals.js\"],a[\"Core/Defaults.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L){const {defaultOptions:x}=y,{extendClass:z,merge:H}=L;var B;(function(u){function v(a,p){const l=x.plotOptions||{},m=p.defaultOptions,h=p.prototype;h.type=a;h.pointClass||(h.pointClass=I);m&&(l[a]=m);u.seriesTypes[a]=p}u.seriesTypes=a.seriesTypes;\nu.registerSeriesType=v;u.seriesType=function(a,p,t,m,h){const g=x.plotOptions||{};p=p||\"\";g[a]=H(g[p],t);v(a,z(u.seriesTypes[p]||function(){},m));u.seriesTypes[a].prototype.type=a;h&&(u.seriesTypes[a].prototype.pointClass=z(I,h));return u.seriesTypes[a]}})(B||(B={}));return B});M(a,\"Core/Series/Series.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Defaults.js\"],a[\"Core/Foundation.js\"],a[\"Core/Globals.js\"],a[\"Core/Legend/LegendSymbol.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Series/SeriesDefaults.js\"],\na[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B,u,v){const {animObject:l,setAnimation:p}=a,{defaultOptions:t}=y,{registerEventOptions:m}=I,{hasTouch:h,svg:g,win:e}=L,{seriesTypes:w}=B,{arrayMax:x,arrayMin:F,clamp:d,correctFloat:k,defined:r,diffObjects:q,erase:G,error:b,extend:f,find:c,fireEvent:n,getClosestDistance:P,getNestedProperty:D,insertItem:K,isArray:X,isNumber:T,isString:Z,merge:V,objectEach:Y,pick:A,removeEvent:M,splat:ia,\nsyncTimeout:ba}=v;class aa{constructor(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}init(b,a){n(this,\"init\",{options:a});const c=this,d=b.series;this.eventsToUnbind=[];c.chart=b;c.options=c.setOptions(a);a=c.options;c.linkedSeries=[];c.bindAxes();f(c,{name:a.name,state:\"\",visible:!1!==a.visible,selected:!0===\na.selected});m(this,a);const e=a.events;if(e&&e.click||a.point&&a.point.events&&a.point.events.click||a.allowPointSelect)b.runTrackerClick=!0;c.getColor();c.getSymbol();c.parallelArrays.forEach(function(b){c[b+\"Data\"]||(c[b+\"Data\"]=[])});c.isCartesian&&(b.hasCartesianSeries=!0);let g;d.length&&(g=d[d.length-1]);c._i=A(g&&g._i,-1)+1;c.opacity=c.options.opacity;b.orderItems(\"series\",K(this,d));a.dataSorting&&a.dataSorting.enabled?c.setDataSortingOptions():c.points||c.data||c.setData(a.data,!1);n(this,\n\"afterInit\")}is(b){return w[b]&&this instanceof w[b]}bindAxes(){const a=this,c=a.options,d=a.chart;let f;n(this,\"bindAxes\",null,function(){(a.axisTypes||[]).forEach(function(e){d[e].forEach(function(b){f=b.options;if(A(c[e],0)===b.index||\"undefined\"!==typeof c[e]&&c[e]===f.id)K(a,b.series),a[e]=b,b.isDirty=!0});a[e]||a.optionalAxis===e||b(18,!0,d)})});n(this,\"afterBindAxes\")}updateParallelArrays(b,a,c){const d=b.series,f=T(a)?function(c){const f=\"y\"===c&&d.toYData?d.toYData(b):b[c];d[c+\"Data\"][a]=\nf}:function(b){Array.prototype[a].apply(d[b+\"Data\"],c)};d.parallelArrays.forEach(f)}hasData(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length}autoIncrement(b){var a=this.options;const c=a.pointIntervalUnit,d=a.relativeXValue,f=this.chart.time;let e=this.xIncrement,g;e=A(e,a.pointStart,0);this.pointInterval=g=A(this.pointInterval,a.pointInterval,1);d&&T(b)&&(g*=b);c&&(a=new f.Date(e),\"day\"===c?f.set(\"Date\",a,f.get(\"Date\",\na)+g):\"month\"===c?f.set(\"Month\",a,f.get(\"Month\",a)+g):\"year\"===c&&f.set(\"FullYear\",a,f.get(\"FullYear\",a)+g),g=a.getTime()-e);if(d&&T(b))return e+g;this.xIncrement=e+g;return e}setDataSortingOptions(){const b=this.options;f(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});r(b.pointRange)||(b.pointRange=1)}setOptions(b){var a,c;const d=this.chart;var f=d.options.plotOptions,e=d.userOptions||{};const g=V(b);b=d.styledMode;const k={plotOptions:f,userOptions:g};n(this,\"setOptions\",\nk);const h=k.plotOptions[this.type];e=e.plotOptions||{};const l=e.series||{},m=t.plotOptions[this.type]||{},q=e[this.type]||{};this.userOptions=k.userOptions;f=V(h,f.series,q,g);this.tooltipOptions=V(t.tooltip,null===(a=t.plotOptions.series)||void 0===a?void 0:a.tooltip,null===m||void 0===m?void 0:m.tooltip,d.userOptions.tooltip,null===(c=e.series)||void 0===c?void 0:c.tooltip,q.tooltip,g.tooltip);this.stickyTracking=A(g.stickyTracking,q.stickyTracking,l.stickyTracking,this.tooltipOptions.shared&&\n!this.noSharedTooltip?!0:f.stickyTracking);null===h.marker&&delete f.marker;this.zoneAxis=f.zoneAxis;c=this.zones=(f.zones||[]).slice();!f.negativeColor&&!f.negativeFillColor||f.zones||(a={value:f[this.zoneAxis+\"Threshold\"]||f.threshold||0,className:\"highcharts-negative\"},b||(a.color=f.negativeColor,a.fillColor=f.negativeFillColor),c.push(a));c.length&&r(c[c.length-1].value)&&c.push(b?{}:{color:this.color,fillColor:this.fillColor});n(this,\"afterSetOptions\",{options:f});return f}getName(){return A(this.options.name,\n\"Series \"+(this.index+1))}getCyclic(b,a,c){const d=this.chart,f=`${b}Index`,e=`${b}Counter`,g=(null===c||void 0===c?void 0:c.length)||d.options.chart.colorCount;if(!a){var k=A(\"color\"===b?this.options.colorIndex:void 0,this[f]);r(k)||(d.series.length||(d[e]=0),k=d[e]%g,d[e]+=1);c&&(a=c[k])}\"undefined\"!==typeof k&&(this[f]=k);this[b]=a}getColor(){this.chart.styledMode?this.getCyclic(\"color\"):this.options.colorByPoint?this.color=\"#cccccc\":this.getCyclic(\"color\",this.options.color||t.plotOptions[this.type].color,\nthis.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic(\"symbol\",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(b,a){const d=b.id,f=b.x,e=this.points;var g=this.options.dataSorting,k;let h,n;if(d)g=this.chart.get(d),g instanceof z&&(k=g);else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue)if(k=a=>!a.touched&&a.index===b.index,g&&g.matchByName?k=a=>!a.touched&&a.name===b.name:\nthis.options.relativeXValue&&(k=a=>!a.touched&&a.options.x===b.x),k=c(e,k),!k)return;k&&(n=k&&k.index,\"undefined\"!==typeof n&&(h=!0));\"undefined\"===typeof n&&T(f)&&(n=this.xData.indexOf(f,a));-1!==n&&\"undefined\"!==typeof n&&this.cropped&&(n=n>=this.cropStart?n-this.cropStart:n);!h&&T(n)&&e[n]&&e[n].touched&&(n=void 0);return n}updateData(b,a){const c=this.options,d=c.dataSorting,f=this.points,e=[],g=this.requireSorting,k=b.length===f.length;let n,h,l,m=!0;this.xIncrement=null;b.forEach(function(b,\na){var h=r(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};const m=h.x;if(h.id||T(m)){if(h=this.findPointIndex(h,l),-1===h||\"undefined\"===typeof h?e.push(b):f[h]&&b!==c.data[h]?(f[h].update(b,!1,null,!1),f[h].touched=!0,g&&(l=h+1)):f[h]&&(f[h].touched=!0),!k||a!==h||d&&d.enabled||this.hasDerivedData)n=!0}else e.push(b)},this);if(n)for(b=f.length;b--;)(h=f[b])&&!h.touched&&h.remove&&h.remove(!1,a);else!k||d&&d.enabled?m=!1:(b.forEach(function(b,a){b===f[a].y||f[a].destroyed||\nf[a].update(b,!1,null,!1)}),e.length=0);f.forEach(function(b){b&&(b.touched=!1)});if(!m)return!1;e.forEach(function(b){this.addPoint(b,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=x(this.xData),this.autoIncrement());return!0}setData(a,c=!0,d,f){var e;const g=this,k=g.points,h=k&&k.length||0,n=g.options,l=g.chart,m=n.dataSorting,q=g.xAxis,p=n.turboThreshold,r=this.xData,t=this.yData;var w=g.pointArrayMap;w=w&&w.length;const J=n.keys;let v,u=0,O=1,\nx=null;if(!l.options.chart.allowMutatingData){n.data&&delete g.options.data;g.userOptions.data&&delete g.userOptions.data;var N=V(!0,a)}a=N||a||[];N=a.length;m&&m.enabled&&(a=this.sortData(a));l.options.chart.allowMutatingData&&!1!==f&&N&&h&&!g.cropped&&!g.hasGroupedData&&g.visible&&!g.boosted&&(v=this.updateData(a,d));if(!v){g.xIncrement=null;g.colorCounter=0;this.parallelArrays.forEach(function(b){g[b+\"Data\"].length=0});if(p&&N>p)if(x=g.getFirstValidPoint(a),T(x))for(d=0;d<N;d++)r[d]=this.autoIncrement(),\nt[d]=a[d];else if(X(x))if(w)if(x.length===w)for(d=0;d<N;d++)r[d]=this.autoIncrement(),t[d]=a[d];else for(d=0;d<N;d++)f=a[d],r[d]=f[0],t[d]=f.slice(1,w+1);else if(J&&(u=J.indexOf(\"x\"),O=J.indexOf(\"y\"),u=0<=u?u:0,O=0<=O?O:1),1===x.length&&(O=0),u===O)for(d=0;d<N;d++)r[d]=this.autoIncrement(),t[d]=a[d][O];else for(d=0;d<N;d++)f=a[d],r[d]=f[u],t[d]=f[O];else b(12,!1,l);else for(d=0;d<N;d++)f={series:g},g.pointClass.prototype.applyOptions.apply(f,[a[d]]),g.updateParallelArrays(f,d);t&&Z(t[0])&&b(14,!0,\nl);g.data=[];g.options.data=g.userOptions.data=a;for(d=h;d--;)null===(e=k[d])||void 0===e?void 0:e.destroy();q&&(q.minRange=q.userMinRange);g.isDirty=l.isDirtyBox=!0;g.isDirtyData=!!k;d=!1}\"point\"===n.legendType&&(this.processData(),this.generatePoints());c&&l.redraw(d)}sortData(b){const a=this,c=a.options.dataSorting.sortKey||\"y\",d=function(b,a){return r(a)&&b.pointClass.prototype.optionsToObject.call({series:b},a)||{}};b.forEach(function(c,f){b[f]=d(a,c);b[f].index=f},this);b.concat().sort((b,a)=>\n{b=D(c,b);a=D(c,a);return a<b?-1:a>b?1:0}).forEach(function(b,a){b.x=a},this);a.linkedSeries&&a.linkedSeries.forEach(function(a){const c=a.options,f=c.data;c.dataSorting&&c.dataSorting.enabled||!f||(f.forEach(function(c,e){f[e]=d(a,c);b[e]&&(f[e].x=b[e].x,f[e].index=e)}),a.setData(f,!1))});return b}getProcessedData(a){const c=this;var d=c.xAxis,f=c.options;const e=f.cropThreshold,g=a||c.getExtremesFromAll||f.getExtremesFromAll,k=null===d||void 0===d?void 0:d.logarithmic,h=c.isCartesian;let n=0;let l;\na=c.xData;f=c.yData;let m=!1;const q=a.length;if(d){var r=d.getExtremes();l=r.min;r=r.max;m=!(!d.categories||d.names.length)}if(h&&c.sorted&&!g&&(!e||q>e||c.forceCrop))if(a[q-1]<l||a[0]>r)a=[],f=[];else if(c.yData&&(a[0]<l||a[q-1]>r)){var p=this.cropData(c.xData,c.yData,l,r);a=p.xData;f=p.yData;n=p.start;p=!0}d=P([k?a.map(k.log2lin):a],()=>c.requireSorting&&!m&&b(15,!1,c.chart));return{xData:a,yData:f,cropped:p,cropStart:n,closestPointRange:d}}processData(b){const a=this.xAxis;if(this.isCartesian&&\n!this.isDirty&&!a.isDirty&&!this.yAxis.isDirty&&!b)return!1;b=this.getProcessedData();this.cropped=b.cropped;this.cropStart=b.cropStart;this.processedXData=b.xData;this.processedYData=b.yData;this.closestPointRange=this.basePointRange=b.closestPointRange;n(this,\"afterProcessData\")}cropData(b,a,c,d,f){const e=b.length;let g,k=0,h=e;f=A(f,this.cropShoulder);for(g=0;g<e;g++)if(b[g]>=c){k=Math.max(0,g-f);break}for(c=g;c<e;c++)if(b[c]>d){h=c+f;break}return{xData:b.slice(k,h),yData:a.slice(k,h),start:k,\nend:h}}generatePoints(){var b=this.options;const a=this.processedData||b.data,c=this.processedXData,d=this.processedYData,e=this.pointClass,g=c.length,k=this.cropStart||0,h=this.hasGroupedData,l=b.keys,m=[];b=b.dataGrouping&&b.dataGrouping.groupAll?k:0;let q;let r,p,t=this.data;if(!t&&!h){var w=[];w.length=a.length;t=this.data=w}l&&h&&(this.options.keys=!1);for(p=0;p<g;p++)w=k+p,h?(r=(new e).init(this,[c[p]].concat(ia(d[p]))),r.dataGroup=this.groupMap[b+p],r.dataGroup.options&&(r.options=r.dataGroup.options,\nf(r,r.dataGroup.options),delete r.dataLabels)):(r=t[w])||\"undefined\"===typeof a[w]||(t[w]=r=(new e).init(this,a[w],c[p])),r&&(r.index=h?b+p:w,m[p]=r);this.options.keys=l;if(t&&(g!==(q=t.length)||h))for(p=0;p<q;p++)p!==k||h||(p+=g),t[p]&&(t[p].destroyElements(),t[p].plotX=void 0);this.data=t;this.points=m;n(this,\"afterGeneratePoints\")}getXExtremes(b){return{min:F(b),max:x(b)}}getExtremes(b,a){const c=this.xAxis;var d=this.yAxis;const f=this.processedXData||this.xData,e=[],g=this.requireSorting?this.cropShoulder:\n0;d=d?d.positiveValuesOnly:!1;let k,h=0,l=0,m=0;b=b||this.stackedYData||this.processedYData||[];const q=b.length;if(c){var p=c.getExtremes();h=p.min;l=p.max}for(k=0;k<q;k++){var r=f[k];p=b[k];var t=(T(p)||X(p))&&(p.length||0<p||!d);r=a||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!c||(f[k+g]||r)>=h&&(f[k-g]||r)<=l;if(t&&r)if(t=p.length)for(;t--;)T(p[t])&&(e[m++]=p[t]);else e[m++]=p}b={activeYData:e,dataMin:F(e),dataMax:x(e)};n(this,\"afterGetExtremes\",{dataExtremes:b});\nreturn b}applyExtremes(){const b=this.getExtremes();this.dataMin=b.dataMin;this.dataMax=b.dataMax;return b}getFirstValidPoint(b){const a=b.length;let c=0,d=null;for(;null===d&&c<a;)d=b[c],c++;return d}translate(){var b;this.processedXData||this.processData();this.generatePoints();var a=this.options;const c=a.stacking,f=this.xAxis,e=f.categories,g=this.enabledDataSorting,h=this.yAxis,l=this.points,m=l.length,q=this.pointPlacementToXValue(),p=!!q,t=a.threshold;a=a.startFromThreshold?t:0;let w,v,u,x,\nD=Number.MAX_VALUE;for(w=0;w<m;w++){const n=l[w],m=n.x;let J,Q,R=n.y,O=n.low;const E=c&&(null===(b=h.stacking)||void 0===b?void 0:b.stacks[(this.negStacks&&R<(a?0:t)?\"-\":\"\")+this.stackKey]);v=f.translate(m,!1,!1,!1,!0,q);n.plotX=T(v)?k(d(v,-1E5,1E5)):void 0;c&&this.visible&&E&&E[m]&&(x=this.getStackIndicator(x,m,this.index),!n.isNull&&x.key&&(J=E[m],Q=J.points[x.key]),J&&X(Q)&&(O=Q[0],R=Q[1],O===a&&x.key===E[m].base&&(O=A(T(t)?t:h.min)),h.positiveValuesOnly&&r(O)&&0>=O&&(O=void 0),n.total=n.stackTotal=\nA(J.total),n.percentage=r(n.y)&&J.total?n.y/J.total*100:void 0,n.stackY=R,this.irregularWidths||J.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis)));n.yBottom=r(O)?d(h.translate(O,!1,!0,!1,!0),-1E5,1E5):void 0;this.dataModify&&(R=this.dataModify.modifyValue(R,w));let N;T(R)&&void 0!==n.plotX&&(N=h.translate(R,!1,!0,!1,!0),N=T(N)?d(N,-1E5,1E5):void 0);n.plotY=N;n.isInside=this.isPointInside(n);n.clientX=p?k(f.translate(m,!1,!1,!1,!0,q)):v;n.negative=(n.y||0)<(t||0);n.category=\nA(e&&e[n.x],n.x);n.isNull||!1===n.visible||(\"undefined\"!==typeof u&&(D=Math.min(D,Math.abs(v-u))),u=v);n.zone=this.zones.length?n.getZone():void 0;!n.graphic&&this.group&&g&&(n.isNew=!0)}this.closestPointRangePx=D;n(this,\"afterTranslate\")}getValidPoints(b,a,c){const d=this.chart;return(b||this.points||[]).filter(function(b){const {plotX:f,plotY:e}=b;return!c&&(b.isNull||!T(e))||a&&!d.isInsidePlot(f,e,{inverted:d.inverted})?!1:!1!==b.visible})}getClipBox(){const {chart:b,xAxis:a,yAxis:c}=this,d=V(b.clipBox);\na&&a.len!==b.plotSizeX&&(d.width=a.len);c&&c.len!==b.plotSizeY&&(d.height=c.len);return d}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+\",\"+(this.options.yAxis||0)}setClip(){const {chart:b,group:a,markerGroup:c}=this,d=b.sharedClips,f=b.renderer,e=this.getClipBox(),g=this.getSharedClipKey();let k=d[g];k?k.animate(e):d[g]=k=f.clipRect(e);a&&a.clip(!1===this.options.clip?void 0:k);c&&c.clip()}animate(b){const {chart:a,group:c,markerGroup:d}=this,f=a.inverted;var e=l(this.options.animation),\ng=[this.getSharedClipKey(),e.duration,e.easing,e.defer].join();let k=a.sharedClips[g],n=a.sharedClips[g+\"m\"];if(b&&c)e=this.getClipBox(),k?k.attr(\"height\",e.height):(e.width=0,f&&(e.x=a.plotHeight),k=a.renderer.clipRect(e),a.sharedClips[g]=k,n=a.renderer.clipRect({x:-99,y:-99,width:f?a.plotWidth+199:99,height:f?99:a.plotHeight+199}),a.sharedClips[g+\"m\"]=n),c.clip(k),d&&d.clip(n);else if(k&&!k.hasClass(\"highcharts-animating\")){g=this.getClipBox();const b=e.step;d&&d.element.childNodes.length&&(e.step=\nfunction(a,c){b&&b.apply(c,arguments);\"width\"===c.prop&&n&&n.element&&n.attr(f?\"height\":\"width\",a+99)});k.addClass(\"highcharts-animating\").animate(g,e)}}afterAnimate(){this.setClip();Y(this.chart.sharedClips,(b,a,c)=>{b&&!this.chart.container.querySelector(`[clip-path=\"url(#${b.id})\"]`)&&(b.destroy(),delete c[a])});this.finishedAnimating=!0;n(this,\"afterAnimate\")}drawPoints(b=this.points){const a=this.chart,c=a.styledMode,{colorAxis:d,options:f}=this,e=f.marker,g=this[this.specialGroup||\"markerGroup\"],\nk=this.xAxis,n=A(e.enabled,!k||k.isRadial?!0:null,this.closestPointRangePx>=e.enabledThreshold*e.radius);let h,l,m,q;let p,r;if(!1!==e.enabled||this._hasPointMarkers)for(h=0;h<b.length;h++){l=b[h];q=(m=l.graphic)?\"animate\":\"attr\";var t=l.marker||{};p=!!l.marker;if((n&&\"undefined\"===typeof t.enabled||t.enabled)&&!l.isNull&&!1!==l.visible){const b=A(t.symbol,this.symbol,\"rect\");r=this.markerAttribs(l,l.selected&&\"select\");this.enabledDataSorting&&(l.startXPos=k.reversed?-(r.width||0):k.width);const f=\n!1!==l.isInside;!m&&f&&(0<(r.width||0)||l.hasImage)&&(l.graphic=m=a.renderer.symbol(b,r.x,r.y,r.width,r.height,p?t:e).add(g),this.enabledDataSorting&&a.hasRendered&&(m.attr({x:l.startXPos}),q=\"animate\"));m&&\"animate\"===q&&m[f?\"show\":\"hide\"](f).animate(r);if(m)if(t=this.pointAttribs(l,c||!l.selected?void 0:\"select\"),c)d&&m.css({fill:t.fill});else m[q](t);m&&m.addClass(l.getClassName(),!0)}else m&&(l.graphic=m.destroy())}}markerAttribs(b,a){const c=this.options;var d=c.marker;const f=b.marker||{},e=\nf.symbol||d.symbol,g={};let k=A(f.radius,d&&d.radius);a&&(d=d.states[a],a=f.states&&f.states[a],k=A(a&&a.radius,d&&d.radius,k&&k+(d&&d.radiusPlus||0)));b.hasImage=e&&0===e.indexOf(\"url\");b.hasImage&&(k=0);b=b.pos();T(k)&&b&&(g.x=b[0]-k,g.y=b[1]-k,c.crisp&&(g.x=Math.floor(g.x)));k&&(g.width=g.height=2*k);return g}pointAttribs(b,a){var c=this.options.marker,d=b&&b.options;const f=d&&d.marker||{};var e=d&&d.color,g=b&&b.color;const k=b&&b.zone&&b.zone.color;let n=this.color;b=A(f.lineWidth,c.lineWidth);\nd=1;n=e||k||g||n;e=f.fillColor||c.fillColor||n;g=f.lineColor||c.lineColor||n;a=a||\"normal\";c=c.states[a]||{};a=f.states&&f.states[a]||{};b=A(a.lineWidth,c.lineWidth,b+A(a.lineWidthPlus,c.lineWidthPlus,0));e=a.fillColor||c.fillColor||e;g=a.lineColor||c.lineColor||g;d=A(a.opacity,c.opacity,d);return{stroke:g,\"stroke-width\":b,fill:e,opacity:d}}destroy(b){const a=this,c=a.chart,d=/AppleWebKit\\/533/.test(e.navigator.userAgent),f=a.data||[];let g,k,h,l;n(a,\"destroy\",{keepEventsForUpdate:b});this.removeEvents(b);\n(a.axisTypes||[]).forEach(function(b){(l=a[b])&&l.series&&(G(l.series,a),l.isDirty=l.forceRedraw=!0)});a.legendItem&&a.chart.legend.destroyItem(a);for(k=f.length;k--;)(h=f[k])&&h.destroy&&h.destroy();a.clips&&a.clips.forEach(b=>b.destroy());v.clearTimeout(a.animationTimeout);Y(a,function(b,a){b instanceof u&&!b.survive&&(g=d&&\"group\"===a?\"hide\":\"destroy\",b[g]())});c.hoverSeries===a&&(c.hoverSeries=void 0);G(c.series,a);c.orderItems(\"series\");Y(a,function(c,d){b&&\"hcEvents\"===d||delete a[d]})}applyZones(){const b=\nthis,a=this.chart,c=a.renderer,f=this.zones,e=this.clips||[],g=this.graph,k=this.area,n=Math.max(a.plotWidth,a.plotHeight),h=this[(this.zoneAxis||\"y\")+\"Axis\"],l=a.inverted;let m,q,p,r,t,w,v,u,x,D,E,G=!1;f.length&&(g||k)&&h&&\"undefined\"!==typeof h.min?(t=h.reversed,w=h.horiz,g&&!this.showLine&&g.hide(),k&&k.hide(),r=h.getExtremes(),f.forEach(function(f,Q){m=t?w?a.plotWidth:0:w?0:h.toPixels(r.min)||0;m=d(A(q,m),0,n);q=d(Math.round(h.toPixels(A(f.value,r.max),!0)||0),0,n);G&&(m=q=h.toPixels(r.max));\nv=Math.abs(m-q);u=Math.min(m,q);x=Math.max(m,q);h.isXAxis?(p={x:l?x:u,y:0,width:v,height:n},w||(p.x=a.plotHeight-p.x)):(p={x:0,y:l?x:u,width:n,height:v},w&&(p.y=a.plotWidth-p.y));e[Q]?e[Q].animate(p):e[Q]=c.clipRect(p);D=b[\"zone-area-\"+Q];E=b[\"zone-graph-\"+Q];g&&E&&E.clip(e[Q]);k&&D&&D.clip(e[Q]);G=f.value>r.max;b.resetZones&&0===q&&(q=void 0)}),this.clips=e):b.visible&&(g&&g.show(),k&&k.show())}plotGroup(b,a,c,d,f){let e=this[b];const g=!e;c={visibility:c,zIndex:d||.1};\"undefined\"===typeof this.opacity||\nthis.chart.styledMode||\"inactive\"===this.state||(c.opacity=this.opacity);g&&(this[b]=e=this.chart.renderer.g().add(f));e.addClass(\"highcharts-\"+a+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(r(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(e.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);e.attr(c)[g?\"attr\":\"animate\"](this.getPlotBox(a));return e}getPlotBox(b){let a=this.xAxis,c=this.yAxis;const d=this.chart;b=d.inverted&&\n!d.polar&&a&&!1!==this.invertible&&\"series\"===b;d.inverted&&(a=c,c=this.xAxis);return{translateX:a?a.left:d.plotLeft,translateY:c?c.top:d.plotTop,rotation:b?90:0,rotationOriginX:b?(a.len-c.len)/2:0,rotationOriginY:b?(a.len+c.len)/2:0,scaleX:b?-1:1,scaleY:1}}removeEvents(b){b||M(this);this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(b){b()}),this.eventsToUnbind.length=0)}render(){const b=this;var a=b.chart;const c=b.options,d=l(c.animation),f=b.visible?\"inherit\":\"hidden\",e=c.zIndex,\ng=b.hasRendered;a=a.seriesGroup;let k=b.finishedAnimating?0:d.duration;n(this,\"render\");b.plotGroup(\"group\",\"series\",f,e,a);b.markerGroup=b.plotGroup(\"markerGroup\",\"markers\",f,e,a);!1!==c.clip&&b.setClip();b.animate&&k&&b.animate(!0);b.drawGraph&&(b.drawGraph(),b.applyZones());b.visible&&b.drawPoints();b.drawDataLabels&&b.drawDataLabels();b.redrawPoints&&b.redrawPoints();b.drawTracker&&c.enableMouseTracking&&b.drawTracker();b.animate&&k&&b.animate();g||(k&&d.defer&&(k+=d.defer),b.animationTimeout=\nba(function(){b.afterAnimate()},k||0));b.isDirty=!1;b.hasRendered=!0;n(b,\"afterRender\")}redraw(){const b=this.isDirty||this.isDirtyData;this.translate();this.render();b&&delete this.kdTree}searchPoint(b,a){const c=this.xAxis,d=this.yAxis,f=this.chart.inverted;return this.searchKDTree({clientX:f?c.len-b.chartY+c.pos:b.chartX-c.pos,plotY:f?d.len-b.chartX+d.pos:b.chartY-d.pos},a,b)}buildKDTree(b){function a(b,d,f){var e=b&&b.length;let g;if(e)return g=c.kdAxisArray[d%f],b.sort(function(b,a){return b[g]-\na[g]}),e=Math.floor(e/2),{point:b[e],left:a(b.slice(0,e),d+1,f),right:a(b.slice(e+1),d+1,f)}}this.buildingKdTree=!0;const c=this,d=-1<c.options.findNearestPointBy.indexOf(\"y\")?2:1;delete c.kdTree;ba(function(){c.kdTree=a(c.getValidPoints(null,!c.directTouch),d,d);c.buildingKdTree=!1},c.options.kdNow||b&&\"touchstart\"===b.type?0:1)}searchKDTree(b,a,c){function d(b,a,c,n){const h=a.point;var l=f.kdAxisArray[c%n];let m=h;var q=r(b[e])&&r(h[e])?Math.pow(b[e]-h[e],2):null;var p=r(b[g])&&r(h[g])?Math.pow(b[g]-\nh[g],2):null;p=(q||0)+(p||0);h.dist=r(p)?Math.sqrt(p):Number.MAX_VALUE;h.distX=r(q)?Math.sqrt(q):Number.MAX_VALUE;l=b[l]-h[l];p=0>l?\"left\":\"right\";q=0>l?\"right\":\"left\";a[p]&&(p=d(b,a[p],c+1,n),m=p[k]<m[k]?p:h);a[q]&&Math.sqrt(l*l)<m[k]&&(b=d(b,a[q],c+1,n),m=b[k]<m[k]?b:m);return m}const f=this,e=this.kdAxisArray[0],g=this.kdAxisArray[1],k=a?\"distX\":\"dist\";a=-1<f.options.findNearestPointBy.indexOf(\"y\")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(c);if(this.kdTree)return d(b,this.kdTree,\na,a)}pointPlacementToXValue(){const {options:{pointPlacement:b,pointRange:a},xAxis:c}=this;let d=b;\"between\"===d&&(d=c.reversed?-.5:.5);return T(d)?d*(a||c.pointRange):0}isPointInside(b){const {chart:a,xAxis:c,yAxis:d}=this;return\"undefined\"!==typeof b.plotY&&\"undefined\"!==typeof b.plotX&&0<=b.plotY&&b.plotY<=(d?d.len:a.plotHeight)&&0<=b.plotX&&b.plotX<=(c?c.len:a.plotWidth)}drawTracker(){const b=this,a=b.options,c=a.trackByArea,d=[].concat(c?b.areaPath:b.graphPath),f=b.chart,e=f.pointer,k=f.renderer,\nl=f.options.tooltip.snap,m=b.tracker,q=function(c){if(a.enableMouseTracking&&f.hoverSeries!==b)b.onMouseOver()},p=\"rgba(192,192,192,\"+(g?.0001:.002)+\")\";m?m.attr({d}):b.graph&&(b.tracker=k.path(d).attr({visibility:b.visible?\"inherit\":\"hidden\",zIndex:2}).addClass(c?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(b.group),f.styledMode||b.tracker.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:p,fill:c?p:\"none\",\"stroke-width\":b.graph.strokeWidth()+(c?0:2*l)}),[b.tracker,b.markerGroup,\nb.dataLabelsGroup].forEach(function(b){if(b&&(b.addClass(\"highcharts-tracker\").on(\"mouseover\",q).on(\"mouseout\",function(b){e.onTrackerMouseOut(b)}),a.cursor&&!f.styledMode&&b.css({cursor:a.cursor}),h))b.on(\"touchstart\",q)}));n(this,\"afterDrawTracker\")}addPoint(b,a,c,d,f){const e=this.options,g=this.data,k=this.chart;var h=this.xAxis;h=h&&h.hasNames&&h.names;const l=e.data,m=this.xData;let q,p;a=A(a,!0);const r={series:this};this.pointClass.prototype.applyOptions.apply(r,[b]);const t=r.x;p=m.length;\nif(this.requireSorting&&t<m[p-1])for(q=!0;p&&m[p-1]>t;)p--;this.updateParallelArrays(r,\"splice\",[p,0,0]);this.updateParallelArrays(r,p);h&&r.name&&(h[t]=r.name);l.splice(p,0,b);if(q||this.processedData)this.data.splice(p,0,null),this.processData();\"point\"===e.legendType&&this.generatePoints();c&&(g[0]&&g[0].remove?g[0].remove(!1):(g.shift(),this.updateParallelArrays(r,\"shift\"),l.shift()));!1!==f&&n(this,\"addPoint\",{point:r});this.isDirtyData=this.isDirty=!0;a&&k.redraw(d)}removePoint(b,a,c){const d=\nthis,f=d.data,e=f[b],g=d.points,k=d.chart,h=function(){g&&g.length===f.length&&g.splice(b,1);f.splice(b,1);d.options.data.splice(b,1);d.updateParallelArrays(e||{series:d},\"splice\",[b,1]);e&&e.destroy();d.isDirty=!0;d.isDirtyData=!0;a&&k.redraw()};p(c,k);a=A(a,!0);e?e.firePointEvent(\"remove\",null,h):h()}remove(b,a,c,d){function f(){e.destroy(d);g.isDirtyLegend=g.isDirtyBox=!0;g.linkSeries(d);A(b,!0)&&g.redraw(a)}const e=this,g=e.chart;!1!==c?n(e,\"remove\",null,f):f()}update(a,c){a=q(a,this.userOptions);\nn(this,\"update\",{options:a});const d=this,e=d.chart;var g=d.userOptions;const k=d.initialType||d.type;var h=e.options.plotOptions;const l=w[k].prototype;var m=d.finishedAnimating&&{animation:!1};const p={};let r,t=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],v=a.type||g.type||e.options.chart.type;const u=!(this.hasDerivedData||v&&v!==this.type||\"undefined\"!==typeof a.pointStart||\"undefined\"!==typeof a.pointInterval||\"undefined\"!==typeof a.relativeXValue||a.joinBy||a.mapData||\nd.hasOptionChanged(\"dataGrouping\")||d.hasOptionChanged(\"pointStart\")||d.hasOptionChanged(\"pointInterval\")||d.hasOptionChanged(\"pointIntervalUnit\")||d.hasOptionChanged(\"keys\"));v=v||k;u&&(t.push(\"data\",\"isDirtyData\",\"points\",\"processedData\",\"processedXData\",\"processedYData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"_hasPointLabels\",\"clips\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==a.visible&&t.push(\"area\",\"graph\"),d.parallelArrays.forEach(function(b){t.push(b+\"Data\")}),\na.data&&(a.dataSorting&&f(d.options.dataSorting,a.dataSorting),this.setData(a.data,!1)));a=V(g,m,{index:\"undefined\"===typeof g.index?d.index:g.index,pointStart:A(h&&h.series&&h.series.pointStart,g.pointStart,d.xData[0])},!u&&{data:d.options.data},a);u&&a.data&&(a.data=d.options.data);t=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"].concat(t);t.forEach(function(b){t[b]=d[b];delete d[b]});h=!1;if(w[v]){if(h=v!==d.type,d.remove(!1,!1,!1,!0),h)if(Object.setPrototypeOf)Object.setPrototypeOf(d,\nw[v].prototype);else{m=Object.hasOwnProperty.call(d,\"hcEvents\")&&d.hcEvents;for(r in l)d[r]=void 0;f(d,w[v].prototype);m?d.hcEvents=m:delete d.hcEvents}}else b(17,!0,e,{missingModuleFor:v});t.forEach(function(b){d[b]=t[b]});d.init(e,a);if(u&&this.points){a=d.options;if(!1===a.visible)p.graphic=1,p.dataLabel=1;else if(!d._hasPointLabels){const {marker:b,dataLabels:c}=a;g=g.marker||{};!b||!1!==b.enabled&&g.symbol===b.symbol&&g.height===b.height&&g.width===b.width||(p.graphic=1);c&&!1===c.enabled&&(p.dataLabel=\n1)}for(const b of this.points)b&&b.series&&(b.resolveColor(),Object.keys(p).length&&b.destroyElements(p),!1===a.showInLegend&&b.legendItem&&e.legend.destroyItem(b))}d.initialType=k;e.linkSeries();h&&d.linkedSeries.length&&(d.isDirtyData=!0);n(this,\"afterUpdate\");A(c,!0)&&e.redraw(u?void 0:!1)}setName(b){this.name=this.options.name=this.userOptions.name=b;this.chart.isDirtyLegend=!0}hasOptionChanged(b){const a=this.options[b],c=this.chart.options.plotOptions,d=this.userOptions[b];return d?a!==d:a!==\nA(c&&c[this.type]&&c[this.type][b],c&&c.series&&c.series[b],a)}onMouseOver(){const b=this.chart,a=b.hoverSeries;b.pointer.setHoverChartIndex();if(a&&a!==this)a.onMouseOut();this.options.events.mouseOver&&n(this,\"mouseOver\");this.setState(\"hover\");b.hoverSeries=this}onMouseOut(){const b=this.options,a=this.chart,c=a.tooltip,d=a.hoverPoint;a.hoverSeries=null;if(d)d.onMouseOut();this&&b.events.mouseOut&&n(this,\"mouseOut\");!c||this.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide();a.series.forEach(function(b){b.setState(\"\",\n!0)})}setState(b,a){const c=this;var d=c.options;const f=c.graph,e=d.inactiveOtherPoints,g=d.states,k=A(g[b||\"normal\"]&&g[b||\"normal\"].animation,c.chart.options.chart.animation);let h=d.lineWidth,n=0,l=d.opacity;b=b||\"\";if(c.state!==b&&([c.group,c.markerGroup,c.dataLabelsGroup].forEach(function(a){a&&(c.state&&a.removeClass(\"highcharts-series-\"+c.state),b&&a.addClass(\"highcharts-series-\"+b))}),c.state=b,!c.chart.styledMode)){if(g[b]&&!1===g[b].enabled)return;b&&(h=g[b].lineWidth||h+(g[b].lineWidthPlus||\n0),l=A(g[b].opacity,l));if(f&&!f.dashstyle&&T(h))for(d={\"stroke-width\":h},f.animate(d,k);c[\"zone-graph-\"+n];)c[\"zone-graph-\"+n].animate(d,k),n+=1;e||[c.group,c.markerGroup,c.dataLabelsGroup,c.labelBySeries].forEach(function(b){b&&b.animate({opacity:l},k)})}a&&e&&c.points&&c.setAllPointsToState(b||void 0)}setAllPointsToState(b){this.points.forEach(function(a){a.setState&&a.setState(b)})}setVisible(b,a){const c=this,d=c.chart,f=d.options.chart.ignoreHiddenSeries,e=c.visible,g=(c.visible=b=c.options.visible=\nc.userOptions.visible=\"undefined\"===typeof b?!e:b)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(b){if(c[b])c[b][g]()});if(d.hoverSeries===c||(d.hoverPoint&&d.hoverPoint.series)===c)c.onMouseOut();c.legendItem&&d.legend.colorizeItem(c,b);c.isDirty=!0;c.options.stacking&&d.series.forEach(function(b){b.options.stacking&&b.visible&&(b.isDirty=!0)});c.linkedSeries.forEach(function(a){a.setVisible(b,!1)});f&&(d.isDirtyBox=!0);n(c,g);!1!==a&&d.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(b){this.selected=\nb=this.options.selected=\"undefined\"===typeof b?!this.selected:b;this.checkbox&&(this.checkbox.checked=b);n(this,b?\"select\":\"unselect\")}shouldShowTooltip(b,a,c={}){c.series=this;c.visiblePlotOnly=!0;return this.chart.isInsidePlot(b,a,c)}drawLegendSymbol(b,a){var c;null===(c=C[this.options.legendSymbol||\"rectangle\"])||void 0===c?void 0:c.call(this,b,a)}}aa.defaultOptions=H;aa.types=B.seriesTypes;aa.registerType=B.registerSeriesType;f(aa.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,\ncropShoulder:1,directTouch:!1,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:z,requireSorting:!0,sorted:!0});B.series=aa;\"\";\"\";return aa});M(a,\"Core/Chart/Chart.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Axis/Axis.js\"],a[\"Core/Defaults.js\"],a[\"Core/Templating.js\"],a[\"Core/Foundation.js\"],a[\"Core/Globals.js\"],a[\"Core/Renderer/RendererRegistry.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Time.js\"],\na[\"Core/Utilities.js\"],a[\"Core/Renderer/HTML/AST.js\"]],function(a,y,I,L,C,z,H,B,u,v,l,p,t){const {animate:m,animObject:h,setAnimation:g}=a,{defaultOptions:e,defaultTime:w}=I,{numberFormat:x}=L,{registerEventOptions:F}=C,{charts:d,doc:k,marginNames:r,svg:q,win:G}=z,{seriesTypes:b}=u,{addEvent:f,attr:c,createElement:n,css:P,defined:D,diffObjects:K,discardElement:X,erase:T,error:Z,extend:V,find:Y,fireEvent:A,getStyle:M,isArray:ia,isNumber:ba,isObject:aa,isString:J,merge:N,objectEach:O,pick:S,pInt:W,\nrelativeLength:ha,removeEvent:da,splat:fa,syncTimeout:ka,uniqueKey:ca}=p;class ea{static chart(b,a,c){return new ea(b,a,c)}constructor(b,a,c){this.series=this.renderTo=this.renderer=this.pointer=this.pointCount=this.plotWidth=this.plotTop=this.plotLeft=this.plotHeight=this.plotBox=this.options=this.numberFormatter=this.margin=this.labelCollectors=this.isResizing=this.index=this.eventOptions=this.container=this.colorCounter=this.clipBox=this.chartWidth=this.chartHeight=this.bounds=this.axisOffset=\nthis.axes=void 0;this.sharedClips={};this.zooming=this.yAxis=this.xAxis=this.userOptions=this.titleOffset=this.time=this.symbolCounter=this.spacingBox=this.spacing=void 0;this.getArgs(b,a,c)}getArgs(b,a,c){J(b)||b.nodeName?(this.renderTo=b,this.init(a,c)):this.init(b,a)}setZoomOptions(){const b=this.options.chart,a=b.zooming;this.zooming=Object.assign(Object.assign({},a),{type:S(b.zoomType,a.type),key:S(b.zoomKey,a.key),pinchType:S(b.pinchType,a.pinchType),singleTouch:S(b.zoomBySingleTouch,a.singleTouch,\n!1),resetButton:N(a.resetButton,b.resetZoomButton)})}init(b,a){A(this,\"init\",{args:arguments},function(){const c=N(e,b),f=c.chart;this.userOptions=V({},b);this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=a;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.time=b.time&&Object.keys(b.time).length?new l(b.time):z.time;this.numberFormatter=f.numberFormatter||x;this.styledMode=f.styledMode;this.hasCartesianSeries=f.showAxes;this.index=d.length;\nd.push(this);z.chartCount++;F(this,f);this.xAxis=[];this.yAxis=[];this.pointCount=this.colorCounter=this.symbolCounter=0;this.setZoomOptions();A(this,\"afterInit\");this.firstRender()})}initSeries(a){var c=this.options.chart;c=a.type||c.type;const d=b[c];d||Z(17,!0,this,{missingModuleFor:c});c=new d;\"function\"===typeof c.init&&c.init(this,a);return c}setSeriesData(){this.getSeriesOrderByLinks().forEach(function(b){b.points||b.data||!b.enabledDataSorting||b.setData(b.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(b,\na){return b.linkedSeries.length||a.linkedSeries.length?a.linkedSeries.length-b.linkedSeries.length:0})}orderItems(b,a=0){const c=this[b],d=this.options[b]=fa(this.options[b]).slice();b=this.userOptions[b]=this.userOptions[b]?fa(this.userOptions[b]).slice():[];this.hasRendered&&(d.splice(a),b.splice(a));if(c)for(let f=a,e=c.length;f<e;++f)if(a=c[f])a.index=f,a instanceof B&&(a.name=a.getName()),a.options.isInternal||(d[f]=a.options,b[f]=a.userOptions)}isInsidePlot(b,a,c={}){const {inverted:d,plotBox:f,\nplotLeft:e,plotTop:g,scrollablePlotBox:k}=this;var h=0;let n=0;c.visiblePlotOnly&&this.scrollingContainer&&({scrollLeft:h,scrollTop:n}=this.scrollingContainer);const l=c.series,m=c.visiblePlotOnly&&k||f;var q=c.inverted?a:b;a=c.inverted?b:a;b={x:q,y:a,isInsidePlot:!0,options:c};if(!c.ignoreX){const a=l&&(d&&!this.polar?l.yAxis:l.xAxis)||{pos:e,len:Infinity};q=c.paneCoordinates?a.pos+q:e+q;q>=Math.max(h+e,a.pos)&&q<=Math.min(h+e+m.width,a.pos+a.len)||(b.isInsidePlot=!1)}!c.ignoreY&&b.isInsidePlot&&\n(h=!d&&c.axis&&!c.axis.isXAxis&&c.axis||l&&(d?l.xAxis:l.yAxis)||{pos:g,len:Infinity},c=c.paneCoordinates?h.pos+a:g+a,c>=Math.max(n+g,h.pos)&&c<=Math.min(n+g+m.height,h.pos+h.len)||(b.isInsidePlot=!1));A(this,\"afterIsInsidePlot\",b);return b.isInsidePlot}redraw(b){A(this,\"beforeRedraw\");const a=this.hasCartesianSeries?this.axes:this.colorAxis||[],c=this.series,d=this.pointer,f=this.legend,e=this.userOptions.legend,k=this.renderer,h=k.isHidden(),n=[];let l,m,q=this.isDirtyBox,p=this.isDirtyLegend,r;\nk.rootFontSize=k.boxWrapper.getStyle(\"font-size\");this.setResponsive&&this.setResponsive(!1);g(this.hasRendered?b:!1,this);h&&this.temporaryDisplay();this.layOutTitles(!1);for(b=c.length;b--;)if(r=c[b],r.options.stacking||r.options.centerInCategory)if(m=!0,r.isDirty){l=!0;break}if(l)for(b=c.length;b--;)r=c[b],r.options.stacking&&(r.isDirty=!0);c.forEach(function(b){b.isDirty&&(\"point\"===b.options.legendType?(\"function\"===typeof b.updateTotals&&b.updateTotals(),p=!0):e&&(e.labelFormatter||e.labelFormat)&&\n(p=!0));b.isDirtyData&&A(b,\"updatedData\")});p&&f&&f.options.enabled&&(f.render(),this.isDirtyLegend=!1);m&&this.getStacks();a.forEach(function(b){b.updateNames();b.setScale()});this.getMargins();a.forEach(function(b){b.isDirty&&(q=!0)});a.forEach(function(b){const a=b.min+\",\"+b.max;b.extKey!==a&&(b.extKey=a,n.push(function(){A(b,\"afterSetExtremes\",V(b.eventArgs,b.getExtremes()));delete b.eventArgs}));(q||m)&&b.redraw()});q&&this.drawChartBox();A(this,\"predraw\");c.forEach(function(b){(q||b.isDirty)&&\nb.visible&&b.redraw();b.isDirtyData=!1});d&&d.reset(!0);k.draw();A(this,\"redraw\");A(this,\"render\");h&&this.temporaryDisplay(!0);n.forEach(function(b){b.call()})}get(b){function a(a){return a.id===b||a.options&&a.options.id===b}const c=this.series;let d=Y(this.axes,a)||Y(this.series,a);for(let b=0;!d&&b<c.length;b++)d=Y(c[b].points||[],a);return d}getAxes(){const b=this.options;A(this,\"getAxes\");for(const a of[\"xAxis\",\"yAxis\"]){const c=b[a]=fa(b[a]||{});for(const b of c)new y(this,b,a)}A(this,\"afterGetAxes\")}getSelectedPoints(){return this.series.reduce((b,\na)=>{a.getPointsCollection().forEach(a=>{S(a.selectedStaging,a.selected)&&b.push(a)});return b},[])}getSelectedSeries(){return this.series.filter(function(b){return b.selected})}setTitle(b,a,c){this.applyDescription(\"title\",b);this.applyDescription(\"subtitle\",a);this.applyDescription(\"caption\",void 0);this.layOutTitles(c)}applyDescription(b,a){const c=this,d=this.options[b]=N(this.options[b],a);let f=this[b];f&&a&&(this[b]=f=f.destroy());d&&!f&&(f=this.renderer.text(d.text,0,0,d.useHTML).attr({align:d.align,\n\"class\":\"highcharts-\"+b,zIndex:d.zIndex||4}).add(),f.update=function(a,d){c.applyDescription(b,a);c.layOutTitles(d)},this.styledMode||f.css(V(\"title\"===b?{fontSize:this.options.isStock?\"1em\":\"1.2em\"}:{},d.style)),this[b]=f)}layOutTitles(b=!0){const a=[0,0,0],c=this.renderer,d=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(b){const f=this[b],e=this.options[b],g=e.verticalAlign||\"top\";b=\"title\"===b?\"top\"===g?-3:0:\"top\"===g?a[0]+2:0;if(f){f.css({width:(e.width||d.width+(e.widthAdjust||\n0))+\"px\"});const k=c.fontMetrics(f).b,h=Math.round(f.getBBox(e.useHTML).height);f.align(V({y:\"bottom\"===g?k:b+k,height:h},e),!1,\"spacingBox\");e.floating||(\"top\"===g?a[0]=Math.ceil(a[0]+h):\"bottom\"===g&&(a[2]=Math.ceil(a[2]+h)))}},this);a[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(a[0]+=this.options.title.margin);a[2]&&\"bottom\"===this.options.caption.verticalAlign&&(a[2]+=this.options.caption.margin);const f=!this.titleOffset||this.titleOffset.join(\",\")!==a.join(\",\");this.titleOffset=\na;A(this,\"afterLayOutTitles\");!this.isDirtyBox&&f&&(this.isDirtyBox=this.isDirtyLegend=f,this.hasRendered&&b&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:M(this.renderTo,\"width\",!0)||0,height:M(this.renderTo,\"height\",!0)||0}}getChartSize(){var b=this.options.chart;const a=b.width;b=b.height;const c=this.getContainerBox();this.chartWidth=Math.max(0,a||c.width||600);this.chartHeight=Math.max(0,ha(b,this.chartWidth)||(1<c.height?c.height:400));this.containerBox=c}temporaryDisplay(b){let a=\nthis.renderTo;if(b)for(;a&&a.style;)a.hcOrigStyle&&(P(a,a.hcOrigStyle),delete a.hcOrigStyle),a.hcOrigDetached&&(k.body.removeChild(a),a.hcOrigDetached=!1),a=a.parentNode;else for(;a&&a.style;){k.body.contains(a)||a.parentNode||(a.hcOrigDetached=!0,k.body.appendChild(a));if(\"none\"===M(a,\"display\",!1)||a.hcOricDetached)a.hcOrigStyle={display:a.style.display,height:a.style.height,overflow:a.style.overflow},b={display:\"block\",overflow:\"hidden\"},a!==this.renderTo&&(b.height=0),P(a,b),a.offsetWidth||a.style.setProperty(\"display\",\n\"block\",\"important\");a=a.parentNode;if(a===k.body)break}}setClassName(b){this.container.className=\"highcharts-container \"+(b||\"\")}getContainer(){const b=this.options,a=b.chart;var f=ca();let e,h=this.renderTo;h||(this.renderTo=h=a.renderTo);J(h)&&(this.renderTo=h=k.getElementById(h));h||Z(13,!0,this);var l=W(c(h,\"data-highcharts-chart\"));ba(l)&&d[l]&&d[l].hasRendered&&d[l].destroy();c(h,\"data-highcharts-chart\",this.index);h.innerHTML=t.emptyHTML;a.skipClone||h.offsetWidth||this.temporaryDisplay();\nthis.getChartSize();l=this.chartWidth;const m=this.chartHeight;P(h,{overflow:\"hidden\"});this.styledMode||(e=V({position:\"relative\",overflow:\"hidden\",width:l+\"px\",height:m+\"px\",textAlign:\"left\",lineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\",userSelect:\"none\",\"touch-action\":\"manipulation\",outline:\"none\"},a.style||{}));this.container=f=n(\"div\",{id:f},e,h);this._cursor=f.style.cursor;this.renderer=new (a.renderer||!q?H.getRendererType(a.renderer):v)(f,l,m,void 0,a.forExport,\nb.exporting&&b.exporting.allowHTML,this.styledMode);this.containerBox=this.getContainerBox();g(void 0,this);this.setClassName(a.className);if(this.styledMode)for(const a in b.defs)this.renderer.definition(b.defs[a]);else this.renderer.setStyle(a.style);this.renderer.chartIndex=this.index;A(this,\"afterGetContainer\")}getMargins(b){const {spacing:a,margin:c,titleOffset:d}=this;this.resetMargins();d[0]&&!D(c[0])&&(this.plotTop=Math.max(this.plotTop,d[0]+a[0]));d[2]&&!D(c[2])&&(this.marginBottom=Math.max(this.marginBottom,\nd[2]+a[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(c,a);A(this,\"getMargins\");b||this.getAxisMargins()}getAxisMargins(){const b=this,a=b.axisOffset=[0,0,0,0],c=b.colorAxis,d=b.margin,f=function(b){b.forEach(function(b){b.visible&&b.getOffset()})};b.hasCartesianSeries?f(b.axes):c&&c.length&&f(c);r.forEach(function(c,f){D(d[f])||(b[c]+=a[f])});b.setChartSize()}getOptions(){return K(this.userOptions,e)}reflow(b){const a=this;var c=a.options.chart;c=D(c.width)&&D(c.height);const d=\na.containerBox,f=a.getContainerBox();delete a.pointer.chartPosition;if(!c&&!a.isPrinting&&d&&f.width){if(f.width!==d.width||f.height!==d.height)p.clearTimeout(a.reflowTimeout),a.reflowTimeout=ka(function(){a.container&&a.setSize(void 0,void 0,!1)},b?100:0);a.containerBox=f}}setReflow(){const b=this;var a=a=>{var c;(null===(c=b.options)||void 0===c?0:c.chart.reflow)&&b.hasLoaded&&b.reflow(a)};\"function\"===typeof ResizeObserver?(new ResizeObserver(a)).observe(b.renderTo):(a=f(G,\"resize\",a),f(this,\"destroy\",\na))}setSize(b,a,c){const d=this,f=d.renderer;d.isResizing+=1;g(c,d);c=f.globalAnimation;d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;\"undefined\"!==typeof b&&(d.options.chart.width=b);\"undefined\"!==typeof a&&(d.options.chart.height=a);d.getChartSize();d.styledMode||(c?m:P)(d.container,{width:d.chartWidth+\"px\",height:d.chartHeight+\"px\"},c);d.setChartSize(!0);f.setSize(d.chartWidth,d.chartHeight,c);d.axes.forEach(function(b){b.isDirty=!0;b.setScale()});d.isDirtyLegend=!0;d.isDirtyBox=\n!0;d.layOutTitles();d.getMargins();d.redraw(c);d.oldChartHeight=null;A(d,\"resize\");ka(function(){d&&A(d,\"endResize\",null,function(){--d.isResizing})},h(c).duration)}setChartSize(b){var a=this.inverted;const c=this.renderer;var d=this.chartWidth,f=this.chartHeight;const e=this.options.chart,g=this.spacing,k=this.clipOffset;let h,n,l,m;this.plotLeft=h=Math.round(this.plotLeft);this.plotTop=n=Math.round(this.plotTop);this.plotWidth=l=Math.max(0,Math.round(d-h-this.marginRight));this.plotHeight=m=Math.max(0,\nMath.round(f-n-this.marginBottom));this.plotSizeX=a?m:l;this.plotSizeY=a?l:m;this.plotBorderWidth=e.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:f-g[0]-g[2]};this.plotBox=c.plotBox={x:h,y:n,width:l,height:m};a=2*Math.floor(this.plotBorderWidth/2);d=Math.ceil(Math.max(a,k[3])/2);f=Math.ceil(Math.max(a,k[0])/2);this.clipBox={x:d,y:f,width:Math.floor(this.plotSizeX-Math.max(a,k[1])/2-d),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(a,k[2])/2-f))};b||\n(this.axes.forEach(function(b){b.setAxisSize();b.setAxisTranslation()}),c.alignElements());A(this,\"afterSetChartSize\",{skipAxes:b})}resetMargins(){A(this,\"resetMargins\");const b=this,a=b.options.chart;[\"margin\",\"spacing\"].forEach(function(c){const d=a[c],f=aa(d)?d:[d,d,d,d];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(d,e){b[c][e]=S(a[c+d],f[e])})});r.forEach(function(a,c){b[a]=S(b.margin[c],b.spacing[c])});b.axisOffset=[0,0,0,0];b.clipOffset=[0,0,0,0]}drawChartBox(){const b=this.options.chart,\na=this.renderer,c=this.chartWidth,d=this.chartHeight,f=this.styledMode,e=this.plotBGImage;var g=b.backgroundColor;const k=b.plotBackgroundColor,h=b.plotBackgroundImage,n=this.plotLeft,l=this.plotTop,m=this.plotWidth,q=this.plotHeight,p=this.plotBox,r=this.clipRect,t=this.clipBox;let w=this.chartBackground,v=this.plotBackground,u=this.plotBorder,x,D,E=\"animate\";w||(this.chartBackground=w=a.rect().addClass(\"highcharts-background\").add(),E=\"attr\");if(f)x=D=w.strokeWidth();else{x=b.borderWidth||0;D=x+\n(b.shadow?8:0);g={fill:g||\"none\"};if(x||w[\"stroke-width\"])g.stroke=b.borderColor,g[\"stroke-width\"]=x;w.attr(g).shadow(b.shadow)}w[E]({x:D/2,y:D/2,width:c-D-x%2,height:d-D-x%2,r:b.borderRadius});E=\"animate\";v||(E=\"attr\",this.plotBackground=v=a.rect().addClass(\"highcharts-plot-background\").add());v[E](p);f||(v.attr({fill:k||\"none\"}).shadow(b.plotShadow),h&&(e?(h!==e.attr(\"href\")&&e.attr(\"href\",h),e.animate(p)):this.plotBGImage=a.image(h,n,l,m,q).add()));r?r.animate({width:t.width,height:t.height}):\nthis.clipRect=a.clipRect(t);E=\"animate\";u||(E=\"attr\",this.plotBorder=u=a.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add());f||u.attr({stroke:b.plotBorderColor,\"stroke-width\":b.plotBorderWidth||0,fill:\"none\"});u[E](u.crisp({x:n,y:l,width:m,height:q},-u.strokeWidth()));this.isDirtyBox=!1;A(this,\"afterDrawChartBox\")}propFromSeries(){const a=this,c=a.options.chart,d=a.options.series;let f,e,g;[\"inverted\",\"angular\",\"polar\"].forEach(function(k){e=b[c.type];g=c[k]||e&&e.prototype[k];for(f=\nd&&d.length;!g&&f--;)(e=b[d[f].type])&&e.prototype[k]&&(g=!0);a[k]=g})}linkSeries(b){const a=this,c=a.series;c.forEach(function(b){b.linkedSeries.length=0});c.forEach(function(b){let c=b.options.linkedTo;J(c)&&(c=\":previous\"===c?a.series[b.index-1]:a.get(c))&&c.linkedParent!==b&&(c.linkedSeries.push(b),b.linkedParent=c,c.enabledDataSorting&&b.setDataSortingOptions(),b.visible=S(b.options.visible,c.options.visible,b.visible))});A(this,\"afterLinkSeries\",{isUpdating:b})}renderSeries(){this.series.forEach(function(b){b.translate();\nb.render()})}render(){const b=this.axes,a=this.colorAxis,c=this.renderer,d=function(b){b.forEach(function(b){b.visible&&b.render()})};let f=0;this.setTitle();A(this,\"beforeMargins\");this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();const e=this.plotWidth;b.some(function(b){if(b.horiz&&b.visible&&b.options.labels.enabled&&b.series.length)return f=21,!0});const g=this.plotHeight=Math.max(this.plotHeight-f,0);b.forEach(function(b){b.setScale()});this.getAxisMargins();const k=1.1<\ne/this.plotWidth,h=1.05<g/this.plotHeight;if(k||h)b.forEach(function(b){(b.horiz&&k||!b.horiz&&h)&&b.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?d(b):a&&a.length&&d(a);this.seriesGroup||(this.seriesGroup=c.g(\"series-group\").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add());this.renderSeries();this.addCredits();this.setResponsive&&this.setResponsive();this.hasRendered=!0}addCredits(b){const a=this,c=N(!0,this.options.credits,b);c.enabled&&\n!this.credits&&(this.credits=this.renderer.text(c.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){c.href&&(G.location.href=c.href)}).attr({align:c.position.align,zIndex:8}),a.styledMode||this.credits.css(c.style),this.credits.add().align(c.position),this.credits.update=function(b){a.credits=a.credits.destroy();a.addCredits(b)})}destroy(){const b=this,a=b.axes,c=b.series,f=b.container,e=f&&f.parentNode;let g;A(b,\"destroy\");b.renderer.forExport?T(d,b):d[b.index]=\nvoid 0;z.chartCount--;b.renderTo.removeAttribute(\"data-highcharts-chart\");da(b);for(g=a.length;g--;)a[g]=a[g].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(g=c.length;g--;)c[g]=c[g].destroy();\"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function(a){const c=b[a];c&&c.destroy&&(b[a]=c.destroy())});f&&(f.innerHTML=t.emptyHTML,da(f),e&&X(f));\nO(b,function(a,c){delete b[c]})}firstRender(){const b=this,a=b.options;b.getContainer();b.resetMargins();b.setChartSize();b.propFromSeries();b.getAxes();const c=ia(a.series)?a.series:[];a.series=[];c.forEach(function(a){b.initSeries(a)});b.linkSeries();b.setSeriesData();A(b,\"beforeRender\");b.render();b.pointer.getChartPosition();if(!b.renderer.imgCount&&!b.hasLoaded)b.onload();b.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(b){b&&\"undefined\"!==typeof this.index&&\nb.apply(this,[this])},this);A(this,\"load\");A(this,\"render\");D(this.index)&&this.setReflow();this.warnIfA11yModuleNotLoaded();this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){const {options:b,title:a}=this;b&&!this.accessibility&&(this.renderer.boxWrapper.attr({role:\"img\",\"aria-label\":(a&&a.element.textContent||\"\").replace(/</g,\"&lt;\")}),b.accessibility&&!1===b.accessibility.enabled||Z('Highcharts warning: Consider including the \"accessibility.js\" module to make your chart more usable for people with disabilities. Set the \"accessibility.enabled\" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',\n!1,this))}addSeries(b,a,c){const d=this;let f;b&&(a=S(a,!0),A(d,\"addSeries\",{options:b},function(){f=d.initSeries(b);d.isDirtyLegend=!0;d.linkSeries();f.enabledDataSorting&&f.setData(b.data,!1);A(d,\"afterAddSeries\",{series:f});a&&d.redraw(c)}));return f}addAxis(b,a,c,d){return this.createAxis(a?\"xAxis\":\"yAxis\",{axis:b,redraw:c,animation:d})}addColorAxis(b,a,c){return this.createAxis(\"colorAxis\",{axis:b,redraw:a,animation:c})}createAxis(b,a){b=new y(this,a.axis,b);S(a.redraw,!0)&&this.redraw(a.animation);\nreturn b}showLoading(b){const a=this,c=a.options,d=c.loading,e=function(){g&&P(g,{left:a.plotLeft+\"px\",top:a.plotTop+\"px\",width:a.plotWidth+\"px\",height:a.plotHeight+\"px\"})};let g=a.loadingDiv,k=a.loadingSpan;g||(a.loadingDiv=g=n(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,a.container));k||(a.loadingSpan=k=n(\"span\",{className:\"highcharts-loading-inner\"},null,g),f(a,\"redraw\",e));g.className=\"highcharts-loading\";t.setElementHTML(k,S(b,c.lang.loading,\"\"));a.styledMode||(P(g,\nV(d.style,{zIndex:10})),P(k,d.labelStyle),a.loadingShown||(P(g,{opacity:0,display:\"\"}),m(g,{opacity:d.style.opacity||.5},{duration:d.showDuration||0})));a.loadingShown=!0;e()}hideLoading(){const b=this.options,a=this.loadingDiv;a&&(a.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||m(a,{opacity:0},{duration:b.loading.hideDuration||100,complete:function(){P(a,{display:\"none\"})}}));this.loadingShown=!1}update(b,a,c,d){const f=this,e={credits:\"addCredits\",title:\"setTitle\",subtitle:\"setSubtitle\",\ncaption:\"setCaption\"},g=b.isResponsiveOptions,k=[];let h,n;A(f,\"update\",{options:b});g||f.setResponsive(!1,!0);b=K(b,f.options);f.userOptions=N(f.userOptions,b);var m=b.chart;if(m){N(!0,f.options.chart,m);this.setZoomOptions();\"className\"in m&&f.setClassName(m.className);if(\"inverted\"in m||\"polar\"in m||\"type\"in m){f.propFromSeries();var q=!0}\"alignTicks\"in m&&(q=!0);\"events\"in m&&F(this,m);O(m,function(b,a){-1!==f.propsRequireUpdateSeries.indexOf(\"chart.\"+a)&&(h=!0);-1!==f.propsRequireDirtyBox.indexOf(a)&&\n(f.isDirtyBox=!0);-1!==f.propsRequireReflow.indexOf(a)&&(g?f.isDirtyBox=!0:n=!0)});!f.styledMode&&m.style&&f.renderer.setStyle(f.options.chart.style||{})}!f.styledMode&&b.colors&&(this.options.colors=b.colors);b.time&&(this.time===w&&(this.time=new l(b.time)),N(!0,f.options.time,b.time));O(b,function(a,c){if(f[c]&&\"function\"===typeof f[c].update)f[c].update(a,!1);else if(\"function\"===typeof f[e[c]])f[e[c]](a);else\"colors\"!==c&&-1===f.collectionsWithUpdate.indexOf(c)&&N(!0,f.options[c],b[c]);\"chart\"!==\nc&&-1!==f.propsRequireUpdateSeries.indexOf(c)&&(h=!0)});this.collectionsWithUpdate.forEach(function(a){b[a]&&(fa(b[a]).forEach(function(b,d){const e=D(b.id);let g;e&&(g=f.get(b.id));!g&&f[a]&&(g=f[a][S(b.index,d)])&&(e&&D(g.options.id)||g.options.isInternal)&&(g=void 0);g&&g.coll===a&&(g.update(b,!1),c&&(g.touched=!0));!g&&c&&f.collectionsWithInit[a]&&(f.collectionsWithInit[a][0].apply(f,[b].concat(f.collectionsWithInit[a][1]||[]).concat([!1])).touched=!0)}),c&&f[a].forEach(function(b){b.touched||\nb.options.isInternal?delete b.touched:k.push(b)}))});k.forEach(function(b){b.chart&&b.remove&&b.remove(!1)});q&&f.axes.forEach(function(b){b.update({},!1)});h&&f.getSeriesOrderByLinks().forEach(function(b){b.chart&&b.update({},!1)},this);q=m&&m.width;m=m&&(J(m.height)?ha(m.height,q||f.chartWidth):m.height);n||ba(q)&&q!==f.chartWidth||ba(m)&&m!==f.chartHeight?f.setSize(q,m,d):S(a,!0)&&f.redraw(d);A(f,\"afterUpdate\",{options:b,redraw:a,animation:d})}setSubtitle(b,a){this.applyDescription(\"subtitle\",\nb);this.layOutTitles(a)}setCaption(b,a){this.applyDescription(\"caption\",b);this.layOutTitles(a)}showResetZoom(){function b(){a.zoomOut()}const a=this,c=e.lang,d=a.zooming.resetButton,f=d.theme,g=\"chart\"===d.relativeTo||\"spacingBox\"===d.relativeTo?null:\"scrollablePlotBox\";A(this,\"beforeShowResetZoom\",null,function(){a.resetZoomButton=a.renderer.button(c.resetZoom,null,null,b,f).attr({align:d.position.align,title:c.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(d.position,!1,g)});A(this,\n\"afterShowResetZoom\")}zoomOut(){A(this,\"selection\",{resetSelection:!0},this.zoom)}zoom(b){const a=this,c=a.pointer;let d=!1,f;!b||b.resetSelection?(a.axes.forEach(function(b){f=b.zoom()}),c.initiated=!1):b.xAxis.concat(b.yAxis).forEach(function(b){const e=b.axis;if(c[e.isXAxis?\"zoomX\":\"zoomY\"]&&D(c.mouseDownX)&&D(c.mouseDownY)&&a.isInsidePlot(c.mouseDownX-a.plotLeft,c.mouseDownY-a.plotTop,{axis:e})||!D(a.inverted?c.mouseDownX:c.mouseDownY))f=e.zoom(b.min,b.max),e.displayBtn&&(d=!0)});const e=a.resetZoomButton;\nd&&!e?a.showResetZoom():!d&&aa(e)&&(a.resetZoomButton=e.destroy());f&&a.redraw(S(a.options.chart.animation,b&&b.animation,100>a.pointCount))}pan(b,a){const c=this,d=c.hoverPoints;a=\"object\"===typeof a?a:{enabled:a,type:\"x\"};const f=c.options.chart;f&&f.panning&&(f.panning=a);const e=a.type;let g;A(this,\"pan\",{originalEvent:b},function(){d&&d.forEach(function(b){b.setState()});let a=c.xAxis;\"xy\"===e?a=a.concat(c.yAxis):\"y\"===e&&(a=c.yAxis);const f={};a.forEach(function(a){if(a.options.panningEnabled&&\n!a.options.isInternal){var d=a.horiz,k=b[d?\"chartX\":\"chartY\"];d=d?\"mouseDownX\":\"mouseDownY\";var h=c[d],n=a.minPointOffset||0,l=a.reversed&&!c.inverted||!a.reversed&&c.inverted?-1:1,m=a.getExtremes(),q=a.toValue(h-k,!0)+n*l,p=a.toValue(h+a.len-k,!0)-(n*l||a.isXAxis&&a.pointRangePadding||0),r=p<q;l=a.hasVerticalPanning();h=r?p:q;q=r?q:p;var t=a.panningState;!l||a.isXAxis||t&&!t.isDirty||a.series.forEach(function(b){var a=b.getProcessedData(!0);a=b.getExtremes(a.yData,!0);t||(t={startMin:Number.MAX_VALUE,\nstartMax:-Number.MAX_VALUE});ba(a.dataMin)&&ba(a.dataMax)&&(t.startMin=Math.min(S(b.options.threshold,Infinity),a.dataMin,t.startMin),t.startMax=Math.max(S(b.options.threshold,-Infinity),a.dataMax,t.startMax))});l=Math.min(S(t&&t.startMin,m.dataMin),n?m.min:a.toValue(a.toPixels(m.min)-a.minPixelPadding));p=Math.max(S(t&&t.startMax,m.dataMax),n?m.max:a.toValue(a.toPixels(m.max)+a.minPixelPadding));a.panningState=t;a.isOrdinal||(n=l-h,0<n&&(q+=n,h=l),n=q-p,0<n&&(q=p,h-=n),a.series.length&&h!==m.min&&\nq!==m.max&&h>=l&&q<=p&&(a.setExtremes(h,q,!1,!1,{trigger:\"pan\"}),!c.resetZoomButton&&h!==l&&q!==p&&e.match(\"y\")&&(c.showResetZoom(),a.displayBtn=!1),g=!0),f[d]=k)}});O(f,(b,a)=>{c[a]=b});g&&c.redraw(!1);P(c.container,{cursor:\"move\"})})}}V(ea.prototype,{callbacks:[],collectionsWithInit:{xAxis:[ea.prototype.addAxis,[!0]],yAxis:[ea.prototype.addAxis,[!1]],series:[ea.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),\npropsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),propsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \")});\"\";return ea});M(a,\"Extensions/ScrollablePlotArea.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Axis/Axis.js\"],a[\"Core/Chart/Chart.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Renderer/RendererRegistry.js\"],a[\"Core/Utilities.js\"]],\nfunction(a,y,I,L,C,z){const {stop:x}=a,{addEvent:B,createElement:u,defined:v,merge:l,pick:p}=z;B(I,\"afterSetChartSize\",function(a){var m=this.options.chart.scrollablePlotArea,h=m&&m.minWidth;m=m&&m.minHeight;let g;if(!this.renderer.forExport){if(h){if(this.scrollablePixelsX=h=Math.max(0,h-this.chartWidth))this.scrollablePlotBox=this.renderer.scrollablePlotBox=l(this.plotBox),this.plotBox.width=this.plotWidth+=h,this.inverted?this.clipBox.height+=h:this.clipBox.width+=h,g={1:{name:\"right\",value:h}}}else m&&\n(this.scrollablePixelsY=h=Math.max(0,m-this.chartHeight),v(h)&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=l(this.plotBox),this.plotBox.height=this.plotHeight+=h,this.inverted?this.clipBox.width+=h:this.clipBox.height+=h,g={2:{name:\"bottom\",value:h}}));g&&!a.skipAxes&&this.axes.forEach(function(a){g[a.side]?a.getPlotLinePath=function(){let e=g[a.side].name,h=this[e],l;this[e]=h-g[a.side].value;l=y.prototype.getPlotLinePath.apply(this,arguments);this[e]=h;return l}:(a.setAxisSize(),a.setAxisTranslation())})}});\nB(I,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});I.prototype.setUpScrolling=function(){const a={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(a.overflowX=\"auto\");this.scrollablePixelsY&&(a.overflowY=\"auto\");this.scrollingParent=u(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},this.renderTo);this.scrollingContainer=\nu(\"div\",{className:\"highcharts-scrolling\"},a,this.scrollingParent);let l;B(this.scrollingContainer,\"scroll\",()=>{this.pointer&&(delete this.pointer.chartPosition,this.hoverPoint&&(l=this.hoverPoint),this.pointer.runPointActions(void 0,l,!0))});this.innerContainer=u(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=null};I.prototype.moveFixedElements=function(){let a=this.container,l=this.fixedRenderer,h=\n\".highcharts-breadcrumbs-group .highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),g;this.scrollablePixelsX&&!this.inverted?g=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?g=\".highcharts-xaxis\":this.scrollablePixelsY&&\n!this.inverted?g=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(g=\".highcharts-yaxis\");g&&h.push(`${g}:not(.highcharts-radial-axis)`,`${g}-labels:not(.highcharts-radial-axis-labels)`);h.forEach(function(e){[].forEach.call(a.querySelectorAll(e),function(a){(a.namespaceURI===l.SVG_NS?l.box:l.box.parentNode).appendChild(a);a.style.pointerEvents=\"auto\"})})};I.prototype.applyFixed=function(){var a=!this.fixedDiv,l=this.options.chart,h=l.scrollablePlotArea,g=C.getRendererType();a?(this.fixedDiv=\nu(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(l.style&&l.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=l=new g(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=l.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":p(h.opacity,\n.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),B(this,\"afterShowResetZoom\",this.moveFixedElements),B(this,\"afterApplyDrilldown\",this.moveFixedElements),B(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);if(this.scrollableDirty||a)this.scrollableDirty=!1,this.moveFixedElements();l=this.chartWidth+(this.scrollablePixelsX||0);g=this.chartHeight+(this.scrollablePixelsY||0);x(this.container);this.container.style.width=l+\"px\";\nthis.container.style.height=g+\"px\";this.renderer.boxWrapper.attr({width:l,height:g,viewBox:[0,0,l,g].join(\" \")});this.chartBackground.attr({width:l,height:g});this.scrollingContainer.style.height=this.chartHeight+\"px\";a&&(h.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*h.scrollPositionX),h.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*h.scrollPositionY));g=this.axisOffset;a=this.plotTop-g[0]-1;h=this.plotLeft-g[3]-1;l=this.plotTop+this.plotHeight+\ng[2]+1;g=this.plotLeft+this.plotWidth+g[1]+1;let e=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),w=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);a=this.scrollablePixelsX?[[\"M\",0,a],[\"L\",this.plotLeft-1,a],[\"L\",this.plotLeft-1,l],[\"L\",0,l],[\"Z\"],[\"M\",e,a],[\"L\",this.chartWidth,a],[\"L\",this.chartWidth,l],[\"L\",e,l],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",h,0],[\"L\",h,this.plotTop-1],[\"L\",g,this.plotTop-1],[\"L\",g,0],[\"Z\"],[\"M\",h,w],[\"L\",h,this.chartHeight],[\"L\",g,this.chartHeight],[\"L\",\ng,w],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:a})};B(y,\"afterInit\",function(){this.chart.scrollableDirty=!0});B(L,\"show\",function(){this.chart.scrollableDirty=!0});\"\"});M(a,\"Core/Axis/Stacking/StackItem.js\",[a[\"Core/Templating.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {format:x}=a,{series:C}=y,{destroyObjectProperties:z,fireEvent:H,isNumber:B,pick:u}=I;class v{constructor(a,p,t,m,h){const g=a.chart.inverted,e=a.reversed;\nthis.axis=a;a=this.isNegative=!!t!==!!e;this.options=p=p||{};this.x=m;this.cumulative=this.total=null;this.points={};this.hasValidPoints=!1;this.stack=h;this.rightCliff=this.leftCliff=0;this.alignOptions={align:p.align||(g?a?\"left\":\"right\":\"center\"),verticalAlign:p.verticalAlign||(g?\"middle\":a?\"bottom\":\"top\"),y:p.y,x:p.x};this.textAlign=p.textAlign||(g?a?\"right\":\"left\":\"center\")}destroy(){z(this,this.axis)}render(a){const l=this.axis.chart,t=this.options;var m=t.format;m=m?x(m,this,l):t.formatter.call(this);\nthis.label?this.label.attr({text:m,visibility:\"hidden\"}):(this.label=l.renderer.label(m,null,void 0,t.shape,void 0,void 0,t.useHTML,!1,\"stack-labels\"),m={r:t.borderRadius||0,text:m,padding:u(t.padding,5),visibility:\"hidden\"},l.styledMode||(m.fill=t.backgroundColor,m.stroke=t.borderColor,m[\"stroke-width\"]=t.borderWidth,this.label.css(t.style||{})),this.label.attr(m),this.label.added||this.label.add(a));this.label.labelrank=l.plotSizeY;H(this,\"afterRender\")}setOffset(a,p,t,m,h,g){const {alignOptions:e,\naxis:l,label:v,options:x,textAlign:d}=this,k=l.chart;t=this.getStackBox({xOffset:a,width:p,boxBottom:t,boxTop:m,defaultX:h,xAxis:g});var {verticalAlign:r}=e;if(v&&t){m=v.getBBox();h=v.padding;g=\"justify\"===u(x.overflow,\"justify\");e.x=x.x||0;e.y=x.y||0;const {x:a,y:p}=this.adjustStackPosition({labelBox:m,verticalAlign:r,textAlign:d});t.x-=a;t.y-=p;v.align(e,!1,t);(r=k.isInsidePlot(v.alignAttr.x+e.x+a,v.alignAttr.y+e.y+p))||(g=!1);g&&C.prototype.justifyDataLabel.call(l,v,e,v.alignAttr,m,t);v.attr({x:v.alignAttr.x,\ny:v.alignAttr.y,rotation:x.rotation,rotationOriginX:m.width/2,rotationOriginY:m.height/2});u(!g&&x.crop,!0)&&(r=B(v.x)&&B(v.y)&&k.isInsidePlot(v.x-h+v.width,v.y)&&k.isInsidePlot(v.x+h,v.y));v[r?\"show\":\"hide\"]()}H(this,\"afterSetOffset\",{xOffset:a,width:p})}adjustStackPosition({labelBox:a,verticalAlign:p,textAlign:t}){const l={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:a.width/2+a.width/2*l[t],y:a.height/2*l[p]}}getStackBox(a){var l=this.axis;const t=l.chart,{boxTop:m,defaultX:h,xOffset:g,\nwidth:e,boxBottom:w}=a;var v=l.stacking.usePercentage?100:u(m,this.total,0);v=l.toPixels(v);a=a.xAxis||t.xAxis[0];const x=u(h,a.translate(this.x))+g;l=l.toPixels(w||B(l.min)&&l.logarithmic&&l.logarithmic.lin2log(l.min)||0);l=Math.abs(v-l);const d=this.isNegative;return t.inverted?{x:(d?v:v-l)-t.plotLeft,y:a.height-x-e,width:l,height:e}:{x:x+a.transB-t.plotLeft,y:(d?v-l:v)-t.plotTop,width:e,height:l}}}\"\";return v});M(a,\"Core/Axis/Stacking/StackingAxis.js\",[a[\"Core/Animation/AnimationUtilities.js\"],\na[\"Core/Axis/Axis.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Axis/Stacking/StackItem.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C){function x(){const b=this,a=b.inverted;b.yAxis.forEach(b=>{b.stacking&&b.stacking.stacks&&b.hasVisibleSeries&&(b.stacking.oldStacks=b.stacking.stacks)});b.series.forEach(c=>{const d=c.xAxis&&c.xAxis.options||{};!c.options.stacking||!0!==c.visible&&!1!==b.options.chart.ignoreHiddenSeries||(c.stackKey=[c.type,q(c.options.stack,\"\"),a?d.top:d.left,a?d.height:d.width].join())})}\nfunction H(){const b=this.stacking;if(b){var a=b.stacks;r(a,function(b,c){E(b);a[c]=null});b&&b.stackTotalGroup&&b.stackTotalGroup.destroy()}}function B(){\"yAxis\"!==this.coll||this.stacking||(this.stacking=new G(this))}function u(b,a,d,e){!w(b)||b.x!==a||e&&b.stackKey!==e?b={x:a,index:0,key:e,stackKey:e}:b.index++;b.key=[d,a,b.index].join();return b}function v(){const b=this,a=b.stackKey,d=b.yAxis.stacking.stacks,e=b.processedXData,g=b[b.options.stacking+\"Stacker\"];let k;g&&[a,\"-\"+a].forEach(a=>{let c=\ne.length;let f;for(;c--;){var h=e[c];k=b.getStackIndicator(k,h,b.index,a);(f=(h=d[a]&&d[a][h])&&h.points[k.key])&&g.call(b,f,h,c)}})}function l(b,a,d){a=a.total?100/a.total:0;b[0]=e(b[0]*a);b[1]=e(b[1]*a);this.stackedYData[d]=b[1]}function p(){const b=this.yAxis.stacking;this.options.centerInCategory&&(this.is(\"column\")||this.is(\"columnrange\"))&&!this.options.stacking&&1<this.chart.series.length?h.setStackedPoints.call(this,\"group\"):b&&r(b.stacks,(a,d)=>{\"group\"===d.slice(-5)&&(r(a,b=>b.destroy()),\ndelete b.stacks[d])})}function t(b){var a=this.chart;const f=b||this.options.stacking;if(f&&(!0===this.visible||!1===a.options.chart.ignoreHiddenSeries)){var g=this.processedXData,k=this.processedYData,h=[],l=k.length,m=this.options,p=m.threshold,r=q(m.startFromThreshold&&p,0);m=m.stack;b=b?`${this.type},${f}`:this.stackKey;var t=\"-\"+b,v=this.negStacks;a=\"group\"===f?a.yAxis[0]:this.yAxis;var u=a.stacking.stacks,x=a.stacking.oldStacks,E,G;a.stacking.stacksTouched+=1;for(G=0;G<l;G++){var F=g[G];var B=\nk[G];var y=this.getStackIndicator(y,F,this.index);var C=y.key;var z=(E=v&&B<(r?0:p))?t:b;u[z]||(u[z]={});u[z][F]||(x[z]&&x[z][F]?(u[z][F]=x[z][F],u[z][F].total=null):u[z][F]=new L(a,a.options.stackLabels,!!E,F,m));z=u[z][F];null!==B?(z.points[C]=z.points[this.index]=[q(z.cumulative,r)],w(z.cumulative)||(z.base=C),z.touched=a.stacking.stacksTouched,0<y.index&&!1===this.singleStacks&&(z.points[C][0]=z.points[this.index+\",\"+F+\",0\"][0])):z.points[C]=z.points[this.index]=null;\"percent\"===f?(E=E?b:t,v&&\nu[E]&&u[E][F]?(E=u[E][F],z.total=E.total=Math.max(E.total,z.total)+Math.abs(B)||0):z.total=e(z.total+(Math.abs(B)||0))):\"group\"===f?(d(B)&&(B=B[0]),null!==B&&(z.total=(z.total||0)+1)):z.total=e(z.total+(B||0));z.cumulative=\"group\"===f?(z.total||1)-1:e(q(z.cumulative,r)+(B||0));null!==B&&(z.points[C].push(z.cumulative),h[G]=z.cumulative,z.hasValidPoints=!0)}\"percent\"===f&&(a.stacking.usePercentage=!0);\"group\"!==f&&(this.stackedYData=h);a.stacking.oldStacks={}}}const {getDeferredAnimation:m}=a,{series:{prototype:h}}=\nI,{addEvent:g,correctFloat:e,defined:w,destroyObjectProperties:E,fireEvent:F,isArray:d,isNumber:k,objectEach:r,pick:q}=C;class G{constructor(b){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=b}buildStacks(){const b=this.axis,a=b.series,d=b.options.reversedStacks,e=a.length;let g,k;this.usePercentage=!1;for(k=e;k--;)g=a[d?k:e-k-1],g.setStackedPoints(),g.setGroupedPoints();for(k=0;k<e;k++)a[k].modifyStacks();F(b,\"afterBuildStacks\")}cleanStacks(){let b;this.oldStacks&&(b=this.stacks=\nthis.oldStacks);r(b,function(b){r(b,function(b){b.cumulative=b.total})})}resetStacks(){r(this.stacks,b=>{r(b,(a,d)=>{k(a.touched)&&a.touched<this.stacksTouched?(a.destroy(),delete b[d]):(a.total=null,a.cumulative=null)})})}renderStackTotals(){var b=this.axis;const a=b.chart,d=a.renderer,e=this.stacks;b=m(a,b.options.stackLabels&&b.options.stackLabels.animation||!1);const g=this.stackTotalGroup=this.stackTotalGroup||d.g(\"stack-labels\").attr({zIndex:6,opacity:0}).add();g.translate(a.plotLeft,a.plotTop);\nr(e,function(b){r(b,function(b){b.render(g)})});g.animate({opacity:1},b)}}var b;(function(b){const a=[];b.compose=function(b,c,d){C.pushUnique(a,b)&&(g(b,\"init\",B),g(b,\"destroy\",H));C.pushUnique(a,c)&&(c.prototype.getStacks=x);C.pushUnique(a,d)&&(b=d.prototype,b.getStackIndicator=u,b.modifyStacks=v,b.percentStacker=l,b.setGroupedPoints=p,b.setStackedPoints=t)}})(b||(b={}));return b});M(a,\"Series/Line/LineSeries.js\",[a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],\nfunction(a,y,I){const {defined:x,merge:C}=I;class z extends a{constructor(){super(...arguments);this.points=this.options=this.data=void 0}drawGraph(){const a=this,x=this.options,u=(this.gappedPath||this.getGraphPath).call(this),v=this.chart.styledMode;let l=[[\"graph\",\"highcharts-graph\"]];v||l[0].push(x.lineColor||this.color||\"#cccccc\",x.dashStyle);l=a.getZonesGraphs(l);l.forEach(function(l,t){var m=l[0];let h=a[m];const g=h?\"animate\":\"attr\";h?(h.endX=a.preventGraphAnimation?null:u.xMap,h.animate({d:u})):\nu.length&&(a[m]=h=a.chart.renderer.path(u).addClass(l[1]).attr({zIndex:1}).add(a.group));h&&!v&&(m={stroke:l[2],\"stroke-width\":x.lineWidth||0,fill:a.fillGraph&&a.color||\"none\"},l[3]?m.dashstyle=l[3]:\"square\"!==x.linecap&&(m[\"stroke-linecap\"]=m[\"stroke-linejoin\"]=\"round\"),h[g](m).shadow(2>t&&x.shadow));h&&(h.startX=u.xMap,h.isArea=u.isArea)})}getGraphPath(a,B,u){const v=this,l=v.options,p=[],t=[];let m,h=l.step;a=a||v.points;const g=a.reversed;g&&a.reverse();(h={right:1,center:2}[h]||h&&3)&&g&&(h=\n4-h);a=this.getValidPoints(a,!1,!(l.connectNulls&&!B&&!u));a.forEach(function(e,g){const w=e.plotX,F=e.plotY,d=a[g-1],k=e.isNull||\"number\"!==typeof F;(e.leftCliff||d&&d.rightCliff)&&!u&&(m=!0);k&&!x(B)&&0<g?m=!l.connectNulls:k&&!B?m=!0:(0===g||m?g=[[\"M\",e.plotX,e.plotY]]:v.getPointSpline?g=[v.getPointSpline(a,e,g)]:h?(g=1===h?[[\"L\",d.plotX,F]]:2===h?[[\"L\",(d.plotX+w)/2,d.plotY],[\"L\",(d.plotX+w)/2,F]]:[[\"L\",w,d.plotY]],g.push([\"L\",w,F])):g=[[\"L\",w,F]],t.push(e.x),h&&(t.push(e.x),2===h&&t.push(e.x)),\np.push.apply(p,g),m=!1)});p.xMap=t;return v.graphPath=p}getZonesGraphs(a){this.zones.forEach(function(x,u){u=[\"zone-graph-\"+u,\"highcharts-graph highcharts-zone-graph-\"+u+\" \"+(x.className||\"\")];this.chart.styledMode||u.push(x.color||this.color,x.dashStyle||this.options.dashStyle);a.push(u)},this);return a}}z.defaultOptions=C(a.defaultOptions,{legendSymbol:\"lineMarker\"});y.registerSeriesType(\"line\",z);\"\";return z});M(a,\"Series/Area/AreaSeries.js\",[a[\"Core/Color/Color.js\"],a[\"Core/Series/SeriesRegistry.js\"],\na[\"Core/Utilities.js\"]],function(a,y,I){const {seriesTypes:{line:x}}=y,{extend:C,merge:z,objectEach:H,pick:B}=I;class u extends x{constructor(){super(...arguments);this.points=this.options=this.data=void 0}drawGraph(){this.areaPath=[];super.drawGraph.apply(this);const a=this,l=this.areaPath,p=this.options,t=[[\"area\",\"highcharts-area\",this.color,p.fillColor]];this.zones.forEach(function(l,h){t.push([\"zone-area-\"+h,\"highcharts-area highcharts-zone-area-\"+h+\" \"+l.className,l.color||a.color,l.fillColor||\np.fillColor])});t.forEach(function(m){const h=m[0],g={};let e=a[h];const t=e?\"animate\":\"attr\";e?(e.endX=a.preventGraphAnimation?null:l.xMap,e.animate({d:l})):(g.zIndex=0,e=a[h]=a.chart.renderer.path(l).addClass(m[1]).add(a.group),e.isArea=!0);a.chart.styledMode||(m[3]?g.fill=m[3]:(g.fill=m[2],g[\"fill-opacity\"]=B(p.fillOpacity,.75)));e[t](g);e.startX=l.xMap;e.shiftUnit=p.step?2:1})}getGraphPath(a){var l=x.prototype.getGraphPath,p=this.options;const t=p.stacking,m=this.yAxis,h=[],g=[],e=this.index,\nw=m.stacking.stacks[this.stackKey],v=p.threshold,u=Math.round(m.getThreshold(p.threshold));p=B(p.connectNulls,\"percent\"===t);var d=function(d,b,f){var c=a[d];d=t&&w[c.x].points[e];const n=c[f+\"Null\"]||0;f=c[f+\"Cliff\"]||0;let l,q;c=!0;f||n?(l=(n?d[0]:d[1])+f,q=d[0]+f,c=!!n):!t&&a[b]&&a[b].isNull&&(l=q=v);\"undefined\"!==typeof l&&(g.push({plotX:k,plotY:null===l?u:m.getThreshold(l),isNull:c,isCliff:!0}),h.push({plotX:k,plotY:null===q?u:m.getThreshold(q),doCurve:!1}))};let k;a=a||this.points;t&&(a=this.getStackPoints(a));\nfor(let e=0,b=a.length;e<b;++e){t||(a[e].leftCliff=a[e].rightCliff=a[e].leftNull=a[e].rightNull=void 0);var r=a[e].isNull;k=B(a[e].rectPlotX,a[e].plotX);var q=t?B(a[e].yBottom,u):u;if(!r||p)p||d(e,e-1,\"left\"),r&&!t&&p||(g.push(a[e]),h.push({x:e,plotX:k,plotY:q})),p||d(e,e+1,\"right\")}d=l.call(this,g,!0,!0);h.reversed=!0;r=l.call(this,h,!0,!0);(q=r[0])&&\"M\"===q[0]&&(r[0]=[\"L\",q[1],q[2]]);r=d.concat(r);r.length&&r.push([\"Z\"]);l=l.call(this,g,!1,p);r.xMap=d.xMap;this.areaPath=r;return l}getStackPoints(a){const l=\nthis,p=[],t=[],m=this.xAxis,h=this.yAxis,g=h.stacking.stacks[this.stackKey],e={},w=h.series,v=w.length,u=h.options.reversedStacks?1:-1,d=w.indexOf(l);a=a||this.points;if(this.options.stacking){for(let d=0;d<a.length;d++)a[d].leftNull=a[d].rightNull=void 0,e[a[d].x]=a[d];H(g,function(a,d){null!==a.total&&t.push(d)});t.sort(function(a,d){return a-d});const k=w.map(a=>a.visible);t.forEach(function(a,q){let r=0,b,f;if(e[a]&&!e[a].isNull)p.push(e[a]),[-1,1].forEach(function(c){const h=1===c?\"rightNull\":\n\"leftNull\",m=g[t[q+c]];let p=0;if(m){let c=d;for(;0<=c&&c<v;){const d=w[c].index;b=m.points[d];b||(d===l.index?e[a][h]=!0:k[c]&&(f=g[a].points[d])&&(p-=f[1]-f[0]));c+=u}}e[a][1===c?\"rightCliff\":\"leftCliff\"]=p});else{let c=d;for(;0<=c&&c<v;){if(b=g[a].points[w[c].index]){r=b[1];break}c+=u}r=B(r,0);r=h.translate(r,0,1,0,1);p.push({isNull:!0,plotX:m.translate(a,0,0,0,1),x:a,plotY:r,yBottom:r})}})}return p}}u.defaultOptions=z(x.defaultOptions,{threshold:0,legendSymbol:\"rectangle\"});C(u.prototype,{singleStacks:!1});\ny.registerSeriesType(\"area\",u);\"\";return u});M(a,\"Series/Spline/SplineSeries.js\",[a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y){const {line:x}=a.seriesTypes,{merge:L,pick:C}=y;class z extends x{constructor(){super(...arguments);this.points=this.options=this.data=void 0}getPointSpline(a,x,u){const v=x.plotX||0,l=x.plotY||0,p=a[u-1];u=a[u+1];let t,m;let h;if(p&&!p.isNull&&!1!==p.doCurve&&!x.isCliff&&u&&!u.isNull&&!1!==u.doCurve&&!x.isCliff){a=p.plotY||0;var g=u.plotX||0;u=\nu.plotY||0;let e=0;t=(1.5*v+(p.plotX||0))/2.5;m=(1.5*l+a)/2.5;g=(1.5*v+g)/2.5;h=(1.5*l+u)/2.5;g!==t&&(e=(h-m)*(g-v)/(g-t)+l-h);m+=e;h+=e;m>a&&m>l?(m=Math.max(a,l),h=2*l-m):m<a&&m<l&&(m=Math.min(a,l),h=2*l-m);h>u&&h>l?(h=Math.max(u,l),m=2*l-h):h<u&&h<l&&(h=Math.min(u,l),m=2*l-h);x.rightContX=g;x.rightContY=h}x=[\"C\",C(p.rightContX,p.plotX,0),C(p.rightContY,p.plotY,0),C(t,v,0),C(m,l,0),v,l];p.rightContX=p.rightContY=void 0;return x}}z.defaultOptions=L(x.defaultOptions);a.registerSeriesType(\"spline\",\nz);\"\";return z});M(a,\"Series/AreaSpline/AreaSplineSeries.js\",[a[\"Series/Spline/SplineSeries.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {area:x,area:{prototype:C}}=y.seriesTypes,{extend:z,merge:H}=I;class B extends a{constructor(){super(...arguments);this.options=this.points=this.data=void 0}}B.defaultOptions=H(a.defaultOptions,x.defaultOptions);z(B.prototype,{getGraphPath:C.getGraphPath,getStackPoints:C.getStackPoints,drawGraph:C.drawGraph});y.registerSeriesType(\"areaspline\",\nB);\"\";return B});M(a,\"Series/Column/ColumnSeriesDefaults.js\",[],function(){\"\";return{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:\"#cccccc\",borderColor:\"#000000\"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"#ffffff\"}});M(a,\"Series/Column/ColumnSeries.js\",[a[\"Core/Animation/AnimationUtilities.js\"],\na[\"Core/Color/Color.js\"],a[\"Series/Column/ColumnSeriesDefaults.js\"],a[\"Core/Globals.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H){const {animObject:x}=a,{parse:u}=y,{hasTouch:v,noop:l}=L,{clamp:p,defined:t,extend:m,fireEvent:h,isArray:g,isNumber:e,merge:w,pick:E,objectEach:F}=H;class d extends C{constructor(){super(...arguments);this.points=this.options=this.group=this.data=this.borderWidth=void 0}animate(a){const d=this,e=this.yAxis,\ng=e.pos,b=d.options,f=this.chart.inverted,c={},k=f?\"translateX\":\"translateY\";let h;a?(c.scaleY=.001,a=p(e.toPixels(b.threshold),g,g+e.len),f?c.translateX=a-e.len:c.translateY=a,d.clipBox&&d.setClip(),d.group.attr(c)):(h=Number(d.group.attr(k)),d.group.animate({scaleY:1},m(x(d.options.animation),{step:function(b,a){d.group&&(c[k]=h+a.pos*(g-h),d.group.attr(c))}})))}init(a,d){super.init.apply(this,arguments);const e=this;a=e.chart;a.hasRendered&&a.series.forEach(function(a){a.type===e.type&&(a.isDirty=\n!0)})}getColumnMetrics(){const a=this;var d=a.options;const e=a.xAxis,g=a.yAxis;var b=e.options.reversedStacks;b=e.reversed&&!b||!e.reversed&&b;const f={};let c,h=0;!1===d.grouping?h=1:a.chart.series.forEach(function(b){const d=b.yAxis,e=b.options;let k;b.type!==a.type||!b.visible&&a.chart.options.chart.ignoreHiddenSeries||g.len!==d.len||g.pos!==d.pos||(e.stacking&&\"group\"!==e.stacking?(c=b.stackKey,\"undefined\"===typeof f[c]&&(f[c]=h++),k=f[c]):!1!==e.grouping&&(k=h++),b.columnIndex=k)});const l=\nMath.min(Math.abs(e.transA)*(e.ordinal&&e.ordinal.slope||d.pointRange||e.closestPointRange||e.tickInterval||1),e.len),m=l*d.groupPadding,p=(l-2*m)/(h||1);d=Math.min(d.maxPointWidth||e.len,E(d.pointWidth,p*(1-2*d.pointPadding)));a.columnMetrics={width:d,offset:(p-d)/2+(m+((a.columnIndex||0)+(b?1:0))*p-l/2)*(b?-1:1),paddedWidth:p,columnCount:h};return a.columnMetrics}crispCol(a,d,e,g){var b=this.borderWidth,f=-(b%2?.5:0);b=b%2?.5:1;this.options.crisp&&(e=Math.round(a+e)+f,a=Math.round(a)+f,e-=a);g=\nMath.round(d+g)+b;f=.5>=Math.abs(d)&&.5<g;d=Math.round(d)+b;g-=d;f&&g&&(--d,g+=1);return{x:a,y:d,width:e,height:g}}adjustForMissingColumns(a,d,e,h){const b=this.options.stacking;if(!e.isNull&&1<h.columnCount){const f=this.yAxis.options.reversedStacks;let c=0,k=f?0:-h.columnCount;F(this.yAxis.stacking&&this.yAxis.stacking.stacks,a=>{if(\"number\"===typeof e.x){const d=a[e.x.toString()];d&&(a=d.points[this.index],b?(a&&(c=k),d.hasValidPoints&&(f?k++:k--)):g(a)&&(a=Object.keys(d.points).filter(b=>!b.match(\",\")&&\nd.points[b]&&1<d.points[b].length).map(parseFloat).sort((b,a)=>a-b),c=a.indexOf(this.index),k=a.length))}});a=(e.plotX||0)+((k-1)*h.paddedWidth+d)/2-d-c*h.paddedWidth}return a}translate(){const a=this,d=a.chart,g=a.options;var l=a.dense=2>a.closestPointRange*a.xAxis.transA;l=a.borderWidth=E(g.borderWidth,l?0:1);const b=a.xAxis,f=a.yAxis,c=g.threshold,n=E(g.minPointLength,5),m=a.getColumnMetrics(),w=m.width,v=a.pointXOffset=m.offset,u=a.dataMin,x=a.dataMax;let F=a.barW=Math.max(w,1+2*l),y=a.translatedThreshold=\nf.getThreshold(c);d.inverted&&(y-=.5);g.pointPadding&&(F=Math.ceil(F));C.prototype.translate.apply(a);a.points.forEach(function(k){const h=E(k.yBottom,y);var l=999+Math.abs(h),q=k.plotX||0;l=p(k.plotY,-l,f.len+l);let r=Math.min(l,h),D=Math.max(l,h)-r,z=w,B=q+v,G=F;n&&Math.abs(D)<n&&(D=n,q=!f.reversed&&!k.negative||f.reversed&&k.negative,e(c)&&e(x)&&k.y===c&&x<=c&&(f.min||0)<c&&(u!==x||(f.max||0)<=c)&&(q=!q,k.negative=!k.negative),r=Math.abs(r-y)>n?h-n:y-(q?n:0));t(k.options.pointWidth)&&(z=G=Math.ceil(k.options.pointWidth),\nB-=Math.round((z-w)/2));g.centerInCategory&&(B=a.adjustForMissingColumns(B,z,k,m));k.barX=B;k.pointWidth=z;k.tooltipPos=d.inverted?[p(f.len+f.pos-d.plotLeft-l,f.pos-d.plotLeft,f.len+f.pos-d.plotLeft),b.len+b.pos-d.plotTop-B-G/2,D]:[b.left-d.plotLeft+B+G/2,p(l+f.pos-d.plotTop,f.pos-d.plotTop,f.len+f.pos-d.plotTop),D];k.shapeType=a.pointClass.prototype.shapeType||\"roundedRect\";k.shapeArgs=a.crispCol(B,k.isNull?y:r,G,k.isNull?0:D)});h(this,\"afterColumnTranslate\")}drawGraph(){this.group[this.dense?\"addClass\":\n\"removeClass\"](\"highcharts-dense-data\")}pointAttribs(a,d){const e=this.options;var g=this.pointAttrToOptions||{},b=g.stroke||\"borderColor\";const f=g[\"stroke-width\"]||\"borderWidth\";let c,k=a&&a.color||this.color,h=a&&a[b]||e[b]||k;g=a&&a.options.dashStyle||e.dashStyle;let l=a&&a[f]||e[f]||this[f]||0,m=E(a&&a.opacity,e.opacity,1);a&&this.zones.length&&(c=a.getZone(),k=a.options.color||c&&(c.color||a.nonZonedColor)||this.color,c&&(h=c.borderColor||h,g=c.dashStyle||g,l=c.borderWidth||l));d&&a&&(a=w(e.states[d],\na.options.states&&a.options.states[d]||{}),d=a.brightness,k=a.color||\"undefined\"!==typeof d&&u(k).brighten(a.brightness).get()||k,h=a[b]||h,l=a[f]||l,g=a.dashStyle||g,m=E(a.opacity,m));b={fill:k,stroke:h,\"stroke-width\":l,opacity:m};g&&(b.dashstyle=g);return b}drawPoints(a=this.points){const d=this,g=this.chart,k=d.options,b=g.renderer,f=k.animationLimit||250;let c;a.forEach(function(a){let h=a.graphic,l=!!h,n=h&&g.pointCount<f?\"animate\":\"attr\";if(e(a.plotY)&&null!==a.y){c=a.shapeArgs;h&&a.hasNewShapeType()&&\n(h=h.destroy());d.enabledDataSorting&&(a.startXPos=d.xAxis.reversed?-(c?c.width||0:0):d.xAxis.width);h||(a.graphic=h=b[a.shapeType](c).add(a.group||d.group))&&d.enabledDataSorting&&g.hasRendered&&g.pointCount<f&&(h.attr({x:a.startXPos}),l=!0,n=\"animate\");if(h&&l)h[n](w(c));g.styledMode||h[n](d.pointAttribs(a,a.selected&&\"select\")).shadow(!1!==a.allowShadow&&k.shadow);h&&(h.addClass(a.getClassName(),!0),h.attr({visibility:a.visible?\"inherit\":\"hidden\"}))}else h&&(a.graphic=h.destroy())})}drawTracker(a=\nthis.points){const d=this,e=d.chart,k=e.pointer,b=function(a){const b=k.getPointFromEvent(a);\"undefined\"!==typeof b&&d.options.enableMouseTracking&&(k.isDirectTouch=!0,b.onMouseOver(a))};let f;a.forEach(function(a){f=g(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[];a.graphic&&(a.graphic.element.point=a);f.forEach(function(b){b.div?b.div.point=a:b.element.point=a})});d._hasTracking||(d.trackerGroups.forEach(function(a){if(d[a]){d[a].addClass(\"highcharts-tracker\").on(\"mouseover\",b).on(\"mouseout\",\nfunction(a){k.onTrackerMouseOut(a)});if(v)d[a].on(\"touchstart\",b);!e.styledMode&&d.options.cursor&&d[a].css({cursor:d.options.cursor})}}),d._hasTracking=!0);h(this,\"afterDrawTracker\")}remove(){const a=this,d=a.chart;d.hasRendered&&d.series.forEach(function(d){d.type===a.type&&(d.isDirty=!0)});C.prototype.remove.apply(a,arguments)}}d.defaultOptions=w(C.defaultOptions,I);m(d.prototype,{cropShoulder:0,directTouch:!0,getSymbol:l,negStacks:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"]});z.registerSeriesType(\"column\",\nd);\"\";return d});M(a,\"Core/Series/DataLabel.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Templating.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {getDeferredAnimation:x}=a,{format:C}=y,{defined:z,extend:H,fireEvent:B,isArray:u,isString:v,merge:l,objectEach:p,pick:t,splat:m}=I;var h;(function(a){function e(a,d,c,e,g){const b=this.chart;var f=this.isCartesian&&b.inverted;const k=this.enabledDataSorting;var h=a.plotX,l=a.plotY;const n=c.rotation;var m=c.align;l=z(h)&&z(l)&&b.isInsidePlot(h,\nMath.round(l),{inverted:f,paneCoordinates:!0,series:this});let p=\"justify\"===t(c.overflow,k?\"none\":\"justify\");f=this.visible&&!1!==a.visible&&z(h)&&(a.series.forceDL||k&&!p||l||t(c.inside,!!this.options.stacking)&&e&&b.isInsidePlot(h,f?e.x+1:e.y+e.height-1,{inverted:f,paneCoordinates:!0,series:this}));h=a.pos();if(f&&h){n&&d.attr({align:m});m=d.getBBox(!0);var q=[0,0];var r=b.renderer.fontMetrics(d).b;e=H({x:h[0],y:Math.round(h[1]),width:0,height:0},e);H(c,{width:m.width,height:m.height});n?(p=!1,\nq=b.renderer.rotCorr(r,n),r={x:e.x+(c.x||0)+e.width/2+q.x,y:e.y+(c.y||0)+{top:0,middle:.5,bottom:1}[c.verticalAlign]*e.height},q=[m.x-Number(d.attr(\"x\")),m.y-Number(d.attr(\"y\"))],k&&this.xAxis&&!p&&this.setDataLabelStartPos(a,d,g,l,r),d[g?\"attr\":\"animate\"](r)):(k&&this.xAxis&&!p&&this.setDataLabelStartPos(a,d,g,l,e),d.align(c,void 0,e),r=d.alignAttr);if(p&&0<=e.height)this.justifyDataLabel(d,c,r,m,e,g);else if(t(c.crop,!0)){let {x:a,y:c}=r;a+=q[0];c+=q[1];f=b.isInsidePlot(a,c,{paneCoordinates:!0,\nseries:this})&&b.isInsidePlot(a+m.width,c+m.height,{paneCoordinates:!0,series:this})}if(c.shape&&!n)d[g?\"attr\":\"animate\"]({anchorX:h[0],anchorY:h[1]})}g&&k&&(d.placed=!1);f||k&&!p?d.show():(d.hide(),d.placed=!1)}function g(a,d){var b=d.filter;return b?(d=b.operator,a=a[b.property],b=b.value,\">\"===d&&a>b||\"<\"===d&&a<b||\">=\"===d&&a>=b||\"<=\"===d&&a<=b||\"==\"===d&&a==b||\"===\"===d&&a===b?!0:!1):!0}function h(){return this.plotGroup(\"dataLabelsGroup\",\"data-labels\",this.hasRendered?\"inherit\":\"hidden\",this.options.dataLabels.zIndex||\n6)}function F(a){const b=this.hasRendered||0,c=this.initDataLabelsGroup().attr({opacity:+b});!b&&c&&(this.visible&&c.show(),this.options.animation?c.animate({opacity:1},a):c.attr({opacity:1}));return c}function d(a=this.points){var b,c;const d=this,e=d.chart,k=d.options,h=e.renderer,{backgroundColor:l,plotBackgroundColor:q}=e.options.chart,w=e.options.plotOptions,E=h.getContrast(v(q)&&q||v(l)&&l||\"#000000\");let F=k.dataLabels,A,y;var G=m(F)[0];const H=G.animation;G=G.defer?x(e,H,d):{defer:0,duration:0};\nF=r(r(null===(b=null===w||void 0===w?void 0:w.series)||void 0===b?void 0:b.dataLabels,null===(c=null===w||void 0===w?void 0:w[d.type])||void 0===c?void 0:c.dataLabels),F);B(this,\"drawDataLabels\");if(u(F)||F.enabled||d._hasPointLabels)y=this.initDataLabels(G),a.forEach(a=>{var b;const c=a.dataLabels||[];A=m(r(F,a.dlOptions||(null===(b=a.options)||void 0===b?void 0:b.dataLabels)));A.forEach((b,f)=>{var l,m=b.enabled&&(!a.isNull||a.dataLabelOnNull)&&g(a,b);const n=a.connectors?a.connectors[f]:a.connector,\nq=b.style||{};let r={},w=c[f],u=!w;const x=t(b.distance,a.labelDistance);if(m){var A=t(b[a.formatPrefix+\"Format\"],b.format);var F=a.getLabelConfig();F=z(A)?C(A,F,e):(b[a.formatPrefix+\"Formatter\"]||b.formatter).call(F,b);A=b.rotation;e.styledMode||(q.color=t(b.color,q.color,v(d.color)?d.color:void 0,\"#000000\"),\"contrast\"===q.color?(a.contrastColor=h.getContrast(a.color||d.color),q.color=!z(x)&&b.inside||0>(x||0)||k.stacking?a.contrastColor:E):delete a.contrastColor,k.cursor&&(q.cursor=k.cursor));r=\n{r:b.borderRadius||0,rotation:A,padding:b.padding,zIndex:1};if(!e.styledMode){const {backgroundColor:c,borderColor:d}=b;r.fill=\"auto\"===c?a.color:c;r.stroke=\"auto\"===d?a.color:d;r[\"stroke-width\"]=b.borderWidth}p(r,(a,b)=>{\"undefined\"===typeof a&&delete r[b]})}!w||m&&z(F)&&!!w.div===!!b.useHTML&&(w.rotation&&b.rotation||w.rotation===b.rotation)||(w=void 0,u=!0,n&&a.connector&&(a.connector=a.connector.destroy(),a.connectors&&(1===a.connectors.length?delete a.connectors:delete a.connectors[f])));m&&\nz(F)&&(w?r.text=F:(w=A?h.text(F,0,0,b.useHTML).addClass(\"highcharts-data-label\"):h.label(F,0,0,b.shape,void 0,void 0,b.useHTML,void 0,\"data-label\"))&&w.addClass(\" highcharts-data-label-color-\"+a.colorIndex+\" \"+(b.className||\"\")+(b.useHTML?\" highcharts-tracker\":\"\")),w&&(w.options=b,w.attr(r),e.styledMode||w.css(q).shadow(b.shadow),(m=b[a.formatPrefix+\"TextPath\"]||b.textPath)&&!b.useHTML&&(w.setTextPath((null===(l=a.getDataLabelPath)||void 0===l?void 0:l.call(a,w))||a.graphic,m),a.dataLabelPath&&!m.enabled&&\n(a.dataLabelPath=a.dataLabelPath.destroy())),w.added||w.add(y),d.alignDataLabel(a,w,b,void 0,u),w.isActive=!0,c[f]&&c[f]!==w&&c[f].destroy(),c[f]=w))});for(b=c.length;b--;)c[b].isActive?c[b].isActive=!1:(c[b].destroy(),c.splice(b,1));a.dataLabel=c[0];a.dataLabels=c});B(this,\"afterDrawDataLabels\")}function k(a,d,c,e,g,k){const b=this.chart,f=d.align,h=d.verticalAlign,l=a.box?0:a.padding||0;let {x:m=0,y:n=0}=d,p,q;p=(c.x||0)+l;0>p&&(\"right\"===f&&0<=m?(d.align=\"left\",d.inside=!0):m-=p,q=!0);p=(c.x||\n0)+e.width-l;p>b.plotWidth&&(\"left\"===f&&0>=m?(d.align=\"right\",d.inside=!0):m+=b.plotWidth-p,q=!0);p=c.y+l;0>p&&(\"bottom\"===h&&0<=n?(d.verticalAlign=\"top\",d.inside=!0):n-=p,q=!0);p=(c.y||0)+e.height-l;p>b.plotHeight&&(\"top\"===h&&0>=n?(d.verticalAlign=\"bottom\",d.inside=!0):n+=b.plotHeight-p,q=!0);q&&(d.x=m,d.y=n,a.placed=!k,a.align(d,void 0,g));return q}function r(a,d){let b=[],f;if(u(a)&&!u(d))b=a.map(function(a){return l(a,d)});else if(u(d)&&!u(a))b=d.map(function(b){return l(a,b)});else if(!u(a)&&\n!u(d))b=l(a,d);else if(u(a)&&u(d))for(f=Math.max(a.length,d.length);f--;)b[f]=l(a[f],d[f]);return b}function q(a,d,c,e,g){const b=this.chart,f=b.inverted,k=this.xAxis,h=k.reversed,l=f?d.height/2:d.width/2;a=(a=a.pointWidth)?a/2:0;d.startXPos=f?g.x:h?-l-a:k.width-l+a;d.startYPos=f?h?this.yAxis.height-l+a:-l-a:g.y;e?\"hidden\"===d.visibility&&(d.show(),d.attr({opacity:0}).animate({opacity:1})):d.attr({opacity:1}).animate({opacity:0},void 0,d.hide);b.hasRendered&&(c&&d.attr({x:d.startXPos,y:d.startYPos}),\nd.placed=!0)}const y=[];a.compose=function(a){I.pushUnique(y,a)&&(a=a.prototype,a.initDataLabelsGroup=h,a.initDataLabels=F,a.alignDataLabel=e,a.drawDataLabels=d,a.justifyDataLabel=k,a.setDataLabelStartPos=q)}})(h||(h={}));\"\";return h});M(a,\"Series/Column/ColumnDataLabel.js\",[a[\"Core/Series/DataLabel.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {series:x}=y,{merge:C,pick:z}=I;var H;(function(y){function u(a,p,t,m,h){let g=this.chart.inverted;var e=a.series;\nlet l=(e.xAxis?e.xAxis.len:this.chart.plotSizeX)||0;e=(e.yAxis?e.yAxis.len:this.chart.plotSizeY)||0;var v=a.dlBox||a.shapeArgs;let u=z(a.below,a.plotY>z(this.translatedThreshold,e)),d=z(t.inside,!!this.options.stacking);v&&(m=C(v),0>m.y&&(m.height+=m.y,m.y=0),v=m.y+m.height-e,0<v&&v<m.height&&(m.height-=v),g&&(m={x:e-m.y-m.height,y:l-m.x-m.width,width:m.height,height:m.width}),d||(g?(m.x+=u?0:m.width,m.width=0):(m.y+=u?m.height:0,m.height=0)));t.align=z(t.align,!g||d?\"center\":u?\"right\":\"left\");t.verticalAlign=\nz(t.verticalAlign,g||d?\"middle\":u?\"top\":\"bottom\");x.prototype.alignDataLabel.call(this,a,p,t,m,h);t.inside&&a.contrastColor&&p.css({color:a.contrastColor})}const v=[];y.compose=function(l){a.compose(x);I.pushUnique(v,l)&&(l.prototype.alignDataLabel=u)}})(H||(H={}));return H});M(a,\"Series/Bar/BarSeries.js\",[a[\"Series/Column/ColumnSeries.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {extend:x,merge:C}=I;class z extends a{constructor(){super(...arguments);this.points=\nthis.options=this.data=void 0}}z.defaultOptions=C(a.defaultOptions,{});x(z.prototype,{inverted:!0});y.registerSeriesType(\"bar\",z);\"\";return z});M(a,\"Series/Scatter/ScatterSeriesDefaults.js\",[],function(){\"\";return{lineWidth:0,findNearestPointBy:\"xy\",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <span style=\"font-size: 0.8em\"> {series.name}</span><br/>',pointFormat:\"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>\"}}});M(a,\"Series/Scatter/ScatterSeries.js\",\n[a[\"Series/Scatter/ScatterSeriesDefaults.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {column:x,line:C}=y.seriesTypes,{addEvent:z,extend:H,merge:B}=I;class u extends C{constructor(){super(...arguments);this.points=this.options=this.data=void 0}applyJitter(){const a=this,l=this.options.jitter,p=this.points.length;l&&this.points.forEach(function(t,m){[\"x\",\"y\"].forEach(function(h,g){let e=\"plot\"+h.toUpperCase(),w,v;if(l[h]&&!t.isNull){var u=a[h+\"Axis\"];v=l[h]*\nu.transA;u&&!u.isLog&&(w=Math.max(0,t[e]-v),u=Math.min(u.len,t[e]+v),g=1E4*Math.sin(m+g*p),g-=Math.floor(g),t[e]=w+(u-w)*g,\"x\"===h&&(t.clientX=t.plotX))}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}u.defaultOptions=B(C.defaultOptions,a);H(u.prototype,{drawTracker:x.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1});z(u,\"afterTranslate\",function(){this.applyJitter()});\ny.registerSeriesType(\"scatter\",u);return u});M(a,\"Series/CenteredUtilities.js\",[a[\"Core/Globals.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {deg2rad:x}=a,{fireEvent:C,isNumber:z,pick:H,relativeLength:B}=I;var u;(function(a){a.getCenter=function(){var a=this.options,p=this.chart;const t=2*(a.slicedOffset||0),m=p.plotWidth-2*t,h=p.plotHeight-2*t;var g=a.center;const e=Math.min(m,h),w=a.thickness;var v=a.size;let u=a.innerSize||0;\"string\"===typeof v&&(v=parseFloat(v));\n\"string\"===typeof u&&(u=parseFloat(u));a=[H(g[0],\"50%\"),H(g[1],\"50%\"),H(v&&0>v?void 0:a.size,\"100%\"),H(u&&0>u?void 0:a.innerSize||0,\"0%\")];!p.angular||this instanceof y||(a[3]=0);for(g=0;4>g;++g)v=a[g],p=2>g||2===g&&/%$/.test(v),a[g]=B(v,[m,h,e,a[2]][g])+(p?t:0);a[3]>a[2]&&(a[3]=a[2]);z(w)&&2*w<a[2]&&0<w&&(a[3]=a[2]-2*w);C(this,\"afterGetCenter\",{positions:a});return a};a.getStartAndEndRadians=function(a,p){a=z(a)?a:0;p=z(p)&&p>a&&360>p-a?p:a+360;return{start:x*(a+-90),end:x*(p+-90)}}})(u||(u={}));\n\"\";return u});M(a,\"Series/Pie/PiePoint.js\",[a[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Utilities.js\"]],function(a,y,I){const {setAnimation:x}=a,{addEvent:C,defined:z,extend:H,isNumber:B,pick:u,relativeLength:v}=I;class l extends y{constructor(){super(...arguments);this.series=this.options=this.labelDistance=void 0}getConnectorPath(){const a=this.labelPosition,l=this.series.options.dataLabels,m=this.connectorShapes;let h=l.connectorShape;m[h]&&(h=m[h]);return h.call(this,\n{x:a.computed.x,y:a.computed.y,alignment:a.alignment},a.connectorPosition,l)}getTranslate(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}}haloPath(a){const l=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(l.x,l.y,l.r+a,l.r+a,{innerR:l.r-1,start:l.start,end:l.end,borderRadius:l.borderRadius})}init(){super.init.apply(this,arguments);this.name=u(this.name,\"Slice\");const a=a=>{this.slice(\"select\"===a.type)};C(this,\"select\",a);C(this,\n\"unselect\",a);return this}isValid(){return B(this.y)&&0<=this.y}setVisible(a,l){const m=this.series,h=m.chart,g=m.options.ignoreHiddenPoint;l=u(l,g);a!==this.visible&&(this.visible=this.options.visible=a=\"undefined\"===typeof a?!this.visible:a,m.options.data[m.data.indexOf(this)]=this.options,[\"graphic\",\"dataLabel\",\"connector\"].forEach(e=>{if(this[e])this[e][a?\"show\":\"hide\"](a)}),this.legendItem&&h.legend.colorizeItem(this,a),a||\"hover\"!==this.state||this.setState(\"\"),g&&(m.isDirty=!0),l&&h.redraw())}slice(a,\nl,m){const h=this.series;x(m,h.chart);u(l,!0);this.sliced=this.options.sliced=z(a)?a:!this.sliced;h.options.data[h.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate())}}H(l.prototype,{connectorShapes:{fixedOffset:function(a,l,m){const h=l.breakAt;l=l.touchingSliceAt;return[[\"M\",a.x,a.y],m.softConnector?[\"C\",a.x+(\"left\"===a.alignment?-5:5),a.y,2*h.x-l.x,2*h.y-l.y,h.x,h.y]:[\"L\",h.x,h.y],[\"L\",l.x,l.y]]},straight:function(a,l){l=l.touchingSliceAt;return[[\"M\",a.x,a.y],\n[\"L\",l.x,l.y]]},crookedLine:function(a,l,m){const {breakAt:h,touchingSliceAt:g}=l;({series:l}=this);const [e,p,t]=l.center,u=t/2,d=l.chart.plotWidth,k=l.chart.plotLeft;l=\"left\"===a.alignment;const {x:r,y:q}=a;m.crookDistance?(a=v(m.crookDistance,1),a=l?e+u+(d+k-e-u)*(1-a):k+(e-u)*a):a=e+(p-q)*Math.tan((this.angle||0)-Math.PI/2);m=[[\"M\",r,q]];(l?a<=r&&a>=h.x:a>=r&&a<=h.x)&&m.push([\"L\",a,q]);m.push([\"L\",h.x,h.y],[\"L\",g.x,g.y]);return m}}});return l});M(a,\"Series/Pie/PieSeriesDefaults.js\",[],function(){\"\";\nreturn{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:\"crookedLine\",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,\nstates:{hover:{brightness:.1}}}});M(a,\"Series/Pie/PieSeries.js\",[a[\"Series/CenteredUtilities.js\"],a[\"Series/Column/ColumnSeries.js\"],a[\"Core/Globals.js\"],a[\"Series/Pie/PiePoint.js\"],a[\"Series/Pie/PieSeriesDefaults.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/Symbols.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z,H,B,u){const {getStartAndEndRadians:v}=a;({noop:I}=I);const {clamp:l,extend:p,fireEvent:t,merge:m,pick:h,relativeLength:g}=u;class e extends z{constructor(){super(...arguments);\nthis.points=this.options=this.maxLabelDistance=this.data=this.center=void 0}animate(a){const e=this,g=e.points,d=e.startAngleRad;a||g.forEach(function(a){const g=a.graphic,k=a.shapeArgs;g&&k&&(g.attr({r:h(a.startR,e.center&&e.center[3]/2),start:d,end:d}),g.animate({r:k.r,start:k.start,end:k.end},e.options.animation))})}drawEmpty(){const a=this.startAngleRad,e=this.endAngleRad,g=this.options;let d,k;0===this.total&&this.center?(d=this.center[0],k=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(d,\nk,this.center[1]/2,0,a,e).addClass(\"highcharts-empty-series\").add(this.group)),this.graph.attr({d:B.arc(d,k,this.center[2]/2,0,{start:a,end:e,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({\"stroke-width\":g.borderWidth,fill:g.fillColor||\"none\",stroke:g.color||\"#cccccc\"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){const a=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy());e.graphic||(e.graphic=a[e.shapeType](e.shapeArgs).add(e.series.group),\ne.delayedRendering=!0)})}generatePoints(){super.generatePoints();this.updateTotals()}getX(a,e,g){const d=this.center,k=this.radii?this.radii[g.index]||0:d[2]/2;a=Math.asin(l((a-d[1])/(k+g.labelDistance),-1,1));return d[0]+(e?-1:1)*Math.cos(a)*(k+g.labelDistance)+(0<g.labelDistance?(e?-1:1)*this.options.dataLabels.padding:0)}hasData(){return!!this.processedXData.length}redrawPoints(){const a=this,e=a.chart;let g,d,k,h;this.drawEmpty();a.group&&!e.styledMode&&a.group.shadow(a.options.shadow);a.points.forEach(function(l){const q=\n{};d=l.graphic;!l.isNull&&d?(h=l.shapeArgs,g=l.getTranslate(),e.styledMode||(k=a.pointAttribs(l,l.selected&&\"select\")),l.delayedRendering?(d.setRadialReference(a.center).attr(h).attr(g),e.styledMode||d.attr(k).attr({\"stroke-linejoin\":\"round\"}),l.delayedRendering=!1):(d.setRadialReference(a.center),e.styledMode||m(!0,q,k),m(!0,q,h,g),d.animate(q)),d.attr({visibility:l.visible?\"inherit\":\"hidden\"}),d.addClass(l.getClassName(),!0)):d&&(l.graphic=d.destroy())})}sortByAngle(a,e){a.sort(function(a,d){return\"undefined\"!==\ntypeof a.angle&&(d.angle-a.angle)*e})}translate(a){t(this,\"translate\");this.generatePoints();var e=this.options;const l=e.slicedOffset,d=l+(e.borderWidth||0);var k=v(e.startAngle,e.endAngle);const m=this.startAngleRad=k.start;k=(this.endAngleRad=k.end)-m;const q=this.points,p=e.dataLabels.distance;e=e.ignoreHiddenPoint;const b=q.length;let f,c,n,w=0;a||(this.center=a=this.getCenter());for(c=0;c<b;c++){n=q[c];var u=m+w*k;!n.isValid()||e&&!n.visible||(w+=n.percentage/100);var x=m+w*k;var y={x:a[0],\ny:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1E3*u)/1E3,end:Math.round(1E3*x)/1E3};n.shapeType=\"arc\";n.shapeArgs=y;n.labelDistance=h(n.options.dataLabels&&n.options.dataLabels.distance,p);n.labelDistance=g(n.labelDistance,y.r);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,n.labelDistance);x=(x+u)/2;x>1.5*Math.PI?x-=2*Math.PI:x<-Math.PI/2&&(x+=2*Math.PI);n.slicedTranslation={translateX:Math.round(Math.cos(x)*l),translateY:Math.round(Math.sin(x)*l)};y=Math.cos(x)*a[2]/2;f=Math.sin(x)*a[2]/\n2;n.tooltipPos=[a[0]+.7*y,a[1]+.7*f];n.half=x<-Math.PI/2||x>Math.PI/2?1:0;n.angle=x;u=Math.min(d,n.labelDistance/5);n.labelPosition={natural:{x:a[0]+y+Math.cos(x)*n.labelDistance,y:a[1]+f+Math.sin(x)*n.labelDistance},computed:{},alignment:0>n.labelDistance?\"center\":n.half?\"right\":\"left\",connectorPosition:{breakAt:{x:a[0]+y+Math.cos(x)*u,y:a[1]+f+Math.sin(x)*u},touchingSliceAt:{x:a[0]+y,y:a[1]+f}}}}t(this,\"afterTranslate\")}updateTotals(){const a=this.points,e=a.length,g=this.options.ignoreHiddenPoint;\nlet d,k,h=0;for(d=0;d<e;d++)k=a[d],!k.isValid()||g&&!k.visible||(h+=k.y);this.total=h;for(d=0;d<e;d++)k=a[d],k.percentage=0<h&&(k.visible||!g)?k.y/h*100:0,k.total=h}}e.defaultOptions=m(z.defaultOptions,C);p(e.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:y.prototype.drawTracker,getCenter:a.getCenter,getSymbol:I,isCartesian:!1,noSharedTooltip:!0,pointAttribs:y.prototype.pointAttribs,pointClass:L,requireSorting:!1,searchPoint:I,trackerGroups:[\"group\",\"dataLabelsGroup\"]});H.registerSeriesType(\"pie\",\ne);return e});M(a,\"Series/Pie/PieDataLabel.js\",[a[\"Core/Series/DataLabel.js\"],a[\"Core/Globals.js\"],a[\"Core/Renderer/RendererUtilities.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C){const {noop:x}=y,{distribute:H}=I,{series:B}=L,{arrayMax:u,clamp:v,defined:l,merge:p,pick:t,relativeLength:m}=C;var h;(function(g){function e(){const a=this,d=a.data,e=a.chart,g=a.options.dataLabels||{},b=g.connectorPadding,f=e.plotWidth,c=e.plotHeight,h=e.plotLeft,m=Math.round(e.chartWidth/\n3),w=a.center,v=w[2]/2,x=w[1],y=[[],[]],z=[0,0,0,0],F=a.dataLabelPositioners;let C,A,E,I,L,M,J,N,O,S,W,U;a.visible&&(g.enabled||a._hasPointLabels)&&(d.forEach(function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),a.dataLabel.shortened=!1)}),B.prototype.drawDataLabels.apply(a),d.forEach(function(a){a.dataLabel&&(a.visible?(y[a.half].push(a),a.dataLabel._pos=null,!l(g.style.width)&&!l(a.options.dataLabels&&a.options.dataLabels.style&&\na.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>m&&(a.dataLabel.css({width:Math.round(.7*m)+\"px\"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),y.forEach((d,k)=>{const m=d.length,n=[];let q,p=0;if(m){a.sortByAngle(d,k-.5);if(0<a.maxLabelDistance){var r=Math.max(0,x-v-a.maxLabelDistance);q=Math.min(x+v+a.maxLabelDistance,e.plotHeight);d.forEach(function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,\nx-v-a.labelDistance),a.bottom=Math.min(x+v+a.labelDistance,e.plotHeight),p=a.dataLabel.getBBox().height||21,a.distributeBox={target:a.labelPosition.natural.y-a.top+p/2,size:p,rank:a.y},n.push(a.distributeBox))});r=q+p-r;H(n,r,r/5)}for(W=0;W<m;W++){C=d[W];M=C.labelPosition;I=C.dataLabel;S=!1===C.visible?\"hidden\":\"inherit\";O=r=M.natural.y;n&&l(C.distributeBox)&&(\"undefined\"===typeof C.distributeBox.pos?S=\"hidden\":(J=C.distributeBox.size,O=F.radialDistributionY(C)));delete C.positionIndex;if(g.justify)N=\nF.justify(C,v,w);else switch(g.alignTo){case \"connectors\":N=F.alignToConnectors(d,k,f,h);break;case \"plotEdges\":N=F.alignToPlotEdges(I,k,f,h);break;default:N=F.radialDistributionX(a,C,O,r)}I._attr={visibility:S,align:M.alignment};U=C.options.dataLabels||{};I._pos={x:N+t(U.x,g.x)+({left:b,right:-b}[M.alignment]||0),y:O+t(U.y,g.y)-I.getBBox().height/2};M&&(M.computed.x=N,M.computed.y=O);t(g.crop,!0)&&(L=I.getBBox().width,r=null,N-L<b&&1===k?(r=Math.round(L-N+b),z[3]=Math.max(r,z[3])):N+L>f-b&&0===k&&\n(r=Math.round(N+L-f+b),z[1]=Math.max(r,z[1])),0>O-J/2?z[0]=Math.max(Math.round(-O+J/2),z[0]):O+J/2>c&&(z[2]=Math.max(Math.round(O+J/2-c),z[2])),I.sideOverflow=r)}}}),0===u(z)||this.verifyDataLabelOverflow(z))&&(this.placeDataLabels(),this.points.forEach(function(b){U=p(g,b.options.dataLabels);if(A=t(U.connectorWidth,1)){let c;E=b.connector;if((I=b.dataLabel)&&I._pos&&b.visible&&0<b.labelDistance){S=I._attr.visibility;if(c=!E)b.connector=E=e.renderer.path().addClass(\"highcharts-data-label-connector  highcharts-color-\"+\nb.colorIndex+(b.className?\" \"+b.className:\"\")).add(a.dataLabelsGroup),e.styledMode||E.attr({\"stroke-width\":A,stroke:U.connectorColor||b.color||\"#666666\"});E[c?\"attr\":\"animate\"]({d:b.getConnectorPath()});E.attr(\"visibility\",S)}else E&&(b.connector=E.destroy())}}))}function h(){this.points.forEach(function(a){let d=a.dataLabel,e;d&&a.visible&&((e=d._pos)?(d.sideOverflow&&(d._attr.width=Math.max(d.getBBox().width-d.sideOverflow,0),d.css({width:d._attr.width+\"px\",textOverflow:(this.options.dataLabels.style||\n{}).textOverflow||\"ellipsis\"}),d.shortened=!0),d.attr(d._attr),d[d.moved?\"animate\":\"attr\"](e),d.moved=!0):d&&d.attr({y:-9999}));delete a.distributeBox},this)}function y(a){let d=this.center,e=this.options,g=e.center,b=e.minSize||80,f,c=null!==e.size;c||(null!==g[0]?f=Math.max(d[2]-Math.max(a[1],a[3]),b):(f=Math.max(d[2]-a[1]-a[3],b),d[0]+=(a[3]-a[1])/2),null!==g[1]?f=v(f,b,d[2]-Math.max(a[0],a[2])):(f=v(f,b,d[2]-a[0]-a[2]),d[1]+=(a[0]-a[2])/2),f<d[2]?(d[2]=f,d[3]=Math.min(e.thickness?Math.max(0,f-\n2*e.thickness):Math.max(0,m(e.innerSize||0,f)),f),this.translate(d),this.drawDataLabels&&this.drawDataLabels()):c=!0);return c}const z=[],d={radialDistributionY:function(a){return a.top+a.distributeBox.pos},radialDistributionX:function(a,d,e,g){return a.getX(e<d.top+2||e>d.bottom-2?g:e,d.half,d)},justify:function(a,d,e){return e[0]+(a.half?-1:1)*(d+a.labelDistance)},alignToPlotEdges:function(a,d,e,g){a=a.getBBox().width;return d?a+g:e-a-g},alignToConnectors:function(a,d,e,g){let b=0,f;a.forEach(function(a){f=\na.dataLabel.getBBox().width;f>b&&(b=f)});return d?b+g:e-b-g}};g.compose=function(g){a.compose(B);C.pushUnique(z,g)&&(g=g.prototype,g.dataLabelPositioners=d,g.alignDataLabel=x,g.drawDataLabels=e,g.placeDataLabels=h,g.verifyDataLabelOverflow=y)}})(h||(h={}));return h});M(a,\"Extensions/OverlappingDataLabels.js\",[a[\"Core/Chart/Chart.js\"],a[\"Core/Utilities.js\"]],function(a,y){function x(a,l){let p,t=!1;a&&(p=a.newOpacity,a.oldOpacity!==p&&(a.alignAttr&&a.placed?(a[p?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),\nt=!0,a.alignAttr.opacity=p,a[a.isOld?\"animate\":\"attr\"](a.alignAttr,null,function(){l.styledMode||a.css({pointerEvents:p?\"auto\":\"none\"})}),C(l,\"afterHideOverlappingLabel\")):a.attr({opacity:p})),a.isOld=!0);return t}const {addEvent:L,fireEvent:C,isArray:z,isNumber:H,objectEach:B,pick:u}=y;L(a,\"render\",function(){let a=this,l=[];(this.labelCollectors||[]).forEach(function(a){l=l.concat(a())});(this.yAxis||[]).forEach(function(a){a.stacking&&a.options.stackLabels&&!a.options.stackLabels.allowOverlap&&\nB(a.stacking.stacks,function(a){B(a,function(a){a.label&&l.push(a.label)})})});(this.series||[]).forEach(function(p){var t=p.options.dataLabels;p.visible&&(!1!==t.enabled||p._hasPointLabels)&&(t=m=>m.forEach(h=>{h.visible&&(z(h.dataLabels)?h.dataLabels:h.dataLabel?[h.dataLabel]:[]).forEach(function(g){const e=g.options;g.labelrank=u(e.labelrank,h.labelrank,h.shapeArgs&&h.shapeArgs.height);e.allowOverlap?(g.oldOpacity=g.opacity,g.newOpacity=1,x(g,a)):l.push(g)})}),t(p.nodes||[]),t(p.points))});this.hideOverlappingLabels(l)});\na.prototype.hideOverlappingLabels=function(a){let l=this,p=a.length,t=l.renderer;var m;let h;let g,e,w,u=!1;var v=function(a){let d,e;var g;let h=a.box?0:a.padding||0,b=g=0,f,c;if(a&&(!a.alignAttr||a.placed))return d=a.alignAttr||{x:a.attr(\"x\"),y:a.attr(\"y\")},e=a.parentGroup,a.width||(g=a.getBBox(),a.width=g.width,a.height=g.height,g=t.fontMetrics(a.element).h),f=a.width-2*h,(c={left:\"0\",center:\"0.5\",right:\"1\"}[a.alignValue])?b=+c*f:H(a.x)&&Math.round(a.x)!==a.translateX&&(b=a.x-a.translateX),{x:d.x+\n(e.translateX||0)+h-(b||0),y:d.y+(e.translateY||0)+h-g,width:a.width-2*h,height:a.height-2*h}};for(h=0;h<p;h++)if(m=a[h])m.oldOpacity=m.opacity,m.newOpacity=1,m.absoluteBox=v(m);a.sort(function(a,e){return(e.labelrank||0)-(a.labelrank||0)});for(h=0;h<p;h++)for(e=(v=a[h])&&v.absoluteBox,m=h+1;m<p;++m)w=(g=a[m])&&g.absoluteBox,!e||!w||v===g||0===v.newOpacity||0===g.newOpacity||\"hidden\"===v.visibility||\"hidden\"===g.visibility||w.x>=e.x+e.width||w.x+w.width<=e.x||w.y>=e.y+e.height||w.y+w.height<=e.y||\n((v.labelrank<g.labelrank?v:g).newOpacity=0);a.forEach(function(a){x(a,l)&&(u=!0)});u&&C(l,\"afterHideAllOverlappingLabels\")}});M(a,\"Extensions/BorderRadius.js\",[a[\"Core/Defaults.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Utilities.js\"]],function(a,y,I,L,C,z){const {defaultOptions:x}=a;({seriesTypes:a}=I);const {addEvent:B,extend:u,isObject:v,merge:l,relativeLength:p}=z,t={radius:0,scope:\"stack\",\nwhere:void 0},m=(a,g)=>{v(a)||(a={radius:a||0});return l(t,g,a)};if(-1===L.symbolCustomAttribs.indexOf(\"borderRadius\")){L.symbolCustomAttribs.push(\"borderRadius\",\"brBoxHeight\",\"brBoxY\");const h=C.prototype.symbols.arc;C.prototype.symbols.arc=function(a,g,l,m,d={}){a=h(a,g,l,m,d);const {innerR:e=0,r=l,start:q=0,end:t=0}=d;if(d.open||!d.borderRadius)return a;l=t-q;g=Math.sin(l/2);d=Math.max(Math.min(p(d.borderRadius||0,r-e),(r-e)/2,r*g/(1+g)),0);l=Math.min(d,l/Math.PI*2*e);for(g=a.length-1;g--;){{let e=\nvoid 0,h=void 0,k=void 0;m=a;var b=g,f=1<g?l:d,c=m[b],n=m[b+1];\"Z\"===n[0]&&(n=m[0]);\"M\"!==c[0]&&\"L\"!==c[0]||\"A\"!==n[0]?\"A\"!==c[0]||\"M\"!==n[0]&&\"L\"!==n[0]||(k=n,h=c):(k=c,h=n,e=!0);if(k&&h&&h.params){c=h[1];var w=h[5];n=h.params;const {start:a,end:d,cx:g,cy:l}=n;var u=w?c-f:c+f;const p=u?Math.asin(f/u):0;w=w?p:-p;u*=Math.cos(p);e?(n.start=a+w,k[1]=g+u*Math.cos(a),k[2]=l+u*Math.sin(a),m.splice(b+1,0,[\"A\",f,f,0,0,1,g+c*Math.cos(n.start),l+c*Math.sin(n.start)])):(n.end=d-w,h[6]=g+c*Math.cos(n.end),h[7]=\nl+c*Math.sin(n.end),m.splice(b+1,0,[\"A\",f,f,0,0,1,g+u*Math.cos(d),l+u*Math.sin(d)]));h[4]=Math.abs(n.end-n.start)<Math.PI?0:1}}}return a};const g=C.prototype.symbols.roundedRect;C.prototype.symbols.roundedRect=function(a,h,l,m,d={}){const e=g(a,h,l,m,d),{r:p=0,brBoxHeight:q=m,brBoxY:t=h}=d;var b=h-t,f=t+q-(h+m);d=-.1<b-p?0:p;const c=-.1<f-p?0:p;var n=Math.max(d&&b,0);const u=Math.max(c&&f,0);f=[a+d,h];b=[a+l-d,h];const w=[a+l,h+d],v=[a+l,h+m-c],x=[a+l-c,h+m],y=[a+c,h+m],z=[a,h+m-c],B=[a,h+d];if(n){const a=\nMath.sqrt(Math.pow(d,2)-Math.pow(d-n,2));f[0]-=a;b[0]+=a;w[1]=B[1]=h+d-n}m<d-n&&(n=Math.sqrt(Math.pow(d,2)-Math.pow(d-n-m,2)),w[0]=v[0]=a+l-d+n,x[0]=Math.min(w[0],x[0]),y[0]=Math.max(v[0],y[0]),z[0]=B[0]=a+d-n,w[1]=B[1]=h+m);u&&(n=Math.sqrt(Math.pow(c,2)-Math.pow(c-u,2)),x[0]+=n,y[0]-=n,v[1]=z[1]=h+m-c+u);m<c-u&&(m=Math.sqrt(Math.pow(c,2)-Math.pow(c-u-m,2)),w[0]=v[0]=a+l-c+m,b[0]=Math.min(w[0],b[0]),f[0]=Math.max(v[0],f[0]),z[0]=B[0]=a+c-m,v[1]=z[1]=h);e.length=0;e.push([\"M\",...f],[\"L\",...b],[\"A\",\nd,d,0,0,1,...w],[\"L\",...v],[\"A\",c,c,0,0,1,...x],[\"L\",...y],[\"A\",c,c,0,0,1,...z],[\"L\",...B],[\"A\",d,d,0,0,1,...f],[\"Z\"]);return e};B(a.pie,\"afterTranslate\",function(){const a=m(this.options.borderRadius);for(const e of this.points){const g=e.shapeArgs;g&&(g.borderRadius=p(a.radius,(g.r||0)-(g.innerR||0)))}});B(y,\"afterColumnTranslate\",function(){var a,g;if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){const {options:e,yAxis:r}=this,q=\"percent\"===e.stacking;var h=null===(g=null===\n(a=x.plotOptions)||void 0===a?void 0:a[this.type])||void 0===g?void 0:g.borderRadius;a=m(e.borderRadius,v(h)?h:{});g=r.options.reversed;for(const k of this.points)if({shapeArgs:h}=k,\"roundedRect\"===k.shapeType&&h){const {width:b=0,height:f=0,y:c=0}=h;var l=c,d=f;\"stack\"===a.scope&&k.stackTotal&&(l=r.translate(q?100:k.stackTotal,!1,!0,!1,!0),d=r.translate(e.threshold||0,!1,!0,!1,!0),d=this.crispCol(0,Math.min(l,d),0,Math.abs(l-d)),l=d.y,d=d.height);const m=-1===(k.negative?-1:1)*(g?-1:1);let t=a.where;\n!t&&this.is(\"waterfall\")&&Math.abs((k.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(t=\"all\");t||(t=\"end\");const v=Math.min(p(a.radius,b),b/2,\"all\"===t?f/2:Infinity)||0;\"end\"===t&&(m&&(l-=v),d+=v);u(h,{brBoxHeight:d,brBoxY:l,r:v})}}},{order:9})}y={optionsToObject:m};\"\";return y});M(a,\"Core/Responsive.js\",[a[\"Core/Utilities.js\"]],function(a){const {diffObjects:x,extend:I,find:L,merge:C,pick:z,uniqueKey:H}=a;var B;(function(u){function v(a,l){const h=a.condition;(h.callback||function(){return this.chartWidth<=\nz(h.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=z(h.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=z(h.minWidth,0)&&this.chartHeight>=z(h.minHeight,0)}).call(this)&&l.push(a._id)}function l(a,l){const h=this.options.responsive;var g=this.currentResponsive;let e=[];!l&&h&&h.rules&&h.rules.forEach(a=>{\"undefined\"===typeof a._id&&(a._id=H());this.matchResponsiveRule(a,e)},this);l=C(...e.map(a=>L((h||{}).rules||[],e=>e._id===a)).map(a=>a&&a.chartOptions));l.isResponsiveOptions=!0;e=e.toString()||void 0;\ne!==(g&&g.ruleIds)&&(g&&this.update(g.undoOptions,a,!0),e?(g=x(l,this.options,!0,this.collectionsWithUpdate),g.isResponsiveOptions=!0,this.currentResponsive={ruleIds:e,mergedOptions:l,undoOptions:g},this.update(l,a,!0)):this.currentResponsive=void 0)}const p=[];u.compose=function(t){a.pushUnique(p,t)&&I(t.prototype,{matchResponsiveRule:v,setResponsive:l});return t}})(B||(B={}));\"\";\"\";return B});M(a,\"masters/highcharts.src.js\",[a[\"Core/Globals.js\"],a[\"Core/Utilities.js\"],a[\"Core/Defaults.js\"],a[\"Core/Animation/Fx.js\"],\na[\"Core/Animation/AnimationUtilities.js\"],a[\"Core/Renderer/HTML/AST.js\"],a[\"Core/Templating.js\"],a[\"Core/Renderer/RendererUtilities.js\"],a[\"Core/Renderer/SVG/SVGElement.js\"],a[\"Core/Renderer/SVG/SVGRenderer.js\"],a[\"Core/Renderer/HTML/HTMLElement.js\"],a[\"Core/Renderer/HTML/HTMLRenderer.js\"],a[\"Core/Axis/Axis.js\"],a[\"Core/Axis/DateTimeAxis.js\"],a[\"Core/Axis/LogarithmicAxis.js\"],a[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"],a[\"Core/Axis/Tick.js\"],a[\"Core/Tooltip.js\"],a[\"Core/Series/Point.js\"],a[\"Core/Pointer.js\"],\na[\"Core/Legend/Legend.js\"],a[\"Core/Chart/Chart.js\"],a[\"Core/Axis/Stacking/StackingAxis.js\"],a[\"Core/Axis/Stacking/StackItem.js\"],a[\"Core/Series/Series.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Series/Column/ColumnSeries.js\"],a[\"Series/Column/ColumnDataLabel.js\"],a[\"Series/Pie/PieSeries.js\"],a[\"Series/Pie/PieDataLabel.js\"],a[\"Core/Series/DataLabel.js\"],a[\"Core/Responsive.js\"],a[\"Core/Color/Color.js\"],a[\"Core/Time.js\"]],function(a,y,I,L,C,z,H,B,u,v,l,p,t,m,h,g,e,w,E,F,d,k,r,q,G,b,f,c,n,M,D,K,U,T){a.animate=\nC.animate;a.animObject=C.animObject;a.getDeferredAnimation=C.getDeferredAnimation;a.setAnimation=C.setAnimation;a.stop=C.stop;a.timers=L.timers;a.AST=z;a.Axis=t;a.Chart=k;a.chart=k.chart;a.Fx=L;a.Legend=d;a.PlotLineOrBand=g;a.Point=E;a.Pointer=F;a.Series=G;a.StackItem=q;a.SVGElement=u;a.SVGRenderer=v;a.Templating=H;a.Tick=e;a.Time=T;a.Tooltip=w;a.Color=U;a.color=U.parse;p.compose(v);l.compose(u);F.compose(k);d.compose(k);a.defaultOptions=I.defaultOptions;a.getOptions=I.getOptions;a.time=I.defaultTime;\na.setOptions=I.setOptions;a.dateFormat=H.dateFormat;a.format=H.format;a.numberFormat=H.numberFormat;a.addEvent=y.addEvent;a.arrayMax=y.arrayMax;a.arrayMin=y.arrayMin;a.attr=y.attr;a.clearTimeout=y.clearTimeout;a.correctFloat=y.correctFloat;a.createElement=y.createElement;a.css=y.css;a.defined=y.defined;a.destroyObjectProperties=y.destroyObjectProperties;a.discardElement=y.discardElement;a.distribute=B.distribute;a.erase=y.erase;a.error=y.error;a.extend=y.extend;a.extendClass=y.extendClass;a.find=\ny.find;a.fireEvent=y.fireEvent;a.getMagnitude=y.getMagnitude;a.getStyle=y.getStyle;a.inArray=y.inArray;a.isArray=y.isArray;a.isClass=y.isClass;a.isDOMElement=y.isDOMElement;a.isFunction=y.isFunction;a.isNumber=y.isNumber;a.isObject=y.isObject;a.isString=y.isString;a.keys=y.keys;a.merge=y.merge;a.normalizeTickInterval=y.normalizeTickInterval;a.objectEach=y.objectEach;a.offset=y.offset;a.pad=y.pad;a.pick=y.pick;a.pInt=y.pInt;a.relativeLength=y.relativeLength;a.removeEvent=y.removeEvent;a.seriesType=\nb.seriesType;a.splat=y.splat;a.stableSort=y.stableSort;a.syncTimeout=y.syncTimeout;a.timeUnits=y.timeUnits;a.uniqueKey=y.uniqueKey;a.useSerialIds=y.useSerialIds;a.wrap=y.wrap;c.compose(f);D.compose(G);m.compose(t);h.compose(t);M.compose(n);g.compose(t);K.compose(k);r.compose(t,k,G);w.compose(F);return a});a[\"masters/highcharts.src.js\"]._modules=a;return a[\"masters/highcharts.src.js\"]});\n//# sourceMappingURL=highcharts.js.map","/*\n Highmaps JS v11.1.0 (2023-06-05)\n\n (c) 2009-2021 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n'use strict';(function(b){\"object\"===typeof module&&module.exports?(b[\"default\"]=b,module.exports=b):\"function\"===typeof define&&define.amd?define(\"highcharts/modules/heatmap\",[\"highcharts\"],function(u){b(u);b.Highcharts=u;return b}):b(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(b){function u(b,k,x,D){b.hasOwnProperty(k)||(b[k]=D.apply(null,x),\"function\"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:k,module:b[k]}})))}b=b?b._modules:\n{};u(b,\"Core/Axis/Color/ColorAxisComposition.js\",[b[\"Core/Color/Color.js\"],b[\"Core/Utilities.js\"]],function(b,k){const {parse:x}=b,{addEvent:n,extend:v,merge:y,pick:A,splat:g}=k;var p;(function(b){function p(){const a=this.options;this.colorAxis=[];a.colorAxis&&(a.colorAxis=g(a.colorAxis),a.colorAxis.forEach(a=>{new f(this,a)}))}function E(a){const e=c=>{c=a.allItems.indexOf(c);-1!==c&&(this.destroyItem(a.allItems[c]),a.allItems.splice(c,1))};let c=[],l,d;(this.chart.colorAxis||[]).forEach(function(a){(l=\na.options)&&l.showInLegend&&(l.dataClasses&&l.visible?c=c.concat(a.getDataClassLegendSymbols()):l.visible&&c.push(a),a.series.forEach(function(a){if(!a.options.showInLegend||l.dataClasses)\"point\"===a.options.legendType?a.points.forEach(function(a){e(a)}):e(a)}))});for(d=c.length;d--;)a.allItems.unshift(c[d])}function w(a){a.visible&&a.item.legendColor&&a.item.legendItem.symbol.attr({fill:a.item.legendColor})}function r(){const a=this.chart.colorAxis;a&&a.forEach(function(a,c,e){a.update({},e)})}function q(){(this.chart.colorAxis&&\nthis.chart.colorAxis.length||this.colorAttribs)&&this.translateColors()}function c(){const a=this.axisTypes;a?-1===a.indexOf(\"colorAxis\")&&a.push(\"colorAxis\"):this.axisTypes=[\"colorAxis\"]}function a(a){const c=this,e=a?\"show\":\"hide\";c.visible=c.options.visible=!!a;[\"graphic\",\"dataLabel\"].forEach(function(a){if(c[a])c[a][e]()});this.series.buildKDTree()}function m(){const a=this,c=this.options.nullColor,e=this.colorAxis,d=this.colorKey;(this.data.length?this.data:this.points).forEach(f=>{var h=f.getNestedProperty(d);\n(h=f.options.color||(f.isNull||null===f.value?c:e&&\"undefined\"!==typeof h?e.toColor(h,f):f.color||a.color))&&f.color!==h&&(f.color=h,\"point\"===a.options.legendType&&f.legendItem&&f.legendItem.label&&a.chart.legend.colorizeItem(f,f.visible))})}function d(a){const c=a.prototype.createAxis;a.prototype.createAxis=function(a,e){if(\"colorAxis\"!==a)return c.apply(this,arguments);const d=new f(this,y(e.axis,{index:this[a].length,isX:!1}));this.isDirtyLegend=!0;this.axes.forEach(function(a){a.series=[]});\nthis.series.forEach(function(a){a.bindAxes();a.isDirtyData=!0});A(e.redraw,!0)&&this.redraw(e.animation);return d}}function C(){this.elem.attr(\"fill\",x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}function e(){this.elem.attr(\"stroke\",x(this.start).tweenTo(x(this.end),this.pos),void 0,!0)}const h=[];let f;b.compose=function(l,b,B,z,g){f||(f=l);k.pushUnique(h,b)&&(l=b.prototype,l.collectionsWithUpdate.push(\"colorAxis\"),l.collectionsWithInit.colorAxis=[l.addColorAxis],n(b,\"afterGetAxes\",p),d(b));\nk.pushUnique(h,B)&&(b=B.prototype,b.fillSetter=C,b.strokeSetter=e);k.pushUnique(h,z)&&(n(z,\"afterGetAllItems\",E),n(z,\"afterColorizeItem\",w),n(z,\"afterUpdate\",r));k.pushUnique(h,g)&&(v(g.prototype,{optionalAxis:\"colorAxis\",translateColors:m}),v(g.prototype.pointClass.prototype,{setVisible:a}),n(g,\"afterTranslate\",q,{order:1}),n(g,\"bindAxes\",c))};b.pointSetVisible=a})(p||(p={}));return p});u(b,\"Core/Axis/Color/ColorAxisDefaults.js\",[],function(){return{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:\"#ffffff\",\ngridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:\"#999999\"},labels:{distance:8,overflow:\"justify\",rotation:0},minColor:\"#e6e9ff\",maxColor:\"#0022ff\",tickLength:5,showInLegend:!0}});u(b,\"Core/Axis/Color/ColorAxis.js\",[b[\"Core/Axis/Axis.js\"],b[\"Core/Color/Color.js\"],b[\"Core/Axis/Color/ColorAxisComposition.js\"],b[\"Core/Axis/Color/ColorAxisDefaults.js\"],b[\"Core/Legend/LegendSymbol.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],\nfunction(b,k,x,u,v,y,A){const {parse:g}=k,{series:p}=y,{extend:E,isArray:n,isNumber:t,merge:w,pick:r}=A;class q extends b{static compose(c,a,m,d){x.compose(q,c,a,m,d)}constructor(c,a){super(c,a);this.beforePadding=!1;this.chart=void 0;this.coll=\"colorAxis\";this.stops=this.options=this.dataClasses=void 0;this.visible=!0;this.init(c,a)}init(c,a){var m=c.options.legend||{};const d=a.layout?\"vertical\"!==a.layout:\"vertical\"!==m.layout,b=a.visible;m=w(q.defaultColorAxisOptions,a,{showEmpty:!1,title:null,\nvisible:m.enabled&&!1!==b});this.side=a.side||d?2:1;this.reversed=a.reversed||!d;this.opposite=!d;super.init(c,m,\"colorAxis\");this.userOptions=a;n(c.userOptions.colorAxis)&&(c.userOptions.colorAxis[this.index]=a);a.dataClasses&&this.initDataClasses(a);this.initStops();this.horiz=d;this.zoomEnabled=!1}initDataClasses(c){const a=this.chart,m=this.legendItem=this.legendItem||{},d=c.dataClasses.length,b=this.options;let e,h=0,f=a.options.chart.colorCount;this.dataClasses=e=[];m.labels=[];(c.dataClasses||\n[]).forEach(function(c,m){c=w(c);e.push(c);if(a.styledMode||!c.color)\"category\"===b.dataClassColor?(a.styledMode||(m=a.options.colors,f=m.length,c.color=m[h]),c.colorIndex=h,h++,h===f&&(h=0)):c.color=g(b.minColor).tweenTo(g(b.maxColor),2>d?.5:m/(d-1))})}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}initStops(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];this.stops.forEach(function(c){c.color=\ng(c[1])})}setOptions(c){super.setOptions(c);this.options.crosshair=this.options.marker}setAxisSize(){var c=this.legendItem&&this.legendItem.symbol;const a=this.chart;var m=a.options.legend||{};let d,b;c?(this.left=m=c.attr(\"x\"),this.top=d=c.attr(\"y\"),this.width=b=c.attr(\"width\"),this.height=c=c.attr(\"height\"),this.right=a.chartWidth-m-b,this.bottom=a.chartHeight-d-c,this.len=this.horiz?b:c,this.pos=this.horiz?m:d):this.len=(this.horiz?m.symbolWidth:m.symbolHeight)||q.defaultLegendLength}normalizedValue(c){this.logarithmic&&\n(c=this.logarithmic.log2lin(c));return 1-(this.max-c)/(this.max-this.min||1)}toColor(c,a){const m=this.dataClasses;var d=this.stops;let b,e,h,f;if(m)for(f=m.length;f--;){if(h=m[f],b=h.from,d=h.to,(\"undefined\"===typeof b||c>=b)&&(\"undefined\"===typeof d||c<=d)){e=h.color;a&&(a.dataClass=f,a.colorIndex=h.colorIndex);break}}else{c=this.normalizedValue(c);for(f=d.length;f--&&!(c>d[f][0]););b=d[f]||d[f+1];d=d[f+1]||b;c=1-(d[0]-c)/(d[0]-b[0]||1);e=b.color.tweenTo(d.color,c)}return e}getOffset(){const c=\nthis.legendItem&&this.legendItem.group,a=this.chart.axisOffset[this.side];if(c){this.axisParent=c;super.getOffset();const b=this.chart.legend;b.allItems.forEach(function(a){a instanceof q&&a.drawLegendSymbol(b,a)});b.render();this.chart.getMargins(!0);this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width);this.chart.axisOffset[this.side]=a}}setLegendColor(){var c=this.reversed,a=c?1:0;c=c?0:1;a=this.horiz?[a,0,c,0]:[0,c,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],\ny2:a[3]},stops:this.stops}}drawLegendSymbol(c,a){var b;a=a.legendItem||{};const d=c.padding,g=c.options,e=this.options.labels,h=r(g.itemDistance,10),f=this.horiz,l=r(g.symbolWidth,f?q.defaultLegendLength:12),p=r(g.symbolHeight,f?12:q.defaultLegendLength),B=r(g.labelPadding,f?16:30);this.setLegendColor();a.symbol||(a.symbol=this.chart.renderer.symbol(\"roundedRect\",0,c.baseline-11,l,p,{r:null!==(b=g.symbolRadius)&&void 0!==b?b:3}).attr({zIndex:1}).add(a.group));a.labelWidth=l+d+(f?h:r(e.x,e.distance)+\nthis.maxLabelLength);a.labelHeight=p+d+(f?B:0)}setState(c){this.series.forEach(function(a){a.setState(c)})}setVisible(){}getSeriesExtremes(){const c=this.series;let a;let b,d,g=c.length,e,h;this.dataMin=Infinity;for(this.dataMax=-Infinity;g--;){d=c[g];a=d.colorKey=r(d.options.colorKey,d.colorKey,d.pointValKey,d.zoneAxis,\"y\");var f=d.pointArrayMap;b=d[a+\"Min\"]&&d[a+\"Max\"];if(d[a+\"Data\"])var l=d[a+\"Data\"];else if(f){if(l=[],f=f.indexOf(a),e=d.yData,0<=f&&e)for(h=0;h<e.length;h++)l.push(r(e[h][f],e[h]))}else l=\nd.yData;b?(d.minColorValue=d[a+\"Min\"],d.maxColorValue=d[a+\"Max\"]):(l=p.prototype.getExtremes.call(d,l),d.minColorValue=l.dataMin,d.maxColorValue=l.dataMax);\"undefined\"!==typeof d.minColorValue&&(this.dataMin=Math.min(this.dataMin,d.minColorValue),this.dataMax=Math.max(this.dataMax,d.maxColorValue));b||p.prototype.applyExtremes.call(d)}}drawCrosshair(c,a){const b=this.legendItem||{},d=a&&a.plotX,g=a&&a.plotY,e=this.pos,h=this.len;let f;a&&(f=this.toPixels(a.getNestedProperty(a.series.colorKey)),f<\ne?f=e-2:f>e+h&&(f=e+h+2),a.plotX=f,a.plotY=this.len-f,super.drawCrosshair(c,a),a.plotX=d,a.plotY=g,this.cross&&!this.cross.addedToColorAxis&&b.group&&(this.cross.addClass(\"highcharts-coloraxis-marker\").add(b.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||\"object\"!==typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(c){const a=this.left,b=c.translatedValue,d=this.top;return t(b)?this.horiz?[[\"M\",b-4,d-6],[\"L\",b+4,d-6],[\"L\",b,d],[\"Z\"]]:[[\"M\",a,b],[\"L\",\na-6,b+6],[\"L\",a-6,b-6],[\"Z\"]]:super.getPlotLinePath(c)}update(c,a){const b=this.chart.legend;this.series.forEach(a=>{a.isDirtyData=!0});(c.dataClasses&&b.allItems||this.dataClasses)&&this.destroyItems();super.update(c,a);this.legendItem&&this.legendItem.label&&(this.setLegendColor(),b.colorizeItem(this,!0))}destroyItems(){const c=this.chart,a=this.legendItem||{};if(a.label)c.legend.destroyItem(this);else if(a.labels)for(const b of a.labels)c.legend.destroyItem(b);c.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=\n!0;this.destroyItems();super.destroy(...[].slice.call(arguments))}remove(c){this.destroyItems();super.remove(c)}getDataClassLegendSymbols(){const c=this,a=c.chart,b=c.legendItem&&c.legendItem.labels||[],d=a.options.legend,g=r(d.valueDecimals,-1),e=r(d.valueSuffix,\"\"),h=a=>c.series.reduce((c,e)=>{c.push(...e.points.filter(c=>c.dataClass===a));return c},[]);let f;b.length||c.dataClasses.forEach((d,m)=>{const l=d.from,z=d.to,{numberFormatter:p}=a;let k=!0;f=\"\";\"undefined\"===typeof l?f=\"< \":\"undefined\"===\ntypeof z&&(f=\"> \");\"undefined\"!==typeof l&&(f+=p(l,g)+e);\"undefined\"!==typeof l&&\"undefined\"!==typeof z&&(f+=\" - \");\"undefined\"!==typeof z&&(f+=p(z,g)+e);b.push(E({chart:a,name:f,options:{},drawLegendSymbol:v.rectangle,visible:!0,isDataClass:!0,setState:a=>{for(const c of h(m))c.setState(a)},setVisible:function(){this.visible=k=c.visible=!k;for(const a of h(m))a.setVisible(k);a.legend.colorizeItem(this,k)}},d))});return b}}q.defaultColorAxisOptions=u;q.defaultLegendLength=200;q.keepProps=[\"legendItem\"];\nArray.prototype.push.apply(b.keepProps,q.keepProps);\"\";return q});u(b,\"Series/ColorMapComposition.js\",[b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(b,k){const {column:{prototype:n}}=b.seriesTypes,{addEvent:u,defined:v}=k;var y;(function(b){function g(b){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:b&&\"hover\"===b.state?1:0})}const p=[];b.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&Infinity!==this.value&&\n-Infinity!==this.value&&(void 0===this.value||!isNaN(this.value))}};b.seriesMembers={colorKey:\"value\",axisTypes:[\"xAxis\",\"yAxis\",\"colorAxis\"],parallelArrays:[\"x\",\"y\",\"value\"],pointArrayMap:[\"value\"],trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],colorAttribs:function(b){const g={};!v(b.color)||b.state&&\"normal\"!==b.state||(g[this.colorProp||\"fill\"]=b.color);return g},pointAttribs:n.pointAttribs};b.compose=function(b){const n=b.prototype.pointClass;k.pushUnique(p,n)&&u(n,\"afterSetState\",g);\nreturn b}})(y||(y={}));return y});u(b,\"Series/Heatmap/HeatmapPoint.js\",[b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Utilities.js\"]],function(b,k){({seriesTypes:{scatter:{prototype:{pointClass:b}}}}=b);const {clamp:n,defined:u,extend:v,pick:y}=k;class A extends b{constructor(){super(...arguments);this.y=this.x=this.value=this.series=this.options=void 0}applyOptions(b,p){(this.isNull||null===this.value)&&delete this.color;super.applyOptions(b,p);this.formatPrefix=this.isNull||null===this.value?\"null\":\n\"point\";return this}getCellAttributes(){var b=this.series;const p=b.options,k=(p.colsize||1)/2,v=(p.rowsize||1)/2,t=b.xAxis,w=b.yAxis,r=this.options.marker||b.options.marker;b=b.pointPlacementToXValue();const q=y(this.pointPadding,p.pointPadding,0),c={x1:n(Math.round(t.len-t.translate(this.x-k,!1,!0,!1,!0,-b)),-t.len,2*t.len),x2:n(Math.round(t.len-t.translate(this.x+k,!1,!0,!1,!0,-b)),-t.len,2*t.len),y1:n(Math.round(w.translate(this.y-v,!1,!0,!1,!0)),-w.len,2*w.len),y2:n(Math.round(w.translate(this.y+\nv,!1,!0,!1,!0)),-w.len,2*w.len)};[[\"width\",\"x\"],[\"height\",\"y\"]].forEach(function(a){var b=a[0];a=a[1];let d=a+\"1\",g=a+\"2\";const e=Math.abs(c[d]-c[g]),h=r&&r.lineWidth||0,f=Math.abs(c[d]+c[g])/2;b=r&&r[b];u(b)&&b<e&&(b=b/2+h/2,c[d]=f-b,c[g]=f+b);if(q){if(\"x\"===a&&t.reversed||\"y\"===a&&!w.reversed)d=g,g=a+\"1\";c[d]+=q;c[g]-=q}});return c}haloPath(b){if(!b)return[];const {x:g=0,y:k=0,width:n=0,height:t=0}=this.shapeArgs||{};return[[\"M\",g-b,k-b],[\"L\",g-b,k+t+b],[\"L\",g+n+b,k+t+b],[\"L\",g+n+b,k-b],[\"Z\"]]}isValid(){return Infinity!==\nthis.value&&-Infinity!==this.value}}v(A.prototype,{dataLabelOnNull:!0,moveToTopOnHover:!0,ttBelow:!1});return A});u(b,\"Series/Heatmap/HeatmapSeries.js\",[b[\"Core/Color/Color.js\"],b[\"Series/ColorMapComposition.js\"],b[\"Core/Globals.js\"],b[\"Series/Heatmap/HeatmapPoint.js\"],b[\"Core/Series/SeriesRegistry.js\"],b[\"Core/Renderer/SVG/SVGRenderer.js\"],b[\"Core/Utilities.js\"]],function(b,k,u,D,v,y,A){const {doc:g}=u,{series:p,seriesTypes:{column:n,scatter:x}}=v,{prototype:{symbols:t}}=y,{clamp:w,extend:r,fireEvent:q,\nisNumber:c,merge:a,pick:m,defined:d}=A;class C extends x{constructor(){super(...arguments);this.points=this.options=this.data=this.context=this.colorAxis=this.canvas=void 0;this.valueMin=this.valueMax=NaN}drawPoints(){const a=this;var b=a.options,c=b.marker||{};if(b.interpolation){const {image:e,chart:f,xAxis:h,yAxis:n,points:p}=a;c=p.length-1;const {len:B,reversed:t}=h,{len:q,reversed:u}=n,{min:r,max:v}=h.getExtremes(),{min:x,max:y}=n.getExtremes(),[A,C]=[m(b.colsize,1),m(b.rowsize,1)];var l=f.inverted,\ng=A/2;b=h.userOptions.minPadding;var k=d(b)&&!(0<b);b=l||k;g=k&&g||0;const [F,D,E]=[r-g,v+2*g,r+A].map(b=>w(Math.round(h.len-h.translate(b,!1,!0,!1,!0,-a.pointPlacementToXValue())),-h.len,2*h.len)),[I,J]=t?[D,F]:[F,D];g=B/E/2/2/2;l=l?{width:B,height:q,x:0,y:0}:{x:I-g,width:J-g,height:q,y:0};if(!e||a.isDirtyData){const d=f.colorAxis&&f.colorAxis[0];g=a.getContext();if((k=a.canvas)&&g&&d){const h=k.width=~~((v-r)/A)+1,z=k.height=~~((y-x)/C)+1,n=h*z,B=new Uint8ClampedArray(4*n),q=h-(b&&1||0),w=z-1;b=\na=>{a=d.toColor(a.value||0,m(a)).split(\")\")[0].split(\"(\")[1].split(\",\").map(a=>m(parseFloat(a),parseInt(a,10)));a[3]=255*m(a[3],1);return a};const F=t?a=>q-a:a=>a,G=u?a=>w-a:a=>a,H=(a,b)=>Math.ceil(h*G(~~((w-0)/(y-x)*(y-b-x)))+F(~~((q-0)/(v-r)*(a-r))));a.buildKDTree();a.directTouch=!1;for(let a=0;a<n;a++){const e=p[~~((c-0)/(B.length-4)*a*4)],d=new Uint8ClampedArray(b(e));B.set(d,4*H(e.x,e.y))}g.putImageData(new ImageData(B,h,z),0,0);e?e.attr(Object.assign(Object.assign({},l),{href:k.toDataURL()})):\na.image=f.renderer.image(k.toDataURL()).attr(l).add(a.group)}}else e.width===l.width&&e.height===l.height||e.attr(l)}else if(c.enabled||a._hasPointMarkers)p.prototype.drawPoints.call(a),a.points.forEach(b=>{b.graphic&&(b.graphic[a.chart.styledMode?\"css\":\"animate\"](a.colorAttribs(b)),null===b.value&&b.graphic.addClass(\"highcharts-null-point\"))})}getContext(){const {canvas:a,context:b}=this;if(a&&b)b.clearRect(0,0,a.width,a.height);else return this.canvas=g.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\")||\nvoid 0;return b}getExtremes(){const {dataMin:a,dataMax:b}=p.prototype.getExtremes.call(this,this.valueData);c(a)&&(this.valueMin=a);c(b)&&(this.valueMax=b);return p.prototype.getExtremes.call(this)}getValidPoints(a,b){return p.prototype.getValidPoints.call(this,a,b,!0)}hasData(){return!!this.processedXData.length}init(){super.init.apply(this,arguments);const a=this.options;a.pointRange=m(a.pointRange,a.colsize||1);this.yAxis.axisPointRange=a.rowsize||1;t.ellipse=t.circle;a.marker&&c(a.borderRadius)&&\n(a.marker.r=a.borderRadius)}markerAttribs(a,b){const c=a.shapeArgs||{};if(a.hasImage)return{x:a.plotX,y:a.plotY};if(b&&\"normal\"!==b){var d=a.options.marker||{};a=this.options.marker||{};a=a.states&&a.states[b]||{};d=d.states&&d.states[b]||{};b=(d.width||a.width||c.width||0)+(d.widthPlus||a.widthPlus||0);a=(d.height||a.height||c.height||0)+(d.heightPlus||a.heightPlus||0);return{x:(c.x||0)+((c.width||0)-b)/2,y:(c.y||0)+((c.height||0)-a)/2,width:b,height:a}}return c}pointAttribs(c,d){const f=p.prototype.pointAttribs.call(this,\nc,d),e=this.options||{};var h=this.chart.options.plotOptions||{},g=h.series||{};const k=h.heatmap||{};h=c&&c.options.borderColor||e.borderColor||k.borderColor||g.borderColor;g=c&&c.options.borderWidth||e.borderWidth||k.borderWidth||g.borderWidth||f[\"stroke-width\"];f.stroke=c&&c.marker&&c.marker.lineColor||e.marker&&e.marker.lineColor||h||this.color;f[\"stroke-width\"]=g;d&&\"normal\"!==d&&(c=a(e.states&&e.states[d],e.marker&&e.marker.states&&e.marker.states[d],c&&c.options.states&&c.options.states[d]||\n{}),f.fill=c.color||b.parse(f.fill).brighten(c.brightness||0).get(),f.stroke=c.lineColor||f.stroke);return f}translate(){const {borderRadius:b,marker:d}=this.options,f=d&&d.symbol||\"rect\",g=t[f]?f:\"rect\",k=-1!==[\"circle\",\"square\"].indexOf(g);this.generatePoints();this.points.forEach(function(d){const e=d.getCellAttributes();let h=Math.min(e.x1,e.x2);var l=Math.min(e.y1,e.y2);let n=Math.max(Math.abs(e.x2-e.x1),0),m=Math.max(Math.abs(e.y2-e.y1),0);d.hasImage=0===(d.marker&&d.marker.symbol||f||\"\").indexOf(\"url\");\nk&&(l=Math.abs(n-m),h=Math.min(e.x1,e.x2)+(n<m?0:l/2),l=Math.min(e.y1,e.y2)+(n<m?l/2:0),n=m=Math.min(n,m));d.hasImage&&(d.marker={width:n,height:m});d.plotX=d.clientX=(e.x1+e.x2)/2;d.plotY=(e.y1+e.y2)/2;d.shapeType=\"path\";d.shapeArgs=a(!0,{x:h,y:l,width:n,height:m},{d:t[g](h,l,n,m,{r:c(b)?b:0})})});q(this,\"afterTranslate\")}}C.defaultOptions=a(x.defaultOptions,{animation:!1,borderRadius:0,borderWidth:0,interpolation:!1,nullColor:\"#f7f7f7\",dataLabels:{formatter:function(){const {numberFormatter:a}=\nthis.series.chart,{value:b}=this.point;return c(b)?a(b,-1):\"\"},inside:!0,verticalAlign:\"middle\",crop:!1,overflow:\"allow\",padding:0},marker:{symbol:\"rect\",radius:0,lineColor:void 0,states:{hover:{lineWidthPlus:0},select:{}}},clip:!0,pointRange:null,tooltip:{pointFormat:\"{point.x}, {point.y}: {point.value}<br/>\"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:\"rectangle\"});r(C.prototype,{axisTypes:k.seriesMembers.axisTypes,colorKey:k.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,\nparallelArrays:k.seriesMembers.parallelArrays,pointArrayMap:[\"y\",\"value\"],pointClass:D,specialGroup:\"group\",trackerGroups:k.seriesMembers.trackerGroups,alignDataLabel:n.prototype.alignDataLabel,colorAttribs:k.seriesMembers.colorAttribs,getSymbol:p.prototype.getSymbol});k.compose(C);v.registerSeriesType(\"heatmap\",C);\"\";\"\";return C});u(b,\"masters/modules/heatmap.src.js\",[b[\"Core/Globals.js\"],b[\"Core/Axis/Color/ColorAxis.js\"]],function(b,k){b.ColorAxis=k;k.compose(b.Chart,b.Fx,b.Legend,b.Series)})});\n//# sourceMappingURL=heatmap.js.map","/*\n Highcharts JS v11.1.0 (2023-06-05)\n\n (c) 2014-2021 Highsoft AS\n Authors: Jon Arild Nygard / Oystein Moseng\n\n License: www.highcharts.com/license\n*/\n'use strict';var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};$jscomp.arrayIterator=function(a){return{next:$jscomp.arrayIteratorImpl(a)}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};$jscomp.getGlobal=function(a){a=[\"object\"==typeof globalThis&&globalThis,a,\"object\"==typeof window&&window,\"object\"==typeof self&&self,\"object\"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error(\"Cannot find global object\");};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.SYMBOL_PREFIX=\"jscomp_symbol_\";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.SymbolClass=function(a,b){this.$jscomp$symbol$id_=a;$jscomp.defineProperty(this,\"description\",{configurable:!0,writable:!0,value:b})};$jscomp.SymbolClass.prototype.toString=function(){return this.$jscomp$symbol$id_};\n$jscomp.Symbol=function(){function a(c){if(this instanceof a)throw new TypeError(\"Symbol is not a constructor\");return new $jscomp.SymbolClass($jscomp.SYMBOL_PREFIX+(c||\"\")+\"_\"+b++,c)}var b=0;return a}();\n$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol(\"Symbol.iterator\"));\"function\"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this))}});$jscomp.initSymbolIterator=function(){}};\n$jscomp.initSymbolAsyncIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.asyncIterator;a||(a=$jscomp.global.Symbol.asyncIterator=$jscomp.global.Symbol(\"Symbol.asyncIterator\"));$jscomp.initSymbolAsyncIterator=function(){}};$jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};\n$jscomp.iteratorFromArray=function(a,b){$jscomp.initSymbolIterator();a instanceof String&&(a+=\"\");var c=0,d={next:function(){if(c<a.length){var e=c++;return{value:b(e,a[e]),done:!1}}d.next=function(){return{done:!0,value:void 0}};return d.next()}};d[Symbol.iterator]=function(){return d};return d};$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX=\"$jscp$\";$jscomp.IS_SYMBOL_NATIVE=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol(\"x\");\nvar $jscomp$lookupPolyfilledValue=function(a,b){var c=$jscomp.propertyToPolyfillSymbol[b];if(null==c)return a[b];c=a[c];return void 0!==c?c:a[b]};$jscomp.polyfill=function(a,b,c,d){b&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(a,b,c,d):$jscomp.polyfillUnisolated(a,b,c,d))};\n$jscomp.polyfillUnisolated=function(a,b,c,d){c=$jscomp.global;a=a.split(\".\");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})};\n$jscomp.polyfillIsolated=function(a,b,c,d){var e=a.split(\".\");a=1===e.length;d=e[0];d=!a&&d in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var w=0;w<e.length-1;w++){var t=e[w];t in d||(d[t]={});d=d[t]}e=e[e.length-1];c=$jscomp.IS_SYMBOL_NATIVE&&\"es6\"===c?d[e]:null;b=b(c);null!=b&&(a?$jscomp.defineProperty($jscomp.polyfills,e,{configurable:!0,writable:!0,value:b}):b!==c&&($jscomp.propertyToPolyfillSymbol[e]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(e):$jscomp.POLYFILL_PREFIX+e,e=$jscomp.propertyToPolyfillSymbol[e],\n$jscomp.defineProperty(d,e,{configurable:!0,writable:!0,value:b})))};$jscomp.polyfill(\"Array.prototype.values\",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a,c){return c})}},\"es8\",\"es3\");\n(function(a){\"object\"===typeof module&&module.exports?(a[\"default\"]=a,module.exports=a):\"function\"===typeof define&&define.amd?define(\"highcharts/modules/treemap\",[\"highcharts\"],function(b){a(b);a.Highcharts=b;return a}):a(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(a){function b(a,d,e,b){a.hasOwnProperty(d)||(a[d]=b.apply(null,e),\"function\"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:d,module:a[d]}})))}a=a?a._modules:{};b(a,\n\"Series/ColorMapComposition.js\",[a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,d){const {column:{prototype:c}}=a.seriesTypes,{addEvent:b,defined:t}=d;var n;(function(a){function e(a){this.moveToTopOnHover&&this.graphic&&this.graphic.attr({zIndex:a&&\"hover\"===a.state?1:0})}const k=[];a.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value&&(void 0===this.value||!isNaN(this.value))}};a.seriesMembers=\n{colorKey:\"value\",axisTypes:[\"xAxis\",\"yAxis\",\"colorAxis\"],parallelArrays:[\"x\",\"y\",\"value\"],pointArrayMap:[\"value\"],trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],colorAttribs:function(a){const d={};!t(a.color)||a.state&&\"normal\"!==a.state||(d[this.colorProp||\"fill\"]=a.color);return d},pointAttribs:c.pointAttribs};a.compose=function(a){const f=a.prototype.pointClass;d.pushUnique(k,f)&&b(f,\"afterSetState\",e);return a}})(n||(n={}));return n});b(a,\"Series/Treemap/TreemapAlgorithmGroup.js\",[],\nfunction(){class a{constructor(a,c,b,t){this.height=a;this.width=c;this.plot=t;this.startDirection=this.direction=b;this.lH=this.nH=this.lW=this.nW=this.total=0;this.elArr=[];this.lP={total:0,lH:0,nH:0,lW:0,nW:0,nR:0,lR:0,aspectRatio:function(a,d){return Math.max(a/d,d/a)}}}addElement(a){this.lP.total=this.elArr[this.elArr.length-1];this.total+=a;0===this.direction?(this.lW=this.nW,this.lP.lH=this.lP.total/this.lW,this.lP.lR=this.lP.aspectRatio(this.lW,this.lP.lH),this.nW=this.total/this.height,this.lP.nH=\nthis.lP.total/this.nW,this.lP.nR=this.lP.aspectRatio(this.nW,this.lP.nH)):(this.lH=this.nH,this.lP.lW=this.lP.total/this.lH,this.lP.lR=this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,this.nH));this.elArr.push(a)}reset(){this.lW=this.nW=0;this.elArr=[];this.total=0}}return a});b(a,\"Series/DrawPointUtilities.js\",[a[\"Core/Utilities.js\"]],function(a){return{draw:function(a,c){const {animatableAttribs:d,onComplete:b,\ncss:e,renderer:k}=c,g=a.series&&a.series.chart.hasRendered?void 0:a.series&&a.series.options.animation;let l=a.graphic;c.attribs=Object.assign(Object.assign({},c.attribs),{\"class\":a.getClassName()})||{};if(a.shouldDraw())l||(a.graphic=l=\"text\"===c.shapeType?k.text():k[c.shapeType](c.shapeArgs||{}),l.add(c.group)),e&&l.css(e),l.attr(c.attribs).animate(d,c.isNew?!1:g,b);else if(l){const c=()=>{a.graphic=l=l&&l.destroy();\"function\"===typeof b&&b()};Object.keys(d).length?l.animate(d,void 0,()=>c()):c()}}}});\nb(a,\"Series/Treemap/TreemapPoint.js\",[a[\"Series/DrawPointUtilities.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Core/Utilities.js\"]],function(a,d,b){const {series:{prototype:{pointClass:c}},seriesTypes:{pie:{prototype:{pointClass:e}},scatter:{prototype:{pointClass:n}}}}=d,{extend:k,isNumber:g,pick:l}=b;class f extends n{constructor(){super(...arguments);this.series=this.options=this.node=this.name=void 0;this.shapeType=\"rect\";this.value=void 0}draw(c){a.draw(this,c)}getClassName(){let a=c.prototype.getClassName.call(this),\nd=this.series,f=d.options;this.node.level<=d.nodeMap[d.rootNode].level?a+=\" highcharts-above-level\":this.node.isLeaf||l(f.interactByLeaf,!f.allowTraversingTree)?this.node.isLeaf||(a+=\" highcharts-internal-node\"):a+=\" highcharts-internal-node-interactive\";return a}isValid(){return!(!this.id&&!g(this.value))}setState(a){c.prototype.setState.call(this,a);this.graphic&&this.graphic.attr({zIndex:\"hover\"===a?1:0})}shouldDraw(){return g(this.plotY)&&null!==this.y}}k(f.prototype,{setVisible:e.prototype.setVisible});\nreturn f});b(a,\"Series/Treemap/TreemapUtilities.js\",[a[\"Core/Utilities.js\"]],function(a){const {objectEach:c}=a;var b;(function(a){function d(a,c,b=this){a=c.call(b,a);!1!==a&&d(a,c,b)}a.AXIS_MAX=100;a.isBoolean=function(a){return\"boolean\"===typeof a};a.eachObject=function(a,d,b){b=b||this;c(a,function(c,f){d.call(b,c,f,a)})};a.recursive=d})(b||(b={}));return b});b(a,\"Series/TreeUtilities.js\",[a[\"Core/Color/Color.js\"],a[\"Core/Utilities.js\"]],function(a,b){function c(a,b){var f=b.before;const e=b.idRoot,\nk=b.mapIdToNode[e],p=b.points[a.i],n=p&&p.options||{},v=[];let g=0;a.levelDynamic=a.level-(!1!==b.levelIsConstant?0:k.level);a.name=l(p&&p.name,\"\");a.visible=e===a.id||!0===b.visible;\"function\"===typeof f&&(a=f(a,b));a.children.forEach((f,e)=>{const y=d({},b);d(y,{index:e,siblings:a.children.length,visible:a.visible});f=c(f,y);v.push(f);f.visible&&(g+=f.val)});f=l(n.value,g);a.visible=0<=f&&(0<g||a.visible);a.children=v;a.childrenTotal=g;a.isLeaf=a.visible&&!g;a.val=f;return a}const {extend:d,isArray:t,\nisNumber:n,isObject:k,merge:g,pick:l}=b;return{getColor:function(b,c){const d=c.index;var f=c.mapOptionsToLevel;const e=c.parentColor,k=c.parentColorIndex,g=c.series;var v=c.colors;const n=c.siblings;var p=g.points,t=g.chart.options.chart;let y;var r;let I;if(b){p=p[b.i];b=f[b.level]||{};if(f=p&&b.colorByPoint){y=p.index%(v?v.length:t.colorCount);var C=v&&v[y]}if(!g.chart.styledMode){v=p&&p.options.color;t=b&&b.color;if(r=e)r=(r=b&&b.colorVariation)&&\"brightness\"===r.key&&d&&n?a.parse(e).brighten(d/\nn*r.to).get():e;r=l(v,t,C,r,g.color)}I=l(p&&p.options.colorIndex,b&&b.colorIndex,y,k,c.colorIndex)}return{color:r,colorIndex:I}},getLevelOptions:function(a){let b={},c,d,e;if(k(a)){e=n(a.from)?a.from:1;var f=a.levels;d={};c=k(a.defaults)?a.defaults:{};t(f)&&(d=f.reduce((a,b)=>{let d,f;k(b)&&n(b.level)&&(f=g({},b),d=l(f.levelIsConstant,c.levelIsConstant),delete f.levelIsConstant,delete f.level,b=b.level+(d?0:e-1),k(a[b])?g(!0,a[b],f):a[b]=f);return a},{}));f=n(a.to)?a.to:1;for(a=0;a<=f;a++)b[a]=g({},\nc,k(d[a])?d[a]:{})}return b},setTreeValues:c,updateRootId:function(a){if(k(a)){var b=k(a.options)?a.options:{};b=l(a.rootNode,b.rootId,\"\");k(a.userOptions)&&(a.userOptions.rootId=b);a.rootNode=b}return b}}});b(a,\"Extensions/Breadcrumbs/BreadcrumbsDefaults.js\",[],function(){return{lang:{mainBreadcrumb:\"Main\"},options:{buttonTheme:{fill:\"none\",height:18,padding:2,\"stroke-width\":0,zIndex:7,states:{select:{fill:\"none\"}},style:{color:\"#334eff\"}},buttonSpacing:5,floating:!1,format:void 0,relativeTo:\"plotBox\",\nrtl:!1,position:{align:\"left\",verticalAlign:\"top\",x:0,y:void 0},separator:{text:\"/\",style:{color:\"#666666\",fontSize:\"0.8em\"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7}}});b(a,\"Extensions/Breadcrumbs/Breadcrumbs.js\",[a[\"Extensions/Breadcrumbs/BreadcrumbsDefaults.js\"],a[\"Core/Chart/Chart.js\"],a[\"Core/Templating.js\"],a[\"Core/Utilities.js\"]],function(a,b,e,w){function c(){if(this.breadcrumbs){const a=this.resetZoomButton&&this.resetZoomButton.getBBox(),b=this.breadcrumbs.options;a&&\"right\"===b.position.align&&\n\"plotBox\"===b.relativeTo&&this.breadcrumbs.alignBreadcrumbsGroup(-a.width-b.buttonSpacing)}}function d(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function k(){const a=this.breadcrumbs;if(a&&!a.options.floating&&a.level){var b=a.options,c=b.buttonTheme;c=(c.height||0)+2*(c.padding||0)+b.buttonSpacing;b=b.position.verticalAlign;\"bottom\"===b?(this.marginBottom=(this.marginBottom||0)+c,a.yOffset=c):\"middle\"!==b?(this.plotTop+=c,a.yOffset=-c):a.yOffset=void 0}}function g(){this.breadcrumbs&&\nthis.breadcrumbs.redraw()}function l(a){!0===a.resetSelection&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}const {format:f}=e,{addEvent:p,defined:R,extend:S,fireEvent:J,isString:K,merge:B,objectEach:v,pick:D}=w,H=[];class x{static compose(y,r){w.pushUnique(H,y)&&(p(b,\"destroy\",d),p(b,\"afterShowResetZoom\",c),p(b,\"getMargins\",k),p(b,\"redraw\",g),p(b,\"selection\",l));w.pushUnique(H,r)&&S(r.lang,a.lang)}constructor(a,b){this.elementList={};this.isDirty=!0;this.level=0;this.list=[];b=B(a.options.drilldown&&\na.options.drilldown.drillUpButton,x.defaultOptions,a.options.navigation&&a.options.navigation.breadcrumbs,b);this.chart=a;this.options=b||{}}updateProperties(a){this.setList(a);this.setLevel();this.isDirty=!0}setList(a){this.list=a}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(a){const b=this.chart,c=this.options;var d=b.options.lang;const e=D(c.format,c.showFullPath?\"{level.name}\":\"\\u2190 {level.name}\");d=d&&D(d.drillUpText,d.mainBreadcrumb);\na=c.formatter&&c.formatter(a)||f(e,{level:a.levelOptions},b)||\"\";(K(a)&&!a.length||\"\\u2190 \"===a)&&R(d)&&(a=c.showFullPath?d:\"\\u2190 \"+d);return a}redraw(){this.isDirty&&this.render();this.group&&this.group.align();this.isDirty=!1}render(){const a=this.chart,b=this.options;!this.group&&b&&(this.group=a.renderer.g(\"breadcrumbs-group\").addClass(\"highcharts-no-tooltip highcharts-breadcrumbs\").attr({zIndex:b.zIndex}).add());b.showFullPath?this.renderFullPathButtons():this.renderSingleButton();this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton();\nthis.resetElementListState();this.updateListElements();this.destroyListElements()}renderSingleButton(){const a=this.chart;var b=this.list;const c=this.options.buttonSpacing;this.destroyListElements();const d=this.group?this.group.getBBox().width:c;b=b[b.length-2];!a.drillUpButton&&0<this.level?a.drillUpButton=this.renderButton(b,d,c):a.drillUpButton&&(0<this.level?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(a){if(this.group){var b=this.options;const d=b.buttonTheme,\ne=b.position,r=\"chart\"===b.relativeTo||\"spacingBox\"===b.relativeTo?void 0:\"scrollablePlotBox\";var c=this.group.getBBox();b=2*(d.padding||0)+b.buttonSpacing;e.width=c.width+b;e.height=c.height+b;c=B(e);a&&(c.x+=a);this.options.rtl&&(c.x+=e.width);c.y=D(c.y,this.yOffset,0);this.group.align(c,!0,r)}}renderButton(a,b,c){const d=this,e=this.chart,f=d.options,r=B(f.buttonTheme);b=e.renderer.button(d.getButtonText(a),b,c,function(b){const c=f.events&&f.events.click;let e;c&&(e=c.call(d,b,a));!1!==e&&(b.newLevel=\nf.showFullPath?a.level:d.level-1,J(d,\"up\",b))},r).addClass(\"highcharts-breadcrumbs-button\").add(d.group);e.styledMode||b.attr(f.style);return b}renderSeparator(a,b){const c=this.chart,d=this.options.separator;a=c.renderer.label(d.text,a,b,void 0,void 0,void 0,!1).addClass(\"highcharts-breadcrumbs-separator\").add(this.group);c.styledMode||a.css(d.style);return a}update(a){B(!0,this.options,a);this.destroy();this.isDirty=!0}updateSingleButton(){const a=this.chart,b=this.list[this.level-1];a.drillUpButton&&\na.drillUpButton.attr({text:this.getButtonText(b)})}destroy(){this.destroySingleButton();this.destroyListElements(!0);this.group&&this.group.destroy();this.group=void 0}destroyListElements(a){const b=this.elementList;v(b,(c,d)=>{if(a||!b[d].updated)c=b[d],c.button&&c.button.destroy(),c.separator&&c.separator.destroy(),delete c.button,delete c.separator,delete b[d]});a&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=\nvoid 0)}resetElementListState(){v(this.elementList,a=>{a.updated=!1})}updateListElements(){const a=this.elementList,b=this.options.buttonSpacing,c=this.list,d=this.options.rtl,e=d?-1:1,f=function(a,b){return e*a.getBBox().width+e*b},k=function(a,b,h){a.translate(b-a.getBBox().width,h)};let g=this.group?f(this.group,b):b,l,n;for(let p=0,r=c.length;p<r;++p){const h=p===r-1;let m,q;n=c[p];a[n.level]?(l=a[n.level],m=l.button,l.separator||h?l.separator&&h&&(l.separator.destroy(),delete l.separator):(g+=\ne*b,l.separator=this.renderSeparator(g,b),d&&k(l.separator,g,b),g+=f(l.separator,b)),a[n.level].updated=!0):(m=this.renderButton(n,g,b),d&&k(m,g,b),g+=f(m,b),h||(q=this.renderSeparator(g,b),d&&k(q,g,b),g+=f(q,b)),a[n.level]={button:m,separator:q,updated:!0});m&&m.setState(h?2:0)}}}x.defaultOptions=a.options;\"\";return x});b(a,\"Series/Treemap/TreemapComposition.js\",[a[\"Core/Series/SeriesRegistry.js\"],a[\"Series/Treemap/TreemapUtilities.js\"],a[\"Core/Utilities.js\"]],function(a,b,e){({series:a}=a);const {addEvent:c,\nextend:d}=e;let n=!1;c(a,\"afterBindAxes\",function(){let a=this.xAxis,c=this.yAxis,e;a&&c&&(this.is(\"treemap\")?(e={endOnTick:!1,gridLineWidth:0,lineWidth:0,min:0,minPadding:0,max:b.AXIS_MAX,maxPadding:0,startOnTick:!1,title:void 0,tickPositions:[]},d(c.options,e),d(a.options,e),n=!0):n&&(c.setOptions(c.userOptions),a.setOptions(a.userOptions),n=!1))})});b(a,\"Series/Treemap/TreemapNode.js\",[],function(){class a{constructor(){this.childrenTotal=0;this.visible=!1}init(a,b,c,t,n,k,g){this.id=a;this.i=\nb;this.children=c;this.height=t;this.level=n;this.series=k;this.parent=g;return this}}return a});b(a,\"Series/Treemap/TreemapSeries.js\",[a[\"Core/Color/Color.js\"],a[\"Series/ColorMapComposition.js\"],a[\"Core/Globals.js\"],a[\"Core/Series/SeriesRegistry.js\"],a[\"Series/Treemap/TreemapAlgorithmGroup.js\"],a[\"Series/Treemap/TreemapPoint.js\"],a[\"Series/Treemap/TreemapUtilities.js\"],a[\"Series/TreeUtilities.js\"],a[\"Extensions/Breadcrumbs/Breadcrumbs.js\"],a[\"Core/Utilities.js\"],a[\"Series/Treemap/TreemapNode.js\"]],\nfunction(a,b,e,w,t,n,k,g,l,f,p){const {parse:c}=a;({noop:a}=e);const {series:d,seriesTypes:{column:J,heatmap:K,scatter:B}}=w,{getColor:v,getLevelOptions:D,updateRootId:H}=g,{addEvent:x,correctFloat:y,defined:r,error:I,extend:C,fireEvent:T,isArray:M,isObject:U,isString:L,merge:A,pick:z,stableSort:V}=f;class E extends B{constructor(){super(...arguments);this.level=this.tree=this.rootNode=this.points=this.options=this.nodeList=this.nodeMap=this.mapOptionsToLevel=this.data=this.axisRatio=void 0}algorithmCalcPoints(a,\nb,c,d){let h,m,q,e,F=c.lW,f=c.lH,u=c.plot,k,g=0,l=c.elArr.length-1;b?(F=c.nW,f=c.nH):k=c.elArr[c.elArr.length-1];c.elArr.forEach(function(a){if(b||g<l)0===c.direction?(h=u.x,m=u.y,q=F,e=a/q):(h=u.x,m=u.y,e=f,q=a/e),d.push({x:h,y:m,width:q,height:y(e)}),0===c.direction?u.y+=e:u.x+=q;g+=1});c.reset();0===c.direction?c.width-=F:c.height-=f;u.y=u.parent.y+(u.parent.height-c.height);u.x=u.parent.x+(u.parent.width-c.width);a&&(c.direction=1-c.direction);b||c.addElement(k)}algorithmFill(a,b,c){let h=[],\nm,d=b.direction,q=b.x,e=b.y,f=b.width,Q=b.height,u,k,g,l;c.forEach(function(c){m=c.val/b.val*b.height*b.width;u=q;k=e;0===d?(l=Q,g=m/l,f-=g,q+=g):(g=f,l=m/g,Q-=l,e+=l);h.push({x:u,y:k,width:g,height:l});a&&(d=1-d)});return h}algorithmLowAspectRatio(a,b,c){let h=[],d=this,m,q={x:b.x,y:b.y,parent:b},e=0,f=c.length-1,g=new t(b.height,b.width,b.direction,q);c.forEach(function(c){m=c.val/b.val*b.height*b.width;g.addElement(m);g.lP.nR>g.lP.lR&&d.algorithmCalcPoints(a,!1,g,h,q);e===f&&d.algorithmCalcPoints(a,\n!0,g,h,q);e+=1});return h}alignDataLabel(a,b,c){const h=c.style;h&&!r(h.textOverflow)&&b.text&&b.getBBox().width>b.text.textWidth&&b.css({textOverflow:\"ellipsis\",width:h.width+=\"px\"});J.prototype.alignDataLabel.apply(this,arguments);a.dataLabel&&a.dataLabel.attr({zIndex:(a.node.zIndex||0)+1})}calculateChildrenAreas(a,b){let c=this,h=c.options,d=c.mapOptionsToLevel[a.level+1],m=z(c[d&&d.layoutAlgorithm]&&d.layoutAlgorithm,h.layoutAlgorithm),e=h.alternateStartingDirection,f=[];a=a.children.filter(function(a){return!a.ignore});\nd&&d.layoutStartingDirection&&(b.direction=\"vertical\"===d.layoutStartingDirection?0:1);f=c[m](b,a);a.forEach(function(a,h){h=f[h];a.values=A(h,{val:a.childrenTotal,direction:e?1-b.direction:b.direction});a.pointValues=A(h,{x:h.x/c.axisRatio,y:k.AXIS_MAX-h.y-h.height,width:h.width/c.axisRatio});a.children.length&&c.calculateChildrenAreas(a,a.values)})}createList(a){var b=this.chart;const c=[];if(b.breadcrumbs){let h=0;c.push({level:h,levelOptions:b.series[0]});b=a.target.nodeMap[a.newRootId];const d=\n[];for(;b.parent||\"\"===b.parent;)d.push(b),b=a.target.nodeMap[b.parent];d.reverse().forEach(function(a){c.push({level:++h,levelOptions:a})});1>=c.length&&(c.length=0)}return c}drawDataLabels(){let a=this,b=a.mapOptionsToLevel,c,e;a.points.filter(function(a){return a.node.visible}).forEach(function(h){e=b[h.node.level];c={style:{}};h.node.isLeaf||(c.enabled=!1);e&&e.dataLabels&&(c=A(c,e.dataLabels),a._hasPointLabels=!0);h.shapeArgs&&(c.style.width=h.shapeArgs.width,h.dataLabel&&h.dataLabel.css({width:h.shapeArgs.width+\n\"px\"}));h.dlOptions=A(c,h.options.dataLabels)});d.prototype.drawDataLabels.call(this)}drawPoints(a=this.points){const b=this,c=b.chart,h=c.renderer,d=c.styledMode,e=b.options,f=d?{}:e.shadow,g=e.borderRadius,k=c.pointCount<e.animationLimit,l=e.allowTraversingTree;a.forEach(function(a){const c=a.node.levelDynamic,m={},q={},N={},G=\"level-group-\"+a.node.level,O=!!a.graphic,F=k&&O,P=a.shapeArgs;a.shouldDraw()&&(a.isInside=!0,g&&(q.r=g),A(!0,F?m:q,O?P:{},d?{}:b.pointAttribs(a,a.selected?\"select\":void 0)),\nb.colorAttribs&&d&&C(N,b.colorAttribs(a)),b[G]||(b[G]=h.g(G).attr({zIndex:1E3-(c||0)}).add(b.group),b[G].survive=!0));a.draw({animatableAttribs:m,attribs:q,css:N,group:b[G],renderer:h,shadow:f,shapeArgs:P,shapeType:a.shapeType});l&&a.graphic&&(a.drillId=e.interactByLeaf?b.drillToByLeaf(a):b.drillToByGroup(a))})}drillToByGroup(a){let b=!1;1!==a.node.level-this.nodeMap[this.rootNode].level||a.node.isLeaf||(b=a.id);return b}drillToByLeaf(a){let b=!1;if(a.node.parent!==this.rootNode&&a.node.isLeaf)for(a=\na.node;!b;)a=this.nodeMap[a.parent],a.parent===this.rootNode&&(b=a.id);return b}drillToNode(a,b){I(32,!1,void 0,{\"treemap.drillToNode\":\"use treemap.setRootNode\"});this.setRootNode(a,b)}drillUp(){const a=this.nodeMap[this.rootNode];a&&L(a.parent)&&this.setRootNode(a.parent,!0,{trigger:\"traverseUpButton\"})}getExtremes(){const {dataMin:a,dataMax:b}=d.prototype.getExtremes.call(this,this.colorValueData);this.valueMin=a;this.valueMax=b;return d.prototype.getExtremes.call(this)}getListOfParents(a,b){a=\nM(a)?a:[];const c=M(b)?b:[];b=a.reduce(function(a,b,c){b=z(b.parent,\"\");\"undefined\"===typeof a[b]&&(a[b]=[]);a[b].push(c);return a},{\"\":[]});k.eachObject(b,function(a,b,h){\"\"!==b&&-1===c.indexOf(b)&&(a.forEach(function(a){h[\"\"].push(a)}),delete h[b])});return b}getTree(){var a=this.data.map(function(a){return a.id});a=this.getListOfParents(this.data,a);this.nodeMap={};this.nodeList=[];return this.buildTree(\"\",-1,0,a)}buildTree(a,b,c,d,e){let h=this,m=[],q=h.points[b],f=0,g,k;(d[a]||[]).forEach(function(b){k=\nh.buildTree(h.points[b].id,b,c+1,d,a);f=Math.max(k.height+1,f);m.push(k)});g=(new h.NodeClass).init(a,b,m,f,c,h,e);m.forEach(a=>{a.parentNode=g});h.nodeMap[g.id]=g;h.nodeList.push(g);q&&(q.node=g,g.point=q);return g}hasData(){return!!this.processedXData.length}init(a,b){const c=this,h=A(b.drillUpButton,b.breadcrumbs);let e;e=x(c,\"setOptions\",function(a){a=a.userOptions;r(a.allowDrillToNode)&&!r(a.allowTraversingTree)&&(a.allowTraversingTree=a.allowDrillToNode,delete a.allowDrillToNode);r(a.drillUpButton)&&\n!r(a.traverseUpButton)&&(a.traverseUpButton=a.drillUpButton,delete a.drillUpButton)});d.prototype.init.call(c,a,b);delete c.opacity;c.eventsToUnbind.push(e);c.options.allowTraversingTree&&(c.eventsToUnbind.push(x(c,\"click\",c.onClickDrillToNode)),c.eventsToUnbind.push(x(c,\"setRootNode\",function(a){const b=c.chart;b.breadcrumbs&&b.breadcrumbs.updateProperties(c.createList(a))})),c.eventsToUnbind.push(x(c,\"update\",function(a,b){(b=this.chart.breadcrumbs)&&a.options.breadcrumbs&&b.update(a.options.breadcrumbs)})),\nc.eventsToUnbind.push(x(c,\"destroy\",function(a){const b=this.chart;b.breadcrumbs&&(b.breadcrumbs.destroy(),a.keepEventsForUpdate||(b.breadcrumbs=void 0))})));a.breadcrumbs||(a.breadcrumbs=new l(a,h));c.eventsToUnbind.push(x(a.breadcrumbs,\"up\",function(a){a=this.level-a.newLevel;for(let b=0;b<a;b++)c.drillUp()}))}onClickDrillToNode(a){const b=(a=a.point)&&a.drillId;L(b)&&(a.setState(\"\"),this.setRootNode(b,!0,{trigger:\"click\"}))}pointAttribs(a,b){var d=U(this.mapOptionsToLevel)?this.mapOptionsToLevel:\n{};let h=a&&d[a.node.level]||{};d=this.options;let e=b&&d.states&&d.states[b]||{},f=a&&a.getClassName()||\"\";a={stroke:a&&a.borderColor||h.borderColor||e.borderColor||d.borderColor,\"stroke-width\":z(a&&a.borderWidth,h.borderWidth,e.borderWidth,d.borderWidth),dashstyle:a&&a.borderDashStyle||h.borderDashStyle||e.borderDashStyle||d.borderDashStyle,fill:a&&a.color||this.color};-1!==f.indexOf(\"highcharts-above-level\")?(a.fill=\"none\",a[\"stroke-width\"]=0):-1!==f.indexOf(\"highcharts-internal-node-interactive\")?\n(b=z(e.opacity,d.opacity),a.fill=c(a.fill).setOpacity(b).get(),a.cursor=\"pointer\"):-1!==f.indexOf(\"highcharts-internal-node\")?a.fill=\"none\":b&&(a.fill=c(a.fill).brighten(e.brightness).get());return a}setColorRecursive(a,b,c,d,e){let h=this;var f=h&&h.chart;f=f&&f.options&&f.options.colors;let g;if(a){g=v(a,{colors:f,index:d,mapOptionsToLevel:h.mapOptionsToLevel,parentColor:b,parentColorIndex:c,series:h,siblings:e});if(b=h.points[a.i])b.color=g.color,b.colorIndex=g.colorIndex;(a.children||[]).forEach(function(b,\nc){h.setColorRecursive(b,g.color,g.colorIndex,c,a.children.length)})}}setPointValues(){const a=this,{points:b,xAxis:c,yAxis:d}=a,e=a.chart.styledMode;b.forEach(function(b){const {pointValues:h,visible:f}=b.node;if(h&&f){const {height:f,width:k,x:l,y:q}=h;var g=e?0:(a.pointAttribs(b)[\"stroke-width\"]||0)%2/2,m=Math.round(c.toPixels(l,!0))-g;const n=Math.round(c.toPixels(l+k,!0))-g,p=Math.round(d.toPixels(q,!0))-g;g=Math.round(d.toPixels(q+f,!0))-g;m={x:Math.min(m,n),y:Math.min(p,g),width:Math.abs(n-\nm),height:Math.abs(g-p)};b.plotX=m.x+m.width/2;b.plotY=m.y+m.height/2;b.shapeArgs=m}else delete b.plotX,delete b.plotY})}setRootNode(a,b,c){a=C({newRootId:a,previousRootId:this.rootNode,redraw:z(b,!0),series:this},c);T(this,\"setRootNode\",a,function(a){const b=a.series;b.idPreviousRoot=a.previousRootId;b.rootNode=a.newRootId;b.isDirty=!0;a.redraw&&b.chart.redraw()})}setState(a){this.options.inactiveOtherPoints=!0;d.prototype.setState.call(this,a,!1);this.options.inactiveOtherPoints=!1}setTreeValues(a){let b=\nthis;var c=b.options;let d=b.nodeMap[b.rootNode];c=k.isBoolean(c.levelIsConstant)?c.levelIsConstant:!0;let h=0,e=[],f,g=b.points[a.i];a.children.forEach(function(a){a=b.setTreeValues(a);e.push(a);a.ignore||(h+=a.val)});V(e,function(a,b){return(a.sortIndex||0)-(b.sortIndex||0)});f=z(g&&g.options.value,h);g&&(g.value=f);C(a,{children:e,childrenTotal:h,ignore:!(z(g&&g.visible,!0)&&0<f),isLeaf:a.visible&&!h,levelDynamic:a.level-(c?0:d.level),name:z(g&&g.name,\"\"),sortIndex:z(g&&g.sortIndex,-f),val:f});\nreturn a}sliceAndDice(a,b){return this.algorithmFill(!0,a,b)}squarified(a,b){return this.algorithmLowAspectRatio(!0,a,b)}strip(a,b){return this.algorithmLowAspectRatio(!1,a,b)}stripes(a,b){return this.algorithmFill(!1,a,b)}translate(){let a=this;var b=a.options,c=H(a);let e,f;d.prototype.translate.call(a);f=a.tree=a.getTree();e=a.nodeMap[c];\"\"===c||e&&e.children.length||(a.setRootNode(\"\",!1),c=a.rootNode,e=a.nodeMap[c]);a.mapOptionsToLevel=D({from:e.level+1,levels:b.levels,to:f.height,defaults:{levelIsConstant:a.options.levelIsConstant,\ncolorByPoint:b.colorByPoint}});k.recursive(a.nodeMap[a.rootNode],function(b){let c=!1,d=b.parent;b.visible=!0;if(d||\"\"===d)c=a.nodeMap[d];return c});k.recursive(a.nodeMap[a.rootNode].children,function(a){let b=!1;a.forEach(function(a){a.visible=!0;a.children.length&&(b=(b||[]).concat(a.children))});return b});a.setTreeValues(f);a.axisRatio=a.xAxis.len/a.yAxis.len;a.nodeMap[\"\"].pointValues=c={x:0,y:0,width:k.AXIS_MAX,height:k.AXIS_MAX};a.nodeMap[\"\"].values=c=A(c,{width:c.width*a.axisRatio,direction:\"vertical\"===\nb.layoutStartingDirection?0:1,val:f.val});a.calculateChildrenAreas(f,c);a.colorAxis||b.colorByPoint||a.setColorRecursive(a.tree);b.allowTraversingTree&&(b=e.pointValues,a.xAxis.setExtremes(b.x,b.x+b.width,!1),a.yAxis.setExtremes(b.y,b.y+b.height,!1),a.xAxis.setScale(),a.yAxis.setScale());a.setPointValues()}}E.defaultOptions=A(B.defaultOptions,{allowTraversingTree:!1,animationLimit:250,borderRadius:0,showInLegend:!1,marker:void 0,colorByPoint:!1,dataLabels:{defer:!1,enabled:!0,formatter:function(){const a=\nthis&&this.point?this.point:{};return L(a.name)?a.name:\"\"},inside:!0,verticalAlign:\"middle\"},tooltip:{headerFormat:\"\",pointFormat:\"<b>{point.name}</b>: {point.value}<br/>\"},ignoreHiddenPoint:!0,layoutAlgorithm:\"sliceAndDice\",layoutStartingDirection:\"vertical\",alternateStartingDirection:!1,levelIsConstant:!0,traverseUpButton:{position:{align:\"right\",x:-10,y:10}},borderColor:\"#e6e6e6\",borderWidth:1,colorKey:\"colorValue\",opacity:.15,states:{hover:{borderColor:\"#999999\",brightness:K?0:.1,halo:!1,opacity:.75,\nshadow:!1}},legendSymbol:\"rectangle\"});C(E.prototype,{buildKDTree:a,colorAttribs:b.seriesMembers.colorAttribs,colorKey:\"colorValue\",directTouch:!0,getExtremesFromAll:!0,getSymbol:a,optionalAxis:\"colorAxis\",parallelArrays:[\"x\",\"y\",\"value\",\"colorValue\"],pointArrayMap:[\"value\"],pointClass:n,NodeClass:p,trackerGroups:[\"group\",\"dataLabelsGroup\"],utils:{recursive:k.recursive}});b.compose(E);w.registerSeriesType(\"treemap\",E);\"\";return E});b(a,\"masters/modules/treemap.src.js\",[a[\"Core/Globals.js\"],a[\"Extensions/Breadcrumbs/Breadcrumbs.js\"]],\nfunction(a,b){a.Breadcrumbs=b;b.compose(a.Chart,a.defaultOptions)})});\n//# sourceMappingURL=treemap.js.map","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n  return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n  var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n  var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n  if (typeof value !== 'object') {\n    return false;\n  }\n  try {\n    prototypeValueOf(value);\n    return true;\n  } catch(e) {\n    return false;\n  }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    return ArrayBuffer.isView(value);\n  }\n\n  return (\n    isTypedArray(value) ||\n    isDataView(value)\n  );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n  return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n  return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n  return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n  return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n  return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n  return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n  return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n  return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n  return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n  return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n  return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n  return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n  typeof Map !== 'undefined' &&\n  isMapToString(new Map())\n);\n\nfunction isMap(value) {\n  if (typeof Map === 'undefined') {\n    return false;\n  }\n\n  return isMapToString.working\n    ? isMapToString(value)\n    : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n  return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n  typeof Set !== 'undefined' &&\n  isSetToString(new Set())\n);\nfunction isSet(value) {\n  if (typeof Set === 'undefined') {\n    return false;\n  }\n\n  return isSetToString.working\n    ? isSetToString(value)\n    : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n  return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n  typeof WeakMap !== 'undefined' &&\n  isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n  if (typeof WeakMap === 'undefined') {\n    return false;\n  }\n\n  return isWeakMapToString.working\n    ? isWeakMapToString(value)\n    : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n  return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n  typeof WeakSet !== 'undefined' &&\n  isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n  return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n  return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n  if (typeof ArrayBuffer === 'undefined') {\n    return false;\n  }\n\n  return isArrayBufferToString.working\n    ? isArrayBufferToString(value)\n    : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n  return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  typeof DataView !== 'undefined' &&\n  isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n  if (typeof DataView === 'undefined') {\n    return false;\n  }\n\n  return isDataViewToString.working\n    ? isDataViewToString(value)\n    : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n  return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n  if (typeof SharedArrayBufferCopy === 'undefined') {\n    return false;\n  }\n\n  if (typeof isSharedArrayBufferToString.working === 'undefined') {\n    isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n  }\n\n  return isSharedArrayBufferToString.working\n    ? isSharedArrayBufferToString(value)\n    : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n  return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n  return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n  return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n  return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n  return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n  return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n  return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n  return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n  return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n  return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n  return (\n    isNumberObject(value) ||\n    isStringObject(value) ||\n    isBooleanObject(value) ||\n    isBigIntObject(value) ||\n    isSymbolObject(value)\n  );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n  return typeof Uint8Array !== 'undefined' && (\n    isArrayBuffer(value) ||\n    isSharedArrayBuffer(value)\n  );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n  Object.defineProperty(exports, method, {\n    enumerable: false,\n    value: function() {\n      throw new Error(method + ' is not supported in userland');\n    }\n  });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n  var debugEnv = process.env.NODE_DEBUG;\n  debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n    .replace(/\\*/g, '.*')\n    .replace(/,/g, '$|^')\n    .toUpperCase();\n  debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (debugEnvRegex.test(set)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').slice(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.slice(1, -1);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n            function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tcache['$' + typedArray] = callBind(arr.slice);\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, typedArray) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t}\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nvar trySlices = function tryAllSlices(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, name) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tgetter(value);\n\t\t\t\tfound = $slice(name, 1);\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","export*from\"@lit/reactive-element\";export*from\"lit-html\";export{LitElement,UpdatingElement,_$LE}from\"./lit-element.js\";export*from\"@lit/reactive-element/decorators/base.js\";export*from\"@lit/reactive-element/decorators/custom-element.js\";export*from\"@lit/reactive-element/decorators/property.js\";export*from\"@lit/reactive-element/decorators/state.js\";export*from\"@lit/reactive-element/decorators/event-options.js\";export*from\"@lit/reactive-element/decorators/query.js\";export*from\"@lit/reactive-element/decorators/query-all.js\";export*from\"@lit/reactive-element/decorators/query-async.js\";export*from\"@lit/reactive-element/decorators/query-assigned-elements.js\";export*from\"@lit/reactive-element/decorators/query-assigned-nodes.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */console.warn(\"The main 'lit-element' module entrypoint is deprecated. Please update your imports to use the 'lit' package: 'lit' and 'lit/decorators.ts' or import from 'lit-element/lit-element.ts'. See https://lit.dev/msg/deprecated-import-path for more information.\");\n//# sourceMappingURL=index.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\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'&quot;': '\"',\n\t'&apos;': \"'\",\n\t'&gt;': '>',\n\t'&lt;': '<',\n\t'&amp;': '&'\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,\"\\&#10;\"); }\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(/&quot;/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=\"MS 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=\"MS 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, \"&amp;\")});\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":["_typeof","obj","Symbol","iterator","constructor","prototype","isDeepEqual","isDeepStrictEqual","_require$codes","codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","inspect","_require$types","isPromise","isRegExp","objectAssign","Object","assign","objectIs","is","Map","lazyLoadComparison","comparison","warned","assert","module","exports","ok","NO_EXCEPTION_SENTINEL","innerFail","message","Error","innerOk","fn","argLen","value","generatedMessage","err","actual","expected","operator","stackStartFn","_len","arguments","length","args","Array","_key","apply","concat","fail","internalMessage","argsLen","undefined","process","emitWarning","console","warn","bind","errArgs","equal","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","keys","_this","this","instance","Constructor","TypeError","_classCallCheck","forEach","key","test","expectedException","msg","name","push","a","b","compareExceptionKey","isPrototypeOf","call","getActual","e","checkIsPromise","then","catch","waitForActual","promiseFn","Promise","resolve","resultPromise","expectsError","error","details","fnType","expectsNoError","strict","_len6","_key6","throws","_len2","_key2","rejects","_len3","_key3","result","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","stack","tmp2","split","shift","tmp1","i","pos","indexOf","slice","join","_defineProperty","defineProperty","enumerable","configurable","writable","_defineProperties","target","props","descriptor","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Function","toString","has","get","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","Reflect","construct","sham","Proxy","Date","isNativeReflectConstruct","o","p","setPrototypeOf","__proto__","getPrototypeOf","endsWith","str","search","this_len","substring","blue","green","red","white","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","source","inspectValue","val","compact","customInspect","depth","maxArrayLength","Infinity","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","other","res","lastPos","end","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","stderr","isTTY","columns","count","Math","floor","maxCount","log","repeat","pop","maxLines","max","_actualLines","printedLines","skippedMsg","cur","expectedLine","actualLine","divergingLines","_Error","options","limit","stackTraceLimit","String","getColorDepth","base","_res","knownOperators","code","captureStackTrace","protoProps","staticProps","subClass","superClass","_inherits","custom","recurseTimes","ctx","ownKeys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","util","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","isArray","len","map","determiner","substr","replace","type","start","includes","reason","inspected","RangeError","input","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","_iterableToArrayLimit","_nonIterableRest","regexFlagsSupported","flags","arrayFromSet","array","arrayFromMap","objectGetOwnPropertySymbols","numberIsNaN","Number","isNaN","uncurryThis","f","hasOwnProperty","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","charCodeAt","pow","getOwnNonIndexProperties","compare","x","y","min","kNoIterator","kIsArray","kIsSet","kIsMap","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","RegExp","byteLength","Uint8Array","buffer","byteOffset","areSimilarTypedArrays","offset","areSimilarFloatArrays","_keys","_keys2","size","valueOf","Boolean","BigInt","isEqualBoxedPrimitive","getEnumerables","k","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","position","val2MemoA","val2MemoB","areEq","memo","aValues","Set","add","setMightHaveLoosePrim","bValues","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","item","mapHasEqualEntry","mapEquiv","keysA","objEquiv","delete","setValues","findLooseMatchingPrimitives","prim","altValue","curB","key1","key2","addTreemap","Highcharts","addHeatmap","customElement","_dec","_class2","LitElement","properties","classes","data","attribute","reflect","tableConf","super","wrapper","switchedView","secondDataset","property","header","STRINGS","firstUpdated","changedProperties","fetchData","fetch","response","json","errMsg","response2","data2","ID","sort","Sinolo","_enableChart","initGrid","render","Utils","getChartContainer","subTable","html","amount","Intl","NumberFormat","format","Titlos","grid","shadowRoot","querySelector","info","paging","searching","title","className","width","amountColWidth","row","toLocaleString","order","createdRow","dataIndex","classList","table","addEventListener","tr","currentTarget","contains","dataTable","api","child","isShown","hide","show","setAttribute","_switchView","toggle","_download","exportData","ws","XLSX","json_to_sheet","wb","book_new","book_append_sheet","chart","colors","getHighchartColors","text","credits","enabled","xAxis","series","states","inactive","opacity","dataLabels","useHTML","color","align","tooltip","pointFormatter","round","borderRadius","plotOptions","treemap","colorByPoint","styles","fontAwesome","style","_class","css","t","_$AU","_$AM","_$AT","_$Ct","_$Ci","_$AS","update","_$litDirective$","values","strings","s","r","it","nt","element","remove","num","scale","sig","getPolicyColors","id","getFundsColors","getCohesionColors","unit","radialGradient","cx","cy","stops","brighten","classMap","tableOptions","getChartContainerSplit","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","customInspectSymbol","Buffer","K_MAX_LENGTH","createBuffer","buf","arg","encodingOrOffset","allocUnsafe","from","string","encoding","isEncoding","write","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","isBuffer","checked","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","equals","trim","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_BUFFER_OUT_OF_BOUNDS","received","isInteger","abs","INVALID_BASE64_RE","leadSurrogate","base64clean","src","dst","alphabet","i16","BufferBigIntNotDefined","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","func","applyBind","now","times","g","window","functions","label","time","duration","object","expression","tuple","hasSymbols","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","defineProperties","predicates","firstSource","to","nextSource","keysArray","nextIndex","nextKey","desc","polyfill","isCallable","thisArg","receiver","forEachArray","charAt","forEachString","forEachObject","that","bound","boundLength","boundArgs","Empty","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","JSON","parseFloat","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","match","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","$Object","origSymbol","hasSymbolSham","symObj","getOwnPropertyNames","syms","toStringTag","U","M","I","L","CustomEvent","dispatchEvent","detail","path","SVG_NS","product","version","win","doc","document","svg","createElementNS","createSVGRect","userAgent","navigator","isChrome","isFirefox","isMS","opera","isSafari","isTouchDevice","isWebKit","deg2rad","PI","hasBidiBug","hasTouch","TouchEvent","marginNames","noop","supportsPassiveEvents","removeEventListener","charts","dateFormats","seriesTypes","symbolSizes","chartCount","u","d","params","q","messages","C","z","H","nodeType","B","v","l","getAttribute","removeAttribute","h","LN10","toPrecision","F","K","nodeName","hcEvents","createEvent","fireEvent","initEvent","preventDefault","defaultPrevented","unshift","easeInOutSine","cos","G","find","each","grep","reduce","some","random","jQuery","highcharts","addEvent","Point","runTrackerClick","passive","capture","arrayMax","arrayMin","attr","clamp","clearTimeout","correctFloat","createElement","padding","border","margin","appendChild","defined","destroyObjectProperties","destroy","diffObjects","A","discardElement","parentElement","removeChild","erase","extend","extendClass","getClosestDistance","getMagnitude","getNestedProperty","getStyle","w","offsetWidth","scrollWidth","getBoundingClientRect","offsetHeight","scrollHeight","getComputedStyle","getPropertyValue","inArray","insertItem","index","isInternal","isClass","isDOMElement","isFunction","isNumber","isObject","isString","merge","normalizeTickInterval","objectEach","documentElement","top","parentNode","left","height","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","pad","pick","pInt","pushUnique","relativeLength","removeEvent","splat","stableSort","safeI","syncTimeout","setTimeout","timeUnits","millisecond","second","minute","hour","day","week","month","year","uniqueKey","useSerialIds","wrap","alignThresholds","panning","styledMode","colorCount","allowMutatingData","ignoreHiddenSeries","spacing","resetZoomButton","theme","zIndex","reflow","zooming","singleTouch","resetButton","borderColor","backgroundColor","plotBorderColor","parse","None","rgba","NaN","Color","init","names","parsers","regex","setOpacity","tweenTo","black","DateTimeFormat","formatRange","variableTimezone","useUTC","getTimezoneOffset","timezoneOffsetFunction","timezoneOffset","setTime","timezone","makeTime","UTC","moment","tz","utcOffset","dateFormat","defaultOptions","lang","invalidDate","weekdays","shortWeekdays","shortMonths","months","Y","P","S","getSeconds","toUpperCase","resolveDTLFormat","main","getTimeTicks","unitRange","higherRanks","totalRange","getDateFormat","symbols","loading","decimalPoint","numericSymbols","resetZoom","resetZoomTitle","thousandsSep","global","fontWeight","widthAdjust","subtitle","fontSize","caption","verticalAlign","legend","alignColumns","layout","itemMarginBottom","itemMarginTop","labelFormatter","navigation","activeColor","inactiveColor","itemStyle","cursor","textDecoration","textOverflow","itemHoverStyle","itemHiddenStyle","shadow","itemCheckboxStyle","squareSymbol","symbolPadding","labelStyle","textAlign","animation","dateTimeLabelFormats","footerFormat","headerShape","hideDelay","shape","shared","snap","headerFormat","pointFormat","borderWidth","stickOnContact","href","defaultTime","getOptions","setOptions","elem","prop","dSetter","paths","toD","step","run","stopped","requestAnimationFrame","timers","startTime","curAnim","complete","easing","initPath","startX","endX","isArea","fillSetter","strokeSetter","defer","animate","pathArray","animObject","getDeferredAnimation","renderer","forExport","setAnimation","globalAnimation","stop","trustedTypes","createPolicy","createHTML","DOMParser","parseFromString","filterUserAttributes","allowedAttributes","allowedReferences","parseStyle","setElementHTML","innerHTML","emptyHTML","addToDOM","nodes","parseMarkup","tagName","textContent","createTextNode","bypassHTMLFiltering","allowedTags","namespaceURI","attributes","children","body","childNodes","numberFormatter","isBlock","startInner","D","elseBody","toExponential","toFixed","divide","eq","ge","gt","le","lt","multiply","ne","subtract","unless","helpers","numberFormat","distribute","reducedLen","rank","targets","onEvents","_defaultGetter","_defaultSetter","parentGroup","textStr","buildText","added","handleZ","zIndexSetter","box","onAdd","addClass","afterSetters","doTransform","updateTransform","alignedObjects","alignOptions","alignByTranslate","alignTo","plotBox","placed","alignAttr","alignSetter","center","right","alignValue","hidden","applyTextOutline","getContrast","fakeTS","removeTextOutline","stroke","cloneNode","querySelectorAll","dy","insertBefore","firstChild","symbolCustomAttribs","symbolName","symbolAttr","rotation","clip","url","crisp","strokeWidth","complexColor","J","O","linearGradient","gradients","radialReference","x1","y1","x2","y2","gradientUnits","getRadialAttr","defs","radAttr","gradient","textWidth","textOutline","dashstyleSetter","ownerSVGElement","onclick","onmouseout","onmouseover","onmousemove","point","clipPath","safeRemoveChild","div","pathToSegments","fadeOut","getBBox","cache","cacheKeys","N","rootFontSize","display","fa","htmlGetBBox","sin","hasClass","visibility","on","opacitySetter","removeClass","setRadialReference","setTextPath","startOffset","textAnchor","textPath","undo","dx","transform","textCache","offsetX","offsetY","shadowDefinition","textSetter","textPxLength","titleSetter","getElementsByTagName","toFront","translate","translateX","translateY","matrix","scaleX","scaleY","rotationOriginX","rotationOriginY","visibilitySetter","xGetter","yGetter","matrixSetter","rotationOriginXSetter","rotationOriginYSetter","rotationSetter","scaleXSetter","scaleYSetter","translateXSetter","translateYSetter","verticalAlignSetter","rendererTypes","getRendererType","registerRendererType","Renderer","paddingRightSetter","paddingLeftSetter","paddingSetter","anchorX","anchorY","baseline","symbolKey","bBox","emptyBBox","baselineOffset","needsBox","deferredAttr","alignFactor","xSetting","anchorXSetter","boxAttr","getCrispAdjust","anchorYSetter","ySetting","textProps","updateTextPadding","updateBoxSize","paddingLeft","heightSetter","heightSetting","rSetter","widthSetting","getPaddedWidth","fontMetrics","firstLineMetrics","symbol","rect","hasBoxWidthChanged","widthSetter","paddingRight","xSetter","ySetter","innerR","open","longArc","clockwise","arc","callout","circle","diamond","roundedRect","square","triangle","svgElement","textLineHeight","lineHeight","ellipsis","noWrap","whiteSpace","buildSVG","actualWidth","modifyTree","modifyDOM","unescapeEntities","nextSibling","previousSibling","getLineHeight","truncate","Node","TEXT_NODE","baseVal","fontStyle","getSubStringLength","ceil","escapes","T","Z","V","imgCount","chartIndex","boxWrapper","getReferenceURL","allowHTML","setSize","unSubPixelFix","definition","elementFromPoint","location","fontFamily","setStyle","isHidden","Element","stdDeviation","button","R","hover","select","disabled","setState","state","pointerEvents","stopPropagation","crispLine","rx","ry","rGetter","viewBox","alignElements","image","preserveAspectRatio","Image","imgwidth","imgheight","backgroundSize","isImg","onload","hasLoaded","clipRect","rotCorr","Q","draw","compose","getSpanCorrection","htmlCss","htmlUpdateTransform","setSpanRotation","xCorr","yCorr","overflow","offsetLeft","offsetTop","marginLeft","marginTop","oldTextWidth","innerText","cTT","oldRotation","oldAlign","alignOnAdd","transformOrigin","addedSetters","reverse","classSetter","defaultXAxisOptions","alignTicks","allowDecimals","panningEnabled","zoomEnabled","endOnTick","gridLineDashStyle","gridZIndex","labels","autoRotation","autoRotationLimit","distance","indentation","reserveSpace","staggerLines","maxPadding","minorGridLineDashStyle","minorTickLength","minorTickPosition","minorTicksPerMajor","minPadding","opposite","reversed","reversedStacks","showEmpty","showFirstLabel","showLastLabel","startOfWeek","startOnTick","tickLength","tickPixelInterval","tickmarkPlacement","tickPosition","uniqueNames","visible","minorGridLineColor","minorGridLineWidth","minorTickColor","lineColor","lineWidth","gridLineColor","gridLineWidth","tickColor","defaultYAxisOptions","stackLabels","allowOverlap","crop","formatter","axis","total","defaultLeftAxisOptions","defaultRightAxisOptions","defaultBottomAxisOptions","defaultTopAxisOptions","registerEventOptions","eventOptions","events","isNewLabel","isNew","parameters","tickmarkOffset","addLabel","categories","logarithmic","tickPositions","tickInterval","category","lin2log","dateTime","unitName","getXDateFormat","isFirst","isLast","dateTimeLabelFormat","tick","tickPositionInfo","defaultLabelFormatter","shortenLabel","getSlotWidth","_addedPlotLB","moveLabel","movedLabel","createLabel","labelGroup","getPosition","oldChartHeight","chartHeight","transB","oldChartWidth","chartWidth","bottom","getLabelPosition","transA","isLinked","linkedParent","tickRotCorr","reserveSpaceDefault","labelOffset","labelAlign","side","horiz","getLabelSize","getMarkPath","handleOverflow","labelLeft","labelRight","isRadial","ticks","labelPos","xy","newOpacity","isActive","renderGridLine","renderMark","renderLabel","gridLine","dashstyle","gridGroup","getPlotLinePath","force","old","acrossPanes","tickSize","isXAxis","mark","axisGroup","replaceMovedLabel","isDirty","X","tickAmount","userOptions","translationSlope","positiveValuesOnly","pointRangePadding","pointRange","plotLinesAndBandsGroups","plotLinesAndBands","paddedTicks","overlap","minPixelPadding","minorTicks","minorTickInterval","maxLabelLength","labelEdge","hasVisibleSeries","hasNames","coll","closestPointRange","alternateBands","isZAxis","inverted","linkedTo","minRange","userMinRange","maxZoom","crosshair","crosshairs","axes","orderItems","labelRotation","numericSymbolMagnitude","getSeriesExtremes","dataMin","dataMax","threshold","softThreshold","xData","getXExtremes","applyExtremes","isOrdinal","brokenAxis","hasBreaks","lin2val","sector","val2lin","toPixels","toValue","translatedValue","getLinearTickPositions","single","getMinorTickInterval","getMinorTickPositions","getLogTickPositions","normalizeTimeTickInterval","trimTicks","adjustForMinRange","ceiling","xIncrement","log2lin","getClosest","noSharedTooltip","nameToX","requireSorting","autoIncrement","updateNames","points","isDirtyData","processData","generatePoints","setAxisTranslation","axisPointRange","minPointOffset","pointPlacement","ordinal","slope","staticScale","minFromRange","setTickInterval","getTickAmount","userMin","userMax","getExtremes","beforePadding","softMin","softMax","stacking","usePercentage","polar","forceCrop","forceCropping","hasExtremesChanged","minTickInterval","unsquish","setTickPositions","tickPositioner","hasVerticalPanning","positions","adjustTickAmount","alignToOthers","thresholdAlignment","pane","getThresholdAlignment","finalTickAmt","hasData","setScale","setAxisSize","forceRedraw","resetStacks","buildStacks","cleanStacks","panningState","setExtremes","kdTree","eventArgs","redraw","zoom","newMin","newMax","allowZoomOutside","displayBtn","trigger","zoomed","offsets","plotWidth","plotHeight","plotTop","plotLeft","getThreshold","autoLabelAlign","labelMetrics","MAX_VALUE","slotWidth","renderUnsquish","specificTextOverflow","addTitle","axisTitle","low","middle","high","generateTick","getOffset","axisParent","crossing","axisOffset","clipOffset","ja","showAxis","titleOffset","renderLine","axisTitleMargin","getMaxLabelDimensions","maxLabelDimensions","axisLine","getLinePath","getTitlePosition","titlePosition","renderMinorTick","renderTick","isColumn","alternateGridColor","yAxis","hasRendered","PlotLineOrBand","plotLines","plotBands","addPlotBandOrLine","isPlaced","renderStackTotals","getKeepProps","keepProps","keepEvents","drawCrosshair","cross","crosshairPos","plotX","plotY","chartX","chartY","stackY","isCrosshair","hideCrosshair","dashStyle","isDirtyBox","setTitle","setCategories","Additions","minorAutoInterval","isFlat","removePlotBandOrLine","addPlotBand","addPlotLine","getPlotBandPath","removePlotBand","removePlotLine","svgElem","eventsAdded","getLabelText","xBounds","yBounds","allowShared","container","isSticky","outside","bodyFormatter","tooltipOptions","formatPrefix","tooltipFormatter","cleanSplit","tt","defaultFormatter","tooltipFooterHeaderFormatter","hideTimer","tooltipTimeout","getAnchor","pointer","followPointer","normalize","tooltipPos","getClassName","colorIndex","getLabel","shouldStickOnContact","getPlayingField","clientWidth","clientHeight","getChartPosition","negative","hoverSeries","ttBelow","scrollablePixelsX","scrollablePixelsY","inClass","move","drawTracker","refresh","applyInactiveState","getLabelConfig","renderSplit","isDirectTouch","shouldShowTooltip","spacingBox","updatePosition","W","da","scrollingContainer","positioner","ha","isHeader","ignoreX","boxWidth","ca","la","hoverPoints","hoverPoint","tracker","styledModeFormat","isFooter","labelConfig","xDateFormat","tooltipDateKeys","destroyed","isNull","percentage","selected","shapeArgs","animateBeforeDestroy","startXPos","getGraphicalProps","singular","startYPos","plural","applyOptions","pointValKey","optionsToObject","group","isValid","relativeXValue","dataSorting","graphic","graphics","dataLabel","destroyElements","legendItem","destroyItem","onMouseOut","pointCount","firePointEvent","importEvents","allowPointSelect","ctrlKey","metaKey","shiftKey","zone","stackTotal","getZone","zones","zoneAxis","nonZonedColor","hasNewShapeType","shapeType","resolveColor","pointArrayMap","setNestedProperty","_hasPointLabels","marker","_hasPointMarkers","colorCounter","shouldDraw","valueDecimals","valuePrefix","valueSuffix","hasMockGraphic","connector","updateParallelArrays","fixedBox","hasCartesianSeries","legendType","isDirtyLegend","removePoint","selectedStaging","accumulate","getSelectedPoints","inactiveOtherPoints","onMouseOver","getChartCoordinatesFromPoint","runPointActions","hasImportedEvents","markerAttribs","halo","stateMarkerGraphic","pointAttribs","currentSymbol","markerGroup","isInside","isCluster","haloPath","lastValidTouch","pinchDown","runChartClick","eventsToUnbind","hasDragged","linkedSeries","navigatorSeries","setAllPointsToState","unbindDocumentMouseUp","unbindDocumentTouchEnd","clearInterval","getSelectionMarkerAttrs","attrs","mouseDownX","mouseDownY","zoomHor","zoomVert","drag","panKey","selectionMarker","touch","sqrt","isInsidePlot","visiblePlotOnly","mapView","zoomX","zoomY","selectionMarkerFill","pan","dragStart","mouseIsDown","cancelClick","getSelectionBox","drop","hasPinched","originalEvent","scaleGroups","_cursor","findNearestKDPoint","findNearestPointBy","searchPoint","distX","dist","clientX","isNode","chartPosition","getCoordinates","getHoverData","directTouch","enableMouseTracking","stickyTracking","boosted","boost","getPoint","getPointFromEvent","onTrackerMouseOut","relatedTarget","click","setDOMEvents","touches","changedTouches","pageX","pageY","onContainerClick","onContainerMouseDown","buttons","onContainerMouseMove","zoomOption","onContainerMouseLeave","hoverChartIndex","reset","onContainerMouseEnter","setHoverChartIndex","touchSelect","openMenu","onDocumentTouchEnd","onContainerTouchMove","onContainerTouchStart","onDocumentMouseMove","onDocumentMouseUp","pinch","hasZoom","followTouchMove","initiated","cancelable","bounds","pinchTranslate","pinchTranslateDirection","isCartesian","unDocMouseMove","hoverX","ownerDocument","getPlotBox","dataLabelsGroup","clipBox","onmousedown","renderTo","pinchType","dissolve","allItems","contentGroup","maxLegendWidth","maxItemWidth","legendWidth","legendHeight","lastLineHeight","lastItemY","itemY","itemX","itemHeight","initialItemY","pages","proximate","scrollGroup","widthOption","totalItemWidth","titleHeight","symbolWidth","symbolHeight","positionCheckboxes","proximatePositions","positionItems","colorizeItem","line","isMarker","positionItem","isResizing","rtl","checkbox","getAllItems","clipHeight","scrollOffset","checkboxOffset","renderTitle","setText","labelFormat","renderItem","itemDistance","drawLegendSymbol","createCheckboxForItem","showCheckbox","setItemEvents","itemWidth","labelWidth","labelHeight","layoutItem","showInLegend","getAlignment","floating","adjustMargins","legendIndex","maxHeight","arrowSize","nav","currentPage","fullHeight","pageIx","up","scroll","pager","down","upTracker","downTracker","setVisible","browserEvent","defaultChecked","lineMarker","linecap","radius","context","rectangle","symbolRadius","enabledThreshold","normal","radiusPlus","lineWidthPlus","fillColor","cropThreshold","turboThreshold","pointClass","registerSeriesType","seriesType","ia","ba","aa","processedYData","processedXData","bindAxes","getColor","getSymbol","parallelArrays","setDataSortingOptions","setData","axisTypes","optionalAxis","toYData","yData","pointIntervalUnit","pointStart","pointInterval","enabledDataSorting","allowDG","negativeColor","negativeFillColor","getName","getCyclic","getPointsCollection","hasGroupedData","findPointIndex","touched","matchByName","cropped","cropStart","updateData","hasDerivedData","addPoint","sortData","getFirstValidPoint","sortKey","getProcessedData","getExtremesFromAll","cropData","basePointRange","cropShoulder","processedData","dataGrouping","groupAll","dataGroup","groupMap","stackedYData","activeYData","dataExtremes","pointPlacementToXValue","startFromThreshold","stacks","negStacks","stackKey","getStackIndicator","irregularWidths","setOffset","pointXOffset","barW","yBottom","dataModify","modifyValue","isPointInside","closestPointRangePx","getValidPoints","getClipBox","plotSizeX","plotSizeY","getSharedClipKey","sharedClipKey","setClip","sharedClips","afterAnimate","finishedAnimating","drawPoints","colorAxis","specialGroup","hasImage","keepEventsForUpdate","removeEvents","clips","animationTimeout","survive","applyZones","graph","area","showLine","resetZones","plotGroup","invertible","seriesGroup","drawGraph","drawDataLabels","redrawPoints","searchKDTree","buildKDTree","kdAxisArray","buildingKdTree","kdNow","trackByArea","areaPath","graphPath","linkSeries","initialType","joinBy","mapData","hasOptionChanged","missingModuleFor","setName","mouseOver","mouseOut","labelBySeries","legendSymbol","types","registerType","ka","ea","labelCollectors","symbolCounter","getArgs","setZoomOptions","zoomType","zoomKey","zoomBySingleTouch","callback","showAxes","firstRender","initSeries","setSeriesData","getSeriesOrderByLinks","scrollablePlotBox","paneCoordinates","ignoreY","setResponsive","temporaryDisplay","layOutTitles","centerInCategory","updateTotals","getStacks","getMargins","extKey","drawChartBox","getAxes","getSelectedSeries","applyDescription","isStock","getContainerBox","getChartSize","containerBox","hcOrigStyle","hcOrigDetached","hcOricDetached","setProperty","setClassName","getContainer","getElementById","skipClone","userSelect","outline","exporting","resetMargins","marginBottom","getAxisMargins","setChartSize","isPrinting","reflowTimeout","setReflow","ResizeObserver","observe","marginRight","plotBorderWidth","skipAxes","plotBGImage","plotBackgroundColor","plotBackgroundImage","chartBackground","plotBackground","plotBorder","plotShadow","propFromSeries","isUpdating","renderSeries","seriesGroupShadow","addCredits","mapCredits","scroller","callbacks","warnIfA11yModuleNotLoaded","accessibility","role","addSeries","addAxis","createAxis","addColorAxis","showLoading","loadingDiv","loadingSpan","loadingShown","showDuration","hideLoading","hideDuration","isResponsiveOptions","propsRequireUpdateSeries","propsRequireDirtyBox","propsRequireReflow","collectionsWithUpdate","collectionsWithInit","setSubtitle","setCaption","showResetZoom","zoomOut","relativeTo","resetSelection","startMin","startMax","scrollablePlotArea","minWidth","minHeight","setUpScrolling","applyFixed","fixedDiv","WebkitOverflowScrolling","overflowX","overflowY","scrollingParent","innerContainer","moveFixedElements","fixedRenderer","scrollableMask","scrollableDirty","scrollPositionX","scrollPositionY","redrawTrigger","isNegative","cumulative","hasValidPoints","rightCliff","leftCliff","labelrank","getStackBox","xOffset","boxBottom","boxTop","defaultX","adjustStackPosition","labelBox","justifyDataLabel","oldStacks","stackTotalGroup","setStackedPoints","stacksTouched","singleStacks","setGroupedPoints","modifyStacks","percentStacker","gappedPath","getGraphPath","getZonesGraphs","preventGraphAnimation","xMap","fillGraph","connectNulls","getPointSpline","fillOpacity","shiftUnit","isCliff","doCurve","getStackPoints","leftNull","rightNull","rectPlotX","rightContX","rightContY","groupPadding","pointPadding","minPointLength","brightness","getColumnMetrics","grouping","columnIndex","maxPointWidth","pointWidth","columnMetrics","paddedWidth","columnCount","crispCol","adjustForMissingColumns","dense","translatedThreshold","barX","pointAttrToOptions","animationLimit","allowShadow","_hasTracking","trackerGroups","forceDL","inside","setDataLabelStartPos","initDataLabelsGroup","initDataLabels","dlOptions","dataLabelOnNull","connectors","labelDistance","contrastColor","getDataLabelPath","dataLabelPath","alignDataLabel","dlBox","below","jitter","column","applyJitter","isLog","takeOrdinalPosition","getCenter","slicedOffset","thickness","innerSize","angular","getStartAndEndRadians","getConnectorPath","labelPosition","connectorShapes","connectorShape","computed","alignment","connectorPosition","getTranslate","sliced","slicedTranslation","ignoreHiddenPoint","fixedOffset","breakAt","touchingSliceAt","softConnector","straight","crookedLine","crookDistance","tan","angle","connectorPadding","maxLabelDistance","startAngleRad","startR","drawEmpty","endAngleRad","delayedRendering","getX","radii","asin","sortByAngle","startAngle","endAngle","half","natural","dataLabelPositioners","shortened","_pos","distributeBox","radialDistributionY","positionIndex","justify","alignToConnectors","alignToPlotEdges","radialDistributionX","_attr","sideOverflow","verifyDataLabelOverflow","placeDataLabels","connectorWidth","connectorColor","moved","minSize","oldOpacity","isOld","hideOverlappingLabels","absoluteBox","scope","where","brBoxHeight","brBoxY","pie","is3d","condition","maxWidth","_id","responsive","currentResponsive","rules","matchResponsiveRule","chartOptions","ruleIds","undoOptions","mergedOptions","AST","Axis","Chart","Fx","Legend","Pointer","Series","StackItem","SVGElement","SVGRenderer","Templating","Tick","Time","Tooltip","_modules","dataClasses","getDataClassLegendSymbols","legendColor","colorAttribs","translateColors","nullColor","colorKey","toColor","isX","pointSetVisible","minColor","maxColor","defaultColorAxisOptions","initDataClasses","initStops","dataClassColor","defaultLegendLength","normalizedValue","dataClass","setLegendColor","labelPadding","minColorValue","maxColorValue","addedToColorAxis","destroyItems","isDataClass","moveToTopOnHover","pointMembers","seriesMembers","colorProp","scatter","getCellAttributes","colsize","rowsize","canvas","valueMin","valueMax","interpolation","getContext","putImageData","ImageData","toDataURL","clearRect","valueData","ellipse","widthPlus","heightPlus","heatmap","ColorAxis","$jscomp","arrayIteratorImpl","arrayIterator","ASSUME_ES5","ASSUME_NO_NATIVE_MAP","ASSUME_NO_NATIVE_SET","SIMPLE_FROUND_POLYFILL","ISOLATE_POLYFILLS","getGlobal","globalThis","SYMBOL_PREFIX","initSymbol","SymbolClass","$jscomp$symbol$id_","initSymbolIterator","iteratorPrototype","initSymbolAsyncIterator","asyncIterator","iteratorFromArray","polyfills","propertyToPolyfillSymbol","POLYFILL_PREFIX","IS_SYMBOL_NATIVE","polyfillIsolated","polyfillUnisolated","plot","startDirection","direction","lH","nH","lW","nW","elArr","lP","nR","lR","aspectRatio","addElement","animatableAttribs","onComplete","attribs","node","level","nodeMap","rootNode","isLeaf","interactByLeaf","allowTraversingTree","AXIS_MAX","isBoolean","eachObject","recursive","mapOptionsToLevel","parentColor","parentColorIndex","siblings","colorVariation","getLevelOptions","levels","defaults","levelIsConstant","setTreeValues","before","idRoot","mapIdToNode","levelDynamic","childrenTotal","updateRootId","rootId","mainBreadcrumb","buttonTheme","buttonSpacing","separator","showFullPath","breadcrumbs","alignBreadcrumbsGroup","yOffset","elementList","drilldown","drillUpButton","updateProperties","setList","setLevel","getLevel","getButtonText","drillUpText","levelOptions","renderFullPathButtons","renderSingleButton","destroySingleButton","resetElementListState","updateListElements","destroyListElements","renderButton","updateSingleButton","newLevel","renderSeparator","updated","parent","tree","nodeList","axisRatio","algorithmCalcPoints","algorithmFill","algorithmLowAspectRatio","calculateChildrenAreas","layoutAlgorithm","alternateStartingDirection","ignore","layoutStartingDirection","pointValues","createList","newRootId","drillId","drillToByLeaf","drillToByGroup","drillToNode","setRootNode","drillUp","colorValueData","getListOfParents","getTree","buildTree","NodeClass","allowDrillToNode","traverseUpButton","onClickDrillToNode","borderDashStyle","setColorRecursive","setPointValues","previousRootId","idPreviousRoot","sortIndex","sliceAndDice","squarified","strip","stripes","utils","Breadcrumbs","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ctor","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","_","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","all","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","define","getPolyfill","shim","whichTypedArray","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","isArgumentsObject","isGeneratorFunction","isTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","method","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","stringify","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","opts","seen","stylize","stylizeNoColor","_extend","isUndefined","stylizeWithColor","formatValue","styleType","primitive","simple","formatPrimitive","visibleKeys","hash","idx","arrayToHash","isError","formatError","braces","toUTCString","formatProperty","formatArray","prev","numLinesEst","reduceToSingleString","ar","re","debuglog","pid","isNullOrUndefined","isSymbol","isPrimitive","getHours","getMinutes","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","reject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","gOPD","typedArrays","$slice","typedArray","superProto","tag","getter","trySlices","tryTypedArrays","possibleNames","HTMLSlotElement","assignedElements","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","cssText","styleSheet","replaceSync","adoptedStyleSheets","litNonce","cssRules","emptyScript","reactiveElementPolyfillSupport","toAttribute","fromAttribute","converter","hasChanged","HTMLElement","_$Ei","isUpdatePending","hasUpdated","_$El","_$Eu","addInitializer","finalize","observedAttributes","elementProperties","_$Ep","_$Ev","createProperty","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","elementStyles","finalizeStyles","flat","_$E_","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","isConnected","hostConnected","removeController","createRenderRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","_$EC","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","_$Ek","_$AE","hostUpdated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","renderOptions","host","_$Do","renderBefore","setConnected","finalized","_$litElement$","litElementHydrateSupport","litElementPolyfillSupport","litElementVersions","createComment","$","_$litType$","for","createTreeWalker","lastIndex","startsWith","el","currentNode","content","append","nextNode","hasAttributes","getAttributeNames","_$Co","_$Cl","_$AO","_$AV","_$AN","_$AD","creationScope","importNode","_$AI","_$AH","_$AA","_$AB","_$Cp","startNode","endNode","_$AR","_$AC","_$AP","handleEvent","litHtmlPolyfillSupport","litHtmlVersions","_$litPart$","customElements","kind","elements","finisher","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","utf16beread","$cptable","_getchar","_getansi","DENSE","Base64_map","Base64_encode","c1","c2","c3","e1","e2","e3","e4","Base64_decode","has_buf","Buffer_from","nbfs","enc","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","bconcat","bufs","maxlen","chr0","chr1","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","days","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","mixed","sgn","P_2","P_1","Q_2","Q_1","SSF_parse_date_code","b2","date","dow","dout","date1904","setDate","getFullYear","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","SSF_strip_decimal","SSF_general_num","LOG10E","SSF_small_exp","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","ss0","ss","outl","commaify","pct1","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","write_num_pct","ri","ff","aval","sign","den","rr","myn","myd","write_num_f1","carry","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","choose_fmt","in_str","SSF_split_fmt","lat","m1","m2","dateNF","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","eval_fmt","SSF_load","SSF_load_table","tbl","make_ssf","SSF_init_table","dateNFregex","CRC32","T0","signed_crc_table","TT","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","seed","CFB","fs","dirname","filename","write_dos_date","hms","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","file","parse_zip","root","di","mboundary","boundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","sectors","nsectors","sectorify","sleuth_fat","sector_list","sl","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","files","mini","minifat_store","pl","namelen","__utf16le","clsid","ct","read_date","storage","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","raw","entry","payload","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","fullPaths","HEADER_CLSID","namecmp","elt","_write","_opts","fileType","fp","fi","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","ctree","rev","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","mlen","len_eb","dst_eb","write_huff_fixed","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","bits","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","unsafe","ContentTypeMap","ctype","encoded","si","fdata","fname","cte","oi","parse_quoted_printable","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","readFileSync","read_file","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","Blob","msSaveBlob","saveAs","URL","createObjectURL","chrome","downloads","download","revokeObjectURL","File","Folder","close","ks","o2","evert_key","evert","evert_num","basedate","datenum","refdate","dnthresh","refoffset","numdate","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","TextDecoder","decode","dup","fuzzynum","wt","lower_months","fuzzydate","getYear","lower","zip_add_file","zip","widx","ridx","utf8decode","zip_new","XML_HEADER","encodings","rencoding","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","htmldecode","entities","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","XMLNS","CORE_PROPS","CUST_PROPS","EXT_PROPS","CT","RELS","TCMNT","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","read_double_le","__double","is_buf","cpdoit","__readInt16LE","__readInt32BE","oI","oR","loc","oo","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","bs","av","write_double_le","hexstr","fld","parsenoop","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","XLSBRecordEnum","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","col","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","_R","_C","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","write_BrtCommentText","write_StrRun","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","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","nTS","tint","rgb","VT_I2","VT_I4","VT_STRING","DocSummaryPIDDSI","SummaryPIDSI","rgbify","XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","dialogs","macros","metadata","write_ct","type2ct","evert_arr","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","write_rels","rels","rid","add_rels","rId","relobj","targetmode","Id","Type","Target","TargetMode","write_rdf_type","write_meta_ods","cp_doit","write_core_props","dc","dcterms","dcmitype","Props","CreatedDate","WTF","ModifiedDate","PseudoPropsPairs","write_ext_props","Application","vt","Worksheets","baseType","write_cust_props","write_vt","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","write_TypedPropertyValue","write_FILETIME","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","PIDSI","hdr","piao","pr","pio","pinfo","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsebool","writebool","parseuint16","writeuint16","write_Bes","parse_ShortXLUnicodeString","cch","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","write_HyperlinkString","write_Hyperlink","hl","hashidx","Pretarget","write_XLSCell","ixfe","parse_XTI","parse_Ref8U","rwFirst","rwLast","write_Ref8U","write_BOF","write_BoundSheet8","hs","write_Format","b5","write_XF","ixfeP","parse_ExternSheet","parse_BIFF5ExternSheet","write_HLink","ref","write_HLinkTooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","to_sheet","from_sheet","aoa","sheet_to_json","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","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_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","RT","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","rows","px2pt","write_ws_rows_sylk","coord","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","meta","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","outer","prn_to_sheet_str","lines","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","rel","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_RANGE","max_R","book_to_wk3","wscnt","write_BOF_WK3","straywsregex","write_sst_xml","sst","bookSST","xmlns","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","Verifier","PasswordDecoded","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","rgb2Hex","DEF_MDW","MDW","px","char2width","chr","customWidth","PPI","pt","write_sty_xml","SSF","NF","formatCode","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","font","grbit","italic","strike","condense","write_FontFlags","bold","sss","vertAlign","underline","family","charset","scheme","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","patternType","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_BrtBorder","write_STYLES_bin","xfId","builtinId","write_BrtStyle","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","write_theme","Themes","themeXLSX","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","cm","write_BrtBeginEsmdb","mdb","write_BrtMdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","fillparm","fillxml","fillcolor","strokecolor","write_comments_xml","iauthor","lastauthor","ts","write_tcmnt_xml","people","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","comment","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","delta","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","cce","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","tab","parsetab","Cetab","nameindex","rl","parse_RgceLocRel_BIFF2","cl","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","Ptg19","bitIf","bitGoto","parse_RgbExtra","rgce","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","Name","get_ixti","ixtiraw","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","lbl","xlfn","externbook","bookidx","itab","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","write_Formula","os","o1","write_FormulaValue","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","browser_has_Map","get_sst_id","revarr","col_obj_w","outlineLevel","default_margins","margins","footer","get_cell_style","revssf","ssf","applyNumberFormat","check_ws","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","write_ws_xml","rdata","_drawing","needed","vbaraw","cname","Workbook","CodeName","codeName","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","_cell","ht","customHeight","write_ws_xml_data","password","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","miyRw","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","ncell","write_BrtShortIsst","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_MERGECELLS","write_BrtBeginMergeCells","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_BrtSheetProtection","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_BrtMargins","write_LEGACYDRAWING","WBPropsDef","badchars","check_ws_name","safe","_good","check_wb","cn","write_wb_xml","write_names","workbookPr","WBProps","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_BOOKVIEWS","vistab","write_BrtBookView","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","write_BUNDLESHS","write_ws","write_cmnt","write_props_xlml","xlml_write_docprops","Custprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","marr","mi","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","skip","write_ws_xlml_table","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xf","write_sty_xlml","write_names_xlml","PSCLSID","SI","DSI","UDI","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xls_props","vba","newpath","fill_vba_xls","cellFormula","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","icv","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","rfx","fAlwaysCalc","relId","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_cols_biff8","write_ColInfo","write_ws_biff8_cell","write_Number","write_BoolErr","write_LabelSst","b8","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","HL","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","make_html_row","rowspan","colspan","editable","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","midx","is_dom_element_hidden","elts","hasAttribute","_t","Aelts","Aelti","parse_dom_table","get_computed_style","defaultView","get_get_computed_style_function","write_styles_ods","master_styles","write_content_ods","null_cell_xml","ods","ROWS","textp","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","stru8","u8concat","u8a","acc","u8","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","parse_iwa_file","_a","ai","fl","write_iwa_file","ias","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","write_new_storage","dv","exp","mantissa","writeDecimal128LE","setFloat64","setUint32","write_old_storage","parse_TSP_Reference","write_tile_row","tri","_b","_c","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","numbers","trunc","dependents","indices","packet2","deps","indices_varint","ivi","mess","u8contains","docroot","xi","packet","sheetrootref","pb","cruidsref","oldbucket","_x","cruids","uuid","store","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sx","sxi","sstdata","newsst","raw32","tile","tl","tileref","tileroot","tentry","tx","tiledata","rowload","R2","tilerow","raw3","write_numbers_iwa","wbrels","wbext","vbafmt","threadedcomments","links","coreprops","extprops","custprops","themes","calcchains","drawings","TODO","_sn","wsrels","need_vml","cf","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsxb","write_zip_xlsx","needtc","person","displayName","userId","providerId","write_people_xml","write_cfb_ctr","write_zip_denouement","oopts","ftype","generate","encrypt_agile","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","rs","txt","forceQuotes","endregex","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","RC","roll","cell_set_hyperlink","split_cell","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","author","sheet_set_array_formula","dynamic","rng","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN"],"sourceRoot":""}