From a104380ecd179201a1e841649d50ebc83779aa21 Mon Sep 17 00:00:00 2001 From: Wooseok Yang Date: Mon, 29 Mar 2021 18:41:51 +0900 Subject: [PATCH 1/2] Update reader.js it should work both absolute and relative paths. --- danfojs-node/src/io/reader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/danfojs-node/src/io/reader.js b/danfojs-node/src/io/reader.js index b88174b4..eb8705ad 100644 --- a/danfojs-node/src/io/reader.js +++ b/danfojs-node/src/io/reader.js @@ -19,7 +19,7 @@ export const read_csv = async (source, configs = {}) => { let { start, end } = configs; if (!(source.startsWith("file://") || source.startsWith("http"))) { //probabily a relative path, append file:// to it - source = `file://${process.cwd()}/${source}`; + source = source.startsWith("/") ? `file://${source}` : `file://${process.cwd()}/${source}`; } let tfdata = []; From dbab3b637cfd254fb65d185b65fae69336515c38 Mon Sep 17 00:00:00 2001 From: Rising Odegua Date: Mon, 29 Mar 2021 17:05:05 +0100 Subject: [PATCH 2/2] Merge updates and build new version --- danfojs-browser/README.md | 4 +- danfojs-browser/lib/bundle.js | 2 +- danfojs-browser/lib/bundle.js.LICENSE.txt | 17 +++++ danfojs-browser/lib/bundle.js.map | 2 +- danfojs-browser/package.json | 2 +- danfojs-browser/src/index.js | 2 +- danfojs-browser/yarn.lock | 72 ++++++++++---------- danfojs-node/README.md | 4 +- danfojs-node/dist/index.js | 2 +- danfojs-node/dist/io/reader.js | 2 +- danfojs-node/package.json | 2 +- danfojs-node/src/index.js | 2 +- danfojs-node/yarn.lock | 82 +++++++++++------------ 13 files changed, 106 insertions(+), 89 deletions(-) diff --git a/danfojs-browser/README.md b/danfojs-browser/README.md index 863ef659..481bc5d6 100644 --- a/danfojs-browser/README.md +++ b/danfojs-browser/README.md @@ -51,7 +51,7 @@ easy and intuitive. It is heavily inspired by [Pandas](https://pandas.pydata.org To use Danfo.js via script tags, copy and paste the CDN below to the body of your HTML file ```html - + ``` ### Example Usage in the Browser @@ -66,7 +66,7 @@ To use Danfo.js via script tags, copy and paste the CDN below to the body of you - + Document diff --git a/danfojs-browser/lib/bundle.js b/danfojs-browser/lib/bundle.js index 5197cb91..e1f25b2c 100644 --- a/danfojs-browser/lib/bundle.js +++ b/danfojs-browser/lib/bundle.js @@ -1,3 +1,3 @@ /*! For license information please see bundle.js.LICENSE.txt */ -var dfd;dfd=(()=>{var __webpack_modules__={7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,s,i){try{var o=e[s](i),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,s){var i=e.apply(n,r);function o(e){t(i,a,s,o,l,"next",e)}function l(e){t(i,a,s,o,l,"throw",e)}o(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},3913:e=>{function t(e,t){for(var n=0;n{var r=n(8331);function a(t,n,s){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=a=Reflect.get:e.exports=a=function(e,t,n){var a=r(e,t);if(a){var s=Object.getOwnPropertyDescriptor(a,t);return s.get?s.get.call(n):s.value}},a(t,n,s||t)}e.exports=a},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,s=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(a)throw s}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),s=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||s(e,t)||i()}},8331:(e,t,n)=>{var r=n(9754);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},319:(e,t,n)=>{var r=n(3646),a=n(6860),s=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||s(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},7757:(e,t,n)=>{e.exports=n(5666)},2563:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Abs:()=>je,Acos:()=>He,Acosh:()=>Ge,AdadeltaOptimizer:()=>Fo,AdagradOptimizer:()=>Bo,AdamOptimizer:()=>Po,AdamaxOptimizer:()=>jo,Add:()=>qe,AddN:()=>Ke,All:()=>Xe,Any:()=>Ye,ArgMax:()=>Je,ArgMin:()=>Ze,Asin:()=>Qe,Asinh:()=>et,Atan:()=>tt,Atan2:()=>rt,Atanh:()=>nt,AvgPool:()=>at,AvgPool3D:()=>it,AvgPool3DGrad:()=>ot,AvgPoolGrad:()=>st,BatchMatMul:()=>lt,BatchToSpaceND:()=>ut,Bincount:()=>ct,BroadcastTo:()=>ht,Callback:()=>fx,CallbackList:()=>my,Cast:()=>ft,Ceil:()=>dt,ClipByValue:()=>pt,Complex:()=>mt,ComplexAbs:()=>gt,Concat:()=>yt,Conv2D:()=>bt,Conv2DBackpropFilter:()=>vt,Conv2DBackpropInput:()=>wt,Conv3D:()=>_t,Conv3DBackpropFilterV2:()=>xt,Conv3DBackpropInputV2:()=>kt,Cos:()=>Et,Cosh:()=>Ct,CropAndResize:()=>Nt,Cumsum:()=>St,CustomCallback:()=>by,DataStorage:()=>V,DenseBincount:()=>It,DepthToSpace:()=>Dt,DepthwiseConv2dNative:()=>At,DepthwiseConv2dNativeBackpropFilter:()=>Tt,DepthwiseConv2dNativeBackpropInput:()=>Rt,Diag:()=>Ft,Dilation2D:()=>Ot,Dilation2DBackpropFilter:()=>Mt,Dilation2DBackpropInput:()=>Bt,ENV:()=>We,EarlyStopping:()=>mx,Elu:()=>Pt,EluGrad:()=>Lt,Environment:()=>Pe,Equal:()=>Wt,Erf:()=>zt,Exp:()=>Ut,ExpandDims:()=>Vt,Expm1:()=>jt,FFT:()=>Ht,Fill:()=>Gt,FlipLeftRight:()=>qt,Floor:()=>Kt,FloorDiv:()=>Xt,FromPixels:()=>Br,FusedBatchNorm:()=>Yt,FusedConv2D:()=>Pr,FusedDepthwiseConv2D:()=>Lr,GatherNd:()=>Zt,GatherV2:()=>Jt,GraphModel:()=>Sk,Greater:()=>Qt,GreaterEqual:()=>en,History:()=>yy,IFFT:()=>nn,Identity:()=>tn,Imag:()=>rn,InputSpec:()=>ny,IsFinite:()=>an,IsInf:()=>sn,IsNan:()=>on,KernelBackend:()=>j,LRN:()=>bn,LRNGrad:()=>vn,LayerVariable:()=>Qg,LayersModel:()=>kb,LeakyRelu:()=>ln,Less:()=>un,LessEqual:()=>cn,LinSpace:()=>hn,Log:()=>fn,Log1p:()=>dn,LogSoftmax:()=>yn,LogicalAnd:()=>pn,LogicalNot:()=>mn,LogicalOr:()=>gn,Max:()=>wn,MaxPool:()=>xn,MaxPool3D:()=>En,MaxPool3DGrad:()=>Cn,MaxPoolGrad:()=>kn,MaxPoolWithArgmax:()=>Sn,Maximum:()=>_n,Mean:()=>Nn,Min:()=>In,Minimum:()=>Dn,MirrorPad:()=>An,Mod:()=>Tn,MomentumOptimizer:()=>Go,Multinomial:()=>Rn,Multiply:()=>Fn,Neg:()=>On,NonMaxSuppressionV3:()=>Mn,NonMaxSuppressionV4:()=>$n,NonMaxSuppressionV5:()=>Pn,NotEqual:()=>Bn,OP_SCOPE_SUFFIX:()=>Va,OneHot:()=>zn,OnesLike:()=>Ln,Optimizer:()=>Ro,Pack:()=>Wn,PadV2:()=>Un,Pool:()=>Vn,Pow:()=>jn,Prelu:()=>Hn,Prod:()=>Gn,RMSPropOptimizer:()=>qo,RNN:()=>Nv,Range:()=>qn,Rank:()=>ya,Real:()=>Kn,RealDiv:()=>$t,Reciprocal:()=>Xn,Reduction:()=>Nf,Relu:()=>Yn,Relu6:()=>nr,Reshape:()=>Jn,ResizeBilinear:()=>er,ResizeBilinearGrad:()=>tr,ResizeNearestNeighbor:()=>Zn,ResizeNearestNeighborGrad:()=>Qn,Reverse:()=>rr,RotateWithOffset:()=>Mr,Round:()=>ar,Rsqrt:()=>sr,SGDOptimizer:()=>Ho,ScatterNd:()=>ir,Select:()=>or,Selu:()=>lr,Sequential:()=>Sb,Sigmoid:()=>dr,Sign:()=>fr,Sin:()=>cr,Sinh:()=>hr,Slice:()=>ur,Softmax:()=>vr,Softplus:()=>pr,SpaceToBatchND:()=>yr,SparseToDense:()=>kr,SplitV:()=>br,Sqrt:()=>mr,Square:()=>_r,SquaredDifference:()=>wr,Step:()=>Or,StridedSlice:()=>Er,Sub:()=>xr,Sum:()=>gr,SymbolicTensor:()=>ry,Tan:()=>Cr,Tanh:()=>Sr,Tensor:()=>ma,TensorBuffer:()=>ha,Tile:()=>Nr,TopK:()=>Ir,Transpose:()=>Dr,Unique:()=>Ar,Unpack:()=>Tr,UnsortedSegmentSum:()=>Rr,Variable:()=>ga,ZerosLike:()=>Fr,_FusedMatMul:()=>$r,abs:()=>Lo,acos:()=>Ko,acosh:()=>Xo,add:()=>yo,addN:()=>Yo,addStrict:()=>Ch,all:()=>Jo,any:()=>Zo,argMax:()=>Qo,argMin:()=>el,asin:()=>tl,asinh:()=>nl,atan:()=>rl,atan2:()=>al,atanh:()=>sl,avgPool:()=>wl,avgPool3d:()=>_l,backend:()=>mo,backend_util:()=>g,basicLSTMCell:()=>Sl,batchNorm:()=>Il,batchNorm2d:()=>Dl,batchNorm3d:()=>Al,batchNorm4d:()=>Tl,batchToSpaceND:()=>Nl,bincount:()=>Rl,booleanMaskAsync:()=>bh,broadcastTo:()=>Fl,browser:()=>l,buffer:()=>Ls,callbacks:()=>gx,cast:()=>zs,ceil:()=>Ol,clipByValue:()=>Bl,clone:()=>Ws,complex:()=>Ha,concat:()=>xl,concat1d:()=>Ml,concat2d:()=>$l,concat3d:()=>Pl,concat4d:()=>Ll,constraints:()=>b,conv1d:()=>Wl,conv2d:()=>zl,conv2dTranspose:()=>Vl,conv3d:()=>jl,conv3dTranspose:()=>Gl,copyRegisteredKernels:()=>Xr,cos:()=>ql,cosh:()=>Kl,cosineWindow:()=>Uh,cumsum:()=>Xl,customGrad:()=>Do,data:()=>W,denseBincount:()=>Yl,deprecationWarn:()=>Zi,depthToSpace:()=>Jl,depthwiseConv2d:()=>Zl,deregisterOp:()=>xx,device_util:()=>s,diag:()=>Ql,dilation2d:()=>eu,disableDeprecationWarnings:()=>Ji,dispose:()=>ao,disposeVariables:()=>Qi,div:()=>vo,divNoNan:()=>ru,divStrict:()=>Sh,dot:()=>au,dropout:()=>zh,elu:()=>su,enableDebugMode:()=>Yi,enableProdMode:()=>Xi,enclosingPowerOfTwo:()=>Wh,engine:()=>eo,env:()=>Le,equal:()=>tu,equalStrict:()=>vh,erf:()=>iu,exp:()=>ou,expandDims:()=>lu,expm1:()=>uu,eye:()=>hu,fft:()=>Kc,fill:()=>Oo,findBackend:()=>ho,findBackendFactory:()=>fo,floor:()=>fu,floorDiv:()=>bo,fused:()=>p,gather:()=>du,gatherND:()=>Lh,gather_util:()=>u,getBackend:()=>uo,getGradient:()=>Vr,getKernel:()=>Ur,getKernelsForBackend:()=>jr,grad:()=>Eo,grads:()=>Co,greater:()=>pu,greaterEqual:()=>mu,greaterEqualStrict:()=>wh,greaterStrict:()=>_h,ifft:()=>Xc,imag:()=>gu,image:()=>Lf,inTopKAsync:()=>Vh,initializers:()=>v,input:()=>Ab,io:()=>i,irfft:()=>Yc,isFinite:()=>yu,isInf:()=>bu,isNaN:()=>vu,keep:()=>so,kernel_impls:()=>y,layers:()=>w,leakyRelu:()=>wu,less:()=>_u,lessEqual:()=>xu,lessEqualStrict:()=>xh,lessStrict:()=>kh,linalg:()=>zf,linspace:()=>ku,loadGraphModel:()=>Nk,loadLayersModel:()=>Db,localResponseNormalization:()=>Eu,log:()=>Cu,log1p:()=>Su,logSigmoid:()=>Du,logSoftmax:()=>Ru,logSumExp:()=>Wu,logicalAnd:()=>Uu,logicalNot:()=>Vu,logicalOr:()=>ju,logicalXor:()=>Hu,losses:()=>Wf,matMul:()=>ii,math:()=>o,max:()=>Au,maxPool:()=>Gu,maxPool3d:()=>qu,maxPoolWithArgmax:()=>Ku,maximum:()=>Vo,maximumStrict:()=>Nh,mean:()=>Xu,memory:()=>to,metrics:()=>_,min:()=>Yu,minimum:()=>Ju,minimumStrict:()=>Ih,mirrorPad:()=>Zu,mod:()=>Qu,modStrict:()=>Dh,model:()=>Nb,models:()=>x,moments:()=>ec,movingAverage:()=>Mh,mul:()=>wo,mulStrict:()=>Ah,multiRNNCell:()=>tc,multinomial:()=>nc,neg:()=>Nu,nextFrame:()=>Hf,norm:()=>Bh,notEqual:()=>rc,notEqualStrict:()=>Eh,oneHot:()=>oi,ones:()=>sc,onesLike:()=>ic,op:()=>ja,outerProduct:()=>oc,pad:()=>lc,pad1d:()=>uc,pad2d:()=>cc,pad3d:()=>hc,pad4d:()=>fc,pool:()=>pc,pow:()=>Mo,powStrict:()=>Th,prelu:()=>mc,print:()=>Us,prod:()=>gc,profile:()=>no,rand:()=>yc,randomGamma:()=>xc,randomNormal:()=>kc,randomUniform:()=>Ec,range:()=>Cc,ready:()=>lo,real:()=>Sc,reciprocal:()=>Nc,registerBackend:()=>po,registerCallbackConstructor:()=>Tb,registerGradient:()=>Gr,registerKernel:()=>Hr,registerOp:()=>wx,regularizers:()=>k,relu:()=>Ic,relu6:()=>Dc,removeBackend:()=>co,reshape:()=>vl,reverse:()=>Ac,reverse1d:()=>Tc,reverse2d:()=>Rc,reverse3d:()=>Fc,reverse4d:()=>Oc,rfft:()=>Zc,round:()=>Bc,rsqrt:()=>Mc,scalar:()=>To,scatterND:()=>$h,scatter_util:()=>c,selu:()=>$c,separableConv2d:()=>Pc,sequential:()=>Ib,serialization:()=>f,setBackend:()=>oo,setPlatform:()=>go,setdiff1dAsync:()=>Lc,sigmoid:()=>kl,sign:()=>zc,signal:()=>Pf,sin:()=>Wc,sinh:()=>Uc,slice:()=>El,slice1d:()=>Vc,slice2d:()=>jc,slice3d:()=>Hc,slice4d:()=>Gc,slice_util:()=>h,softmax:()=>qc,softplus:()=>Iu,spaceToBatchND:()=>dc,sparseToDense:()=>Ph,spectral:()=>$f,split:()=>Jc,sqrt:()=>_o,square:()=>xo,squaredDifference:()=>Qc,squaredDifferenceStrict:()=>Rh,squeeze:()=>eh,stack:()=>th,step:()=>nh,stridedSlice:()=>rh,sub:()=>$o,subStrict:()=>Fh,sum:()=>Tu,sumOutType:()=>Ea,tan:()=>ah,tanh:()=>Cl,tensor:()=>qa,tensor1d:()=>sh,tensor2d:()=>ih,tensor3d:()=>ci,tensor4d:()=>oh,tensor5d:()=>lh,tensor6d:()=>uh,tensor_util:()=>a,test_util:()=>d,tidy:()=>ro,tile:()=>cu,time:()=>io,topk:()=>ch,train:()=>Vf,transpose:()=>li,truncatedNormal:()=>hh,unique:()=>fh,unregisterGradient:()=>Kr,unregisterKernel:()=>qr,unsortedSegmentSum:()=>dh,unstack:()=>ph,upcastType:()=>ka,util:()=>r,valueAndGrad:()=>So,valueAndGrads:()=>No,variable:()=>mh,variableGrads:()=>Io,version:()=>wP,version_converter:()=>Ik,version_core:()=>Ki,version_layers:()=>Zy,where:()=>nu,whereAsync:()=>yh,zeros:()=>ac,zerosLike:()=>ko});var r={};n.r(r),n.d(r,{arraysEqual:()=>ae,assert:()=>Z,assertNonNegativeIntegerDimensions:()=>Oe,assertNonNull:()=>ee,assertShapesMatch:()=>Q,bytesFromStringArray:()=>_e,bytesPerElement:()=>we,checkConversionForErrors:()=>ge,clamp:()=>q,computeStrides:()=>Ie,createScalarValue:()=>sa,createShuffledIndices:()=>le,decodeString:()=>ca,distSquared:()=>J,encodeString:()=>ua,fetch:()=>la,flatten:()=>te,getArrayFromDType:()=>me,getTypedArrayFromDType:()=>pe,hasEncodingLoss:()=>be,indexToLoc:()=>Me,inferDtype:()=>Ce,inferFromImplicitShape:()=>he,isBoolean:()=>ke,isFunction:()=>Se,isInt:()=>se,isNumber:()=>Ee,isPromise:()=>$e,isScalarShape:()=>re,isString:()=>xe,isTypedArray:()=>ve,isValidDtype:()=>ye,locToIndex:()=>Be,makeOnesTypedArray:()=>Te,makeZerosNestedTypedArray:()=>Fe,makeZerosTypedArray:()=>Re,nearestDivisor:()=>Ne,nearestLargerEven:()=>K,now:()=>oa,parseAxisParam:()=>fe,randUniform:()=>Y,repeatedTry:()=>ce,rightPad:()=>ue,shuffle:()=>G,sizeFromShape:()=>ne,sizeToSquarishShape:()=>oe,squeezeShape:()=>de,sum:()=>X,tanh:()=>ie,toNestedArray:()=>Ae,toTypedArray:()=>ia});var a={};n.r(a),n.d(a,{assertTypesMatch:()=>Sa,getTensorsInContainer:()=>Ia,isTensorInList:()=>Na,makeTypesMatch:()=>Ca});var s={};n.r(s),n.d(s,{isBrowser:()=>Ma,isMobile:()=>Ba});var i={};n.r(i),n.d(i,{browserFiles:()=>Gs,browserHTTPRequest:()=>ti,concatenateArrayBuffers:()=>es,copyModel:()=>Bs,decodeWeights:()=>Ya,encodeWeights:()=>Xa,fromMemory:()=>ai,getLoadHandlers:()=>ls,getModelArtifactsInfoForJSON:()=>ns,getSaveHandlers:()=>os,http:()=>ei,isHTTPScheme:()=>Zs,listModels:()=>Fs,loadWeights:()=>Xs,moveModel:()=>Ms,registerLoadRouter:()=>is,registerSaveRouter:()=>ss,removeModel:()=>Os,weightsLoaderFactory:()=>Ys,withSaveHandler:()=>si});var o={};n.r(o),n.d(o,{confusionMatrix:()=>ui});var l={};n.r(l),n.d(l,{fromPixels:()=>di,toPixels:()=>fi});var u={};n.r(u),n.d(u,{prepareAndValidate:()=>pi});var c={};n.r(c),n.d(c,{calculateShapes:()=>yi,validateInput:()=>gi,validateUpdateShape:()=>mi});var h={};n.r(h),n.d(h,{assertParamsValid:()=>bi,computeFlatOffset:()=>Ti,computeOutShape:()=>wi,getNormalizedAxes:()=>Ei,isSliceContinous:()=>Ai,maskToAxes:()=>vi,parseSliceParams:()=>Ri,sliceInfo:()=>Fi,startForAxis:()=>Ii,startIndicesWithElidedDims:()=>Ci,stopForAxis:()=>Di,stopIndicesWithElidedDims:()=>Si,stridesForAxis:()=>Ni,stridesWithElidedDims:()=>_i});var f={};n.r(f),n.d(f,{Serializable:()=>Oi,SerializationMap:()=>Bi,registerClass:()=>Mi});var d={};n.r(d),n.d(d,{TEST_EPSILON_FLOAT16:()=>$i,encodeStrings:()=>qi,expectArrayBuffersEqual:()=>Gi,expectArraysClose:()=>Pi,expectArraysEqual:()=>Ui,expectNumbersClose:()=>Vi,expectPromiseToFail:()=>Wi,expectValuesInRange:()=>Hi,testEpsilon:()=>Li});var p={};n.r(p),n.d(p,{conv2d:()=>Xh,depthwiseConv2d:()=>Zh,matMul:()=>Qh});var m={};n.r(m),n.d(m,{collectGatherOpShapeInfo:()=>kd,computeOutShape:()=>xd,segOpComputeOptimalWindowSize:()=>_d});var g={};n.r(g),n.d(g,{ERF_A1:()=>sd,ERF_A2:()=>id,ERF_A3:()=>od,ERF_A4:()=>ld,ERF_A5:()=>ud,ERF_P:()=>ad,PARALLELIZE_THRESHOLD:()=>Kf,SELU_SCALE:()=>rd,SELU_SCALEALPHA:()=>nd,applyActivation:()=>qh,assertAndGetBroadcastShape:()=>Uo,assertAxesAreInnerMostDims:()=>$u,assertParamsConsistent:()=>Gf,assignToTypedArray:()=>yd,axesAreInnerMostDims:()=>Fu,calculateShapes:()=>yi,castTensor:()=>Ed,combineLocations:()=>Ou,complexWithEvenIndex:()=>pd,complexWithOddIndex:()=>md,computeConv2DInfo:()=>ul,computeConv3DInfo:()=>cl,computeDefaultPad:()=>hl,computeDilation2DInfo:()=>il,computeOptimalWindowSize:()=>Xf,computeOutAndReduceShapes:()=>Bu,computeOutShape:()=>qf,computePool2DInfo:()=>ol,computePool3DInfo:()=>ll,convertConv2DDataFormat:()=>bl,eitherStridesOrDilationsAreOne:()=>yl,expandShapeToKeepDim:()=>Mu,exponent:()=>vd,exponents:()=>bd,fromStringArrayToUint8:()=>Nd,fromUint8ToStringArray:()=>Sd,getAxesPermutation:()=>Pu,getBroadcastDims:()=>zo,getComplexWithIndex:()=>gd,getFusedBiasGradient:()=>Gh,getFusedDyActivation:()=>Hh,getImageCenter:()=>Yf,getInnerMostAxes:()=>zu,getPermuted:()=>Zf,getReductionAxes:()=>Wo,getReshaped:()=>Jf,getReshapedPermuted:()=>Qf,getSliceBeginCoords:()=>ed,getSliceSize:()=>td,getUndoAxesPermutation:()=>Lu,log:()=>hd,mergeRealAndImagArrays:()=>fd,prepareAndValidate:()=>pi,prepareSplitSize:()=>wd,reshapeTensor:()=>Cd,segment_util:()=>m,shouldFuse:()=>Kh,slice_util:()=>h,splitRealAndImagArrays:()=>dd,tupleValuesAreOne:()=>gl,upcastType:()=>ka,validateInput:()=>gi,validateUpdateShape:()=>mi,warn:()=>cd});var y={};n.r(y),n.d(y,{nonMaxSuppressionV3Impl:()=>ff,nonMaxSuppressionV4Impl:()=>df,nonMaxSuppressionV5Impl:()=>pf,whereImpl:()=>gh});var b={};n.r(b),n.d(b,{maxNorm:()=>_m,minMaxNorm:()=>Em,nonNeg:()=>km,unitNorm:()=>xm});var v={};n.r(v),n.d(v,{constant:()=>Tg,glorotNormal:()=>Pg,glorotUniform:()=>$g,heNormal:()=>Lg,heUniform:()=>zg,identity:()=>Bg,leCunNormal:()=>Wg,leCunUniform:()=>Ug,ones:()=>Ag,orthogonal:()=>Vg,randomNormal:()=>Fg,randomUniform:()=>Rg,truncatedNormal:()=>Og,varianceScaling:()=>Mg,zeros:()=>Dg});var w={};n.r(w),n.d(w,{Layer:()=>oy,RNN:()=>Nv,RNNCell:()=>Iv,activation:()=>qw,add:()=>n_,alphaDropout:()=>G_,average:()=>r_,averagePooling1d:()=>f_,averagePooling2d:()=>m_,averagePooling3d:()=>b_,avgPool1d:()=>d_,avgPool2d:()=>g_,avgPool3d:()=>v_,avgPooling1d:()=>p_,avgPooling2d:()=>y_,avgPooling3d:()=>w_,batchNormalization:()=>u_,bidirectional:()=>P_,concatenate:()=>a_,conv1d:()=>Lw,conv2d:()=>zw,conv2dTranspose:()=>Ww,conv3d:()=>Uw,convLstm2d:()=>O_,convLstm2dCell:()=>B_,cropping2D:()=>jw,dense:()=>Kw,depthwiseConv2d:()=>Gw,dot:()=>l_,dropout:()=>Xw,elu:()=>Fw,embedding:()=>t_,flatten:()=>Jw,gaussianDropout:()=>H_,gaussianNoise:()=>j_,globalAveragePooling1d:()=>__,globalAveragePooling2d:()=>x_,globalMaxPool1d:()=>z_,globalMaxPool2d:()=>W_,globalMaxPooling1d:()=>k_,globalMaxPooling2d:()=>E_,gru:()=>I_,gruCell:()=>D_,input:()=>Ab,inputLayer:()=>Rw,layerNormalization:()=>c_,leakyReLU:()=>Bw,lstm:()=>A_,lstmCell:()=>T_,masking:()=>q_,maxPool1d:()=>U_,maxPool2d:()=>V_,maxPooling1d:()=>C_,maxPooling2d:()=>S_,maxPooling3d:()=>N_,maximum:()=>s_,minimum:()=>i_,multiply:()=>o_,permute:()=>e_,prelu:()=>Mw,reLU:()=>Ow,repeatVector:()=>Zw,reshape:()=>Qw,rnn:()=>M_,separableConv2d:()=>Vw,simpleRNN:()=>R_,simpleRNNCell:()=>F_,softmax:()=>$w,spatialDropout1d:()=>Yw,stackedRNNCells:()=>$_,thresholdedReLU:()=>Pw,timeDistributed:()=>L_,upSampling2d:()=>Hw,zeroPadding2d:()=>h_});var _={};n.r(_),n.d(_,{MAPE:()=>ax,MSE:()=>ox,binaryAccuracy:()=>K_,binaryCrossentropy:()=>X_,categoricalAccuracy:()=>J_,categoricalCrossentropy:()=>Z_,cosineProximity:()=>tx,mape:()=>sx,meanAbsoluteError:()=>nx,meanAbsolutePercentageError:()=>rx,meanSquaredError:()=>ix,mse:()=>lx,precision:()=>Q_,recall:()=>ex,sparseCategoricalAccuracy:()=>Y_});var x={};n.r(x),n.d(x,{modelFromJSON:()=>Cb});var k={};n.r(k),n.d(k,{l1:()=>cx,l1l2:()=>ux,l2:()=>hx});var E={};n.r(E),n.d(E,{json:()=>Ax});var C={};n.r(C),n.d(C,{json:()=>Tx});var S={};n.r(S),n.d(S,{json:()=>Rx});var N={};n.r(N),n.d(N,{json:()=>Fx});var I={};n.r(I),n.d(I,{json:()=>Ox});var D={};n.r(D),n.d(D,{json:()=>Bx});var A={};n.r(A),n.d(A,{json:()=>Mx});var T={};n.r(T),n.d(T,{json:()=>$x});var R={};n.r(R),n.d(R,{json:()=>Px});var F={};n.r(F),n.d(F,{json:()=>Lx});var O={};n.r(O),n.d(O,{json:()=>zx});var B={};n.r(B),n.d(B,{json:()=>Wx});var M={};n.r(M),n.d(M,{json:()=>Ux});var $={};n.r($),n.d($,{json:()=>Vx});var P={};n.r(P),n.d(P,{json:()=>jx});var L={};n.r(L),n.d(L,{json:()=>Hx});var z={};n.r(z),n.d(z,{json:()=>Gx});var W={};n.r(W),n.d(W,{CSVDataset:()=>gE,Dataset:()=>aE,FileDataSource:()=>IE,TextLineDataset:()=>uE,URLDataSource:()=>DE,array:()=>iE,csv:()=>AE,func:()=>TE,generator:()=>RE,microphone:()=>OE,version_data:()=>BE,webcam:()=>FE,zip:()=>oE});var U={};n.r(U),n.d(U,{addImpl:()=>hC,bincountImpl:()=>rS,bincountReduceImpl:()=>aS,ceilImpl:()=>oS,concatImpl:()=>dS,expImpl:()=>QS,expm1Impl:()=>aN,floorImpl:()=>CN,gatherV2Impl:()=>ON,greaterImpl:()=>MN,lessImpl:()=>XN,linSpaceImpl:()=>tI,logImpl:()=>rI,maxImpl:()=>bI,maximumImpl:()=>_I,minimumImpl:()=>FI,multiplyImpl:()=>oN,negImpl:()=>VI,notEqualImpl:()=>JI,prodImpl:()=>cD,rangeImpl:()=>fD,rsqrtImpl:()=>ED,simpleAbsImpl:()=>wC,sliceImpl:()=>QC,squaredDifferenceImpl:()=>JD,stridedSliceImpl:()=>nA,subImpl:()=>pN,tileImpl:()=>oA,topKImpl:()=>lA,transposeImpl:()=>NC,uniqueImpl:()=>uA});class V{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class j{decComplexRef(e){}time(e){return H("time")}read(e){return H("read")}readSync(e){return H("readSync")}numDataIds(){return H("numDataIds")}disposeData(e){return H("disposeData")}write(e,t,n){return H("write")}move(e,t,n,r){return H("move")}memory(){return H("memory")}floatPrecision(){return H("floatPrecision")}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}batchMatMul(e,t,n,r){return H("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:n,transposeB:r,bias:a,activation:s,preluActivationWeights:i}){return H("fusedBatchMatMul")}slice(e,t,n){return H("slice")}stridedSlice(e,t,n,r){return H("stridedSlice")}unstack(e,t){return H("unstack")}reverse(e,t){return H("reverse")}concat(e,t){return H("concat")}neg(e){return H("neg")}add(e,t){return H("add")}addN(e){return H("addN")}subtract(e,t){return H("subtract")}multiply(e,t){return H("multiply")}realDivide(e,t){return H("realDivide")}floorDiv(e,t){return H("floorDiv")}sum(e,t){return H("sum")}prod(e,t){return H("prod")}unsortedSegmentSum(e,t,n){return H("unsortedSegmentSum")}argMin(e,t){return H("argMin")}argMax(e,t){return H("argMax")}equal(e,t){return H("equal")}notEqual(e,t){return H("notEqual")}less(e,t){return H("less")}lessEqual(e,t){return H("lessEqual")}greater(e,t){return H("greater")}greaterEqual(e,t){return H("greaterEqual")}logicalNot(e){return H("logicalNot")}logicalAnd(e,t){return H("logicalAnd")}logicalOr(e,t){return H("logicalOr")}where(e){return H("where")}select(e,t,n){return H("select")}topk(e,t,n){return H("topk")}min(e,t){return H("min")}minimum(e,t){return H("minimum")}mod(e,t){return H("mod")}max(e,t){return H("max")}maximum(e,t){return H("maximum")}all(e,t){return H("all")}any(e,t){return H("any")}squaredDifference(e,t){return H("squaredDifference")}ceil(e){return H("ceil")}floor(e){return H("floor")}round(e){return H("round")}sign(e){return H("sign")}isNaN(e){return H("isNaN")}isInf(e){return H("isInf")}isFinite(e){return H("isFinite")}pow(e,t){return H("pow")}exp(e){return H("exp")}expm1(e){return H("expm1")}softmax(e,t){return H("softmax")}log(e){return H("log")}log1p(e){return H("log1p")}sqrt(e){return H("sqrt")}rsqrt(e){return H("rsqrt")}square(e){return H("square")}reciprocal(e){return H("reciprocal")}relu(e){return H("relu")}relu6(e){return H("relu6")}prelu(e,t){return H("prelu")}elu(e){return H("elu")}eluDer(e,t){return H("eluDer")}selu(e){return H("selu")}int(e){return H("int")}clip(e,t,n){return H("clip")}abs(e){return H("abs")}complexAbs(e){return H("complexAbs")}sigmoid(e){return H("sigmoid")}softplus(e){return H("softplus")}sin(e){return H("sin")}cos(e){return H("cos")}tan(e){return H("tan")}asin(e){return H("asin")}acos(e){return H("acos")}atan(e){return H("atan")}atan2(e,t){return H("atan2")}sinh(e){return H("sinh")}cosh(e){return H("cosh")}tanh(e){return H("tanh")}asinh(e){return H("asinh")}acosh(e){return H("acosh")}atanh(e){return H("atanh")}erf(e){return H("erf")}step(e,t){return H("step")}fusedConv2d({input:e,filter:t,convInfo:n,bias:r,activation:a,preluActivationWeights:s}){return H("fusedConv2d")}conv2d(e,t,n){return H("conv2d")}conv2dDerInput(e,t,n){return H("conv2dDerInput")}conv2dDerFilter(e,t,n){return H("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:n,bias:r,activation:a,preluActivationWeights:s}){return H("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,n){return H("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,n){return H("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,n){return H("depthwiseConv2DDerFilter")}conv3d(e,t,n){return H("conv3d")}conv3dDerInput(e,t,n){return H("conv3dDerInput")}conv3dDerFilter(e,t,n){return H("conv3dDerFilter")}maxPool(e,t){return H("maxPool")}maxPoolBackprop(e,t,n,r){return H("maxPoolBackprop")}avgPool(e,t){return H("avgPool")}avgPoolBackprop(e,t,n){return H("avgPoolBackprop")}avgPool3d(e,t){return H("avgPool3d")}avgPool3dBackprop(e,t,n){return H("avgPool3dBackprop")}maxPool3d(e,t){return H("maxPool3d")}maxPool3dBackprop(e,t,n,r){return H("maxPool3dBackprop")}reshape(e,t){return H("reshape")}cast(e,t){return H("cast")}tile(e,t){return H("tile")}pad(e,t,n){return H("pad")}transpose(e,t){return H("transpose")}gather(e,t,n,r=0){return H("gather")}gatherND(e,t){return H("gatherND")}scatterND(e,t,n){return H("scatterND")}batchToSpaceND(e,t,n){return H("batchToSpaceND")}spaceToBatchND(e,t,n){return H("spaceToBatchND")}resizeBilinear(e,t,n,r,a){return H("resizeBilinear")}resizeBilinearBackprop(e,t,n){return H("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,n,r,a){return H("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,n){return H("resizeNearestNeighborBackprop")}batchNorm(e,t,n,r,a,s){return H("batchNorm")}localResponseNormalization4D(e,t,n,r,a){return H("localResponseNormalization4D")}LRNGrad(e,t,n,r,a,s,i){return H("LRNGrad")}multinomial(e,t,n,r){return H("multinomial")}oneHot(e,t,n,r){return H("oneHot")}cumsum(e,t,n,r){return H("cumsum")}nonMaxSuppression(e,t,n,r,a){return H("nonMaxSuppression")}fft(e){return H("fft")}ifft(e){return H("ifft")}complex(e,t){return H("complex")}real(e){return H("real")}imag(e){return H("imag")}cropAndResize(e,t,n,r,a,s){return H("cropAndResize")}depthToSpace(e,t,n){return H("depthToSpace")}split(e,t,n){return H("split")}sparseToDense(e,t,n,r){return H("sparseToDense")}diag(e){return H("diag")}fill(e,t,n){return H("fill")}onesLike(e){return H("onesLike")}zerosLike(e){return H("zerosLike")}linspace(e,t,n){return H("linspace")}dispose(){return H("dispose")}}function H(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function G(e){let t=e.length,n=0,r=0;for(;t>0;)r=Math.random()*t|0,t--,n=e[t],e[t]=e[r],e[r]=n}function q(e,t,n){return Math.max(e,Math.min(t,n))}function K(e){return e%2==0?e:e+1}function X(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`))}function ee(e){Z(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function te(e,t=[],n=!1){if(null==t&&(t=[]),Array.isArray(e)||ve(e)&&!n)for(let r=0;r0),n){return new Promise(((r,a)=>{let s=0;const i=()=>{if(e())return void r();s++;const o=t(s);null!=n&&s>=n?a():setTimeout(i,o)};i()}))}function he(e,t){let n=1,r=-1;for(let t=0;t=0)n*=e[t];else if(-1===e[t]){if(-1!==r)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${t}`);r=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===r){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===n)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);const a=e.slice();return a[r]=t/n,a}function fe(e,t){const n=t.length;return Z((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-n&&e`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`)),Z(e.every((e=>se(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?n+e:e))}function de(e,t){const n=[],r=[],a=null!=t&&Array.isArray(t)&&0===t.length,s=null==t||a?null:fe(t,e).sort();let i=0;for(let t=0;tt)&&1===e[t]&&(n.push(e[t]),r.push(t)),s[i]<=t&&i++}1!==e[t]&&(n.push(e[t]),r.push(t))}return{newShape:n,keptDims:r}}function pe(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error(`Unknown data type ${e}`);n=new Uint8Array(t)}return n}function me(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error(`Unknown data type ${e}`);n=new Array(t)}return n}function ge(e,t){for(let n=0;nt+=e.length)),t}function xe(e){return"string"==typeof e||e instanceof String}function ke(e){return"boolean"==typeof e}function Ee(e){return"number"==typeof e}function Ce(e){return Array.isArray(e)?Ce(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Ee(e)?"float32":xe(e)?"string":ke(e)?"bool":"float32"}function Se(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Ne(e,t){for(let n=t;n=0;--r)n[r]=n[r+1]*e[r+1];return n}function De(e,t,n){const r=new Array;if(1===t.length){const a=t[0];for(let t=0;te*t));for(let t=0;te*t));if(0===n)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return De(0,e,t)}function Te(e,t){const n=Re(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return Ae(e,new Float32Array(n));if("int32"===t)return Ae(e,new Int32Array(n));if("bool"===t)return Ae(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Oe(e){e.forEach((t=>{Z(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function Be(e,t,n){if(0===t)return 0;if(1===t)return e[0];let r=e[e.length-1];for(let t=0;t(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}(this.global.location.search);"tfjsflags"in e&&e.tfjsflags.split(",").forEach((e=>{const[t,n]=e.split(":");this.urlFlags[t]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}(t,n)}))}}function Le(){return We}let ze,We=null;function Ue(){if(null==ze){let e;if("undefined"!=typeof window)e=window;else if(void 0!==n.g)e=n.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}ze=e}return ze}function Ve(e,t){const n=function(){const e=Ue();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}const je="Abs",He="Acos",Ge="Acosh",qe="Add",Ke="AddN",Xe="All",Ye="Any",Je="ArgMax",Ze="ArgMin",Qe="Asin",et="Asinh",tt="Atan",nt="Atanh",rt="Atan2",at="AvgPool",st="AvgPoolGrad",it="AvgPool3D",ot="AvgPool3DGrad",lt="BatchMatMul",ut="BatchToSpaceND",ct="Bincount",ht="BroadcastTo",ft="Cast",dt="Ceil",pt="ClipByValue",mt="Complex",gt="ComplexAbs",yt="Concat",bt="Conv2D",vt="Conv2DBackpropFilter",wt="Conv2DBackpropInput",_t="Conv3D",xt="Conv3DBackpropFilterV2",kt="Conv3DBackpropInputV2",Et="Cos",Ct="Cosh",St="Cumsum",Nt="CropAndResize",It="DenseBincount",Dt="DepthToSpace",At="DepthwiseConv2dNative",Tt="DepthwiseConv2dNativeBackpropFilter",Rt="DepthwiseConv2dNativeBackpropInput",Ft="Diag",Ot="Dilation2D",Bt="Dilation2DBackpropInput",Mt="Dilation2DBackpropFilter",$t="RealDiv",Pt="Elu",Lt="EluGrad",zt="Erf",Wt="Equal",Ut="Exp",Vt="ExpandDims",jt="Expm1",Ht="FFT",Gt="Fill",qt="FlipLeftRight",Kt="Floor",Xt="FloorDiv",Yt="FusedBatchNorm",Jt="GatherV2",Zt="GatherNd",Qt="Greater",en="GreaterEqual",tn="Identity",nn="IFFT",rn="Imag",an="IsFinite",sn="IsInf",on="IsNan",ln="LeakyRelu",un="Less",cn="LessEqual",hn="LinSpace",fn="Log",dn="Log1p",pn="LogicalAnd",mn="LogicalNot",gn="LogicalOr",yn="LogSoftmax",bn="LRN",vn="LRNGrad",wn="Max",_n="Maximum",xn="MaxPool",kn="MaxPoolGrad",En="MaxPool3D",Cn="MaxPool3DGrad",Sn="MaxPoolWithArgmax",Nn="Mean",In="Min",Dn="Minimum",An="MirrorPad",Tn="Mod",Rn="Multinomial",Fn="Multiply",On="Neg",Bn="NotEqual",Mn="NonMaxSuppressionV3",$n="NonMaxSuppressionV4",Pn="NonMaxSuppressionV5",Ln="OnesLike",zn="OneHot",Wn="Pack",Un="PadV2",Vn="Pool",jn="Pow",Hn="Prelu",Gn="Prod",qn="Range",Kn="Real",Xn="Reciprocal",Yn="Relu",Jn="Reshape",Zn="ResizeNearestNeighbor",Qn="ResizeNearestNeighborGrad",er="ResizeBilinear",tr="ResizeBilinearGrad",nr="Relu6",rr="Reverse",ar="Round",sr="Rsqrt",ir="ScatterNd",or="Select",lr="Selu",ur="Slice",cr="Sin",hr="Sinh",fr="Sign",dr="Sigmoid",pr="Softplus",mr="Sqrt",gr="Sum",yr="SpaceToBatchND",br="SplitV",vr="Softmax",wr="SquaredDifference",_r="Square",xr="Sub",kr="SparseToDense",Er="StridedSlice",Cr="Tan",Sr="Tanh",Nr="Tile",Ir="TopK",Dr="Transpose",Ar="Unique",Tr="Unpack",Rr="UnsortedSegmentSum",Fr="ZerosLike",Or="Step",Br="FromPixels",Mr="RotateWithOffset",$r="_FusedMatMul",Pr="FusedConv2D",Lr="FusedDepthwiseConv2D",zr=Ve("kernelRegistry",(()=>new Map)),Wr=Ve("gradRegistry",(()=>new Map));function Ur(e,t){const n=Yr(e,t);return zr.get(n)}function Vr(e){return Wr.get(e)}function jr(e){const t=zr.entries(),n=[];for(;;){const{done:r,value:a}=t.next();if(r)break;const[s,i]=a,[o]=s.split("_");o===e&&n.push(i)}return n}function Hr(e){const{kernelName:t,backendName:n}=e,r=Yr(t,n);zr.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),zr.set(r,e)}function Gr(e){const{kernelName:t}=e;Wr.has(t)&&Le().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Wr.set(t,e)}function qr(e,t){const n=Yr(e,t);if(!zr.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);zr.delete(n)}function Kr(e){if(!Wr.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Wr.delete(e)}function Xr(e,t){jr(e).forEach((e=>{Hr(Object.assign({},e,{backendName:t}))}))}function Yr(e,t){return`${t}_${e}`}class Jr{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new Qr)}profileKernel(e,t,n){let r;const a=this.backendTimer.time((()=>{r=n()}));if(Le().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{Zr(t,n.dtype,e)}))}return{kernelName:e,outputs:r,inputs:t,timeMs:a.then((e=>e.kernelMs)),extraInfo:a.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:r,inputs:a,extraInfo:s}=e;n.forEach((e=>{Promise.all([e.data(),r,s]).then((n=>{this.logger.logKernelProfile(t,e,n[0],n[1],a,n[2])}))}))}}function Zr(e,t,n){if("float32"!==t)return!1;for(let t=0;t0?r:""} `}}console.log(`%c${o}\t%c${i}\t%c${l}D ${c}\t%c${u}\t%c${h}\t%c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function ea(e,t,n,r){const a=Ie(t),s=function(e,t,n,r){const a=ne(t),s=r[r.length-1],i=new Array(s).fill(0),o=t.length,l="complex64"===n?aa(e):e;if(o>1)for(let e=0;e" "+e)).join("\n")),l.join("\n")}function ta(e,t,n){let r;return r=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:xe(e)?`'${e}'`:"bool"===n?na(e):parseFloat(e.toFixed(7)).toString(),ue(r,t)}function na(e){return 0===e?"false":"true"}function ra(e,t,n,r,a,s=!0){const i="complex64"===n?2:1,o=t[0],l=t.length;if(0===l)return"complex64"===n?[ta(aa(e)[0],0,n)]:"bool"===n?[na(e[0])]:[e[0].toString()];if(1===l){if(o>20){const t=3*i;let r=Array.from(e.slice(0,t)),s=Array.from(e.slice((o-3)*i,o*i));return"complex64"===n&&(r=aa(r),s=aa(s)),["["+r.map(((e,t)=>ta(e,a[t],n))).join(", ")+", ..., "+s.map(((e,t)=>ta(e,a[o-3+t],n))).join(", ")+"]"]}return["["+("complex64"===n?aa(e):Array.from(e)).map(((e,t)=>ta(e,a[t],n))).join(", ")+"]"]}const u=t.slice(1),c=r.slice(1),h=r[0]*i,f=[];if(o>20){for(let t=0;t<3;t++){const r=t*h,s=r+h;f.push(...ra(e.slice(r,s),u,n,c,a,!1))}f.push("...");for(let t=o-3;t`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||me(t,this.size),this.strides=Ie(e)}set(e,...t){0===t.length&&(t=[0]),Z(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const n=this.locToIndex(t);this.values[n]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let n=e[e.length-1];for(let t=0;tca(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=fa().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>ca(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await fa().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(fa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return da.print(this,e)}clone(){return this.throwIfDisposed(),da.clone(this)}toString(e=!1){return ea(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),da.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),fa().makeVariable(this,e,t,n)}}Object.defineProperty(ma,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed});class ga extends ma{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!ae(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);fa().disposeTensor(this),this.dataId=e.dataId,fa().incRef(this,null)}dispose(){fa().disposeVariable(this),this.isDisposedInternal=!0}}var ya,ba,va,wa,_a;Object.defineProperty(ga,Symbol.hasInstance,{value:e=>e instanceof ma&&null!=e.assign&&e.assign instanceof Function}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(ya||(ya={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(ba||(ba={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(va||(va={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(wa||(wa={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(_a||(_a={}));const xa={float32:wa,int32:ba,bool:va,complex64:_a};function ka(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return xa[e][t]}function Ea(e){return ka(e,"int32")}function Ca(e,t){if(e.dtype===t.dtype)return[e,t];const n=ka(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Sa(e,t){Z(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function Na(e,t){return t.some((t=>t.id===e.id))}function Ia(e){const t=[];return Da(e,t,new Set),t}function Da(e,t,n){if(null==e)return;if(e instanceof ma)return void t.push(e);if(r=e,!Array.isArray(r)&&"object"!=typeof r)return;var r;const a=e;for(const e in a){const r=a[e];n.has(r)||(n.add(r),Da(r,t,n))}}class Aa{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Ta{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Aa}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){jr(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(!n||n instanceof j||"function"!=typeof n.then)return this.registry[e]=n,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,r=n.then((n=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(r)),(()=>this.endScope(n)),(()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n)))}scopedRun(e,t,n){e();try{const e=n();return t(),e}catch(e){throw t(),e}}nextTensorId(){return Ta.nextTensorId++}nextVariableId(){return Ta.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t="float32",n={x:e},r={dtype:t};return Fa.runKernelFunc((n=>n.cast(e,t)),n,null,ft,r)}})),[],{}),t}runKernel(e,t,n,r,a){return this.runKernelFunc(null,t,null,e,n,r,a)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const r=this.backend.numDataIds();let a=0;n.forEach((e=>{a+="complex64"===e.dtype?3:1}));const s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-t-a-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e,t,n,r,a,s,i){let o,l=[];const u=this.isTapeOn();null==r&&(r=null!=this.state.activeScope?this.state.activeScope.name:"");const c=this.state.numBytes,h=this.state.numTensors;let f;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const d=Ur(r,this.backendName);let p,m;if(null!=d)f=()=>{const e=this.backend.numDataIds();p=d.kernelFunc({inputs:t,attrs:a,backend:this.backend});const n=Array.isArray(p)?p:[p];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,e,n);const o=n.map((e=>{if(null!=e.rank)return e;const{dataId:t,shape:n,dtype:r}=e;return this.makeTensorFromDataId(t,n,r)}));if(u){let e=this.getTensorsForGradient(r,t,o);if(null==e){null==i&&(i=[]);const t=o.filter(((e,t)=>i[t]));e=(s||[]).slice().concat(t)}l=this.saveTensorsForBackwardMode(e)}return o};else{if(null==e)throw new Error(`Error running ${r}: Neither modular kernel nor forward func passed`);const t=e=>{u&&(l=e.map((e=>this.keep(this.clone(e)))))};f=()=>{const n=this.backend.numDataIds();p=this.tidy((()=>e(this.backend,t)));const a=Array.isArray(p)?p:[p];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(r,n,a),a}}return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(m=this.profiler.profileKernel(r,t,(()=>f())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(m),o=m.outputs):o=f()})),u&&this.addTapeNode(r,t,o,n,l,a),this.state.profiling&&this.state.activeProfile.kernels.push({name:r,bytesAdded:this.state.numBytes-c,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-h,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map((e=>null!=t[e]?t[e].shape:null)),outputShapes:o.map((e=>e.shape)),kernelTimeMs:m.timeMs,extraInfo:m.extraInfo}),Array.isArray(p)?o:o[0]}saveTensorsForBackwardMode(e){return e.map((e=>this.keep(this.clone(e))))}getTensorsForGradient(e,t,n){const r=Vr(e);if(null!=r){const e=r.inputsToSave||[],a=r.outputsToSave||[];let s;r.saveAllInputs?(Z(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),s=Object.keys(t).map((e=>t[e]))):s=e.map((e=>t[e]));const i=n.filter(((e,t)=>a[t]));return s.concat(i)}return null}makeTensor(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;let a=e;"string"===n&&xe(e[0])&&(a=e.map((e=>ua(e))));const s=r.write(a,t,n),i=new ma(t,n,s,this.nextTensorId());if(this.incRef(i,r),"string"===n){const e=this.state.tensorInfo.get(s),t=_e(a);this.state.numBytes+=t-e.bytes,e.bytes=t}return i}makeTensorFromDataId(e,t,n,r){const a=new ma(t,n=n||"float32",e,this.nextTensorId());return this.incRef(a,r),a}makeVariable(e,t=!0,n,r){n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.cast(r));const a=new ga(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[a.name])throw new Error(`Variable with name ${a.name} was already registered`);return this.state.registeredVariables[a.name]=a,this.incRef(a,this.backend),a}incRef(e,t){const n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++,0===n){this.state.numDataBuffers++;let n=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(n=e.size*we(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof ga||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,"string"===e.dtype&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?("complex64"!==e.dtype&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):(t.backend.decComplexRef(e.dataId),this.state.tensorInfo.get(e.dataId).refCount--)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,n,r,a,s){const i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:a},o=Vr(e);null!=o&&(r=o.gradFunc),null!=r&&(i.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=n[t],r=Re(e.size,e.dtype);return this.makeTensor(r,e.shape,e.dtype)}return e})),r(e.length>1?e:e[0],a,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Ia(e),n=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==r.id||this.track(e)}))}gradients(e,t,n,r=!1){if(Z(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=n&&"float32"!==n.dtype)throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const a=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));Z(a instanceof ma,(()=>"The result y returned by f() must be a tensor."));const s=function(e,t,n){const r={},a={};for(let e=0;er[e.id]=!0)),o=!0,a[s.id]=!0;break}if(o)break}}const s={};s[n.id]=!0;const i={};for(let t=e.length-1;t>=0;t--){const n=e[t],r=n.inputs;for(let e=0;e0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(()=>{const e={};e[a.id]=null==n?function(e){const t=Te(ne(e),"float32");return Fa.makeTensor(t,e,"float32")}(a.shape):n,function(e,t,n,r){for(let a=t.length-1;a>=0;a--){const s=t[a],i=[];if(s.outputs.forEach((t=>{const n=e[t.id];null!=n?i.push(n):i.push(null)})),null==s.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);const o=s.gradient(i);for(const t in s.inputs){if(!(t in o))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(o)}.`);const a=n((()=>o[t]()));if("float32"!==a.dtype)throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${a.dtype}'`);const i=s.inputs[t];if(!ae(a.shape,i.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${t}' has shape '${a.shape}', which does not match the shape of the input '${i.shape}'`);if(null==e[i.id])e[i.id]=a;else{const t=e[i.id];e[i.id]=r(t,a),t.dispose()}}}}(e,s,(e=>this.tidy(e)),Oa);const r=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:a,grads:r}}))}customGrad(e){return Z(Se(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let n;Z(t.every((e=>e instanceof ma)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const r={};return t.forEach(((e,t)=>{r[t]=e})),this.runKernelFunc(((r,a)=>(n=e(...t,a),Z(n.value instanceof ma,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),Z(Se(n.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),n.value)),r,((e,r)=>{const a=n.gradFunc(e,r),s=Array.isArray(a)?a:[a];Z(s.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),Z(s.every((e=>e instanceof ma)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const i={};return s.forEach(((e,t)=>{i[t]=()=>e})),i}))}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){const t=oa(),n=await this.backend.time(e);return n.wallMs=oa()-t,n}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Aa;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function Ra(){const e=Ue();if(null==e._tfengine){const t=new Pe(e);e._tfengine=new Ta(t)}var t;return t=e._tfengine.ENV,We=t,fa=()=>e._tfengine,e._tfengine}Ta.nextTensorId=0,Ta.nextVariableId=0;const Fa=Ra();function Oa(e,t){const n={a:e,b:t};return Fa.runKernel(qe,n)}function Ba(){if("undefined"!=typeof navigator&&null!=navigator){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function Ma(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const $a=Le();function Pa(e,t){let n=e;if(ve(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];const r=[];for(;Array.isArray(n)||ve(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&Le().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&La(e,r,[]),r}function La(e,t,n){if(n=n||[],!Array.isArray(e)&&!ve(e))return void Z(0===t.length,(()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));Z(t.length>0,(()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),Z(e.length===t[0],(()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const r=t.slice(1);for(let t=0;t=0&&(a=r),za(r,a,t,n),null==e||!ve(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const r=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${r}'`)}const s=Pa(e,a);ve(e)||Array.isArray(e)||(e=[e]);const i="string"!==a?ia(e,a):te(e,[],!0);return Fa.makeTensor(i,s,a)}function Ua(e,t,n,r="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,a)=>Wa(e,`${t}[${a}]`,n,r)))}$a.registerFlag("DEBUG",(()=>!1),(e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")})),$a.registerFlag("IS_BROWSER",(()=>Ma())),$a.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),$a.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),$a.registerFlag("PROD",(()=>!1)),$a.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>$a.getBool("DEBUG"))),$a.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),$a.registerFlag("IS_TEST",(()=>!1)),$a.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0));const Va="__op";function ja(e){const t=Object.keys(e);if(1!==t.length)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0];const r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+=Va;const a=(...e)=>{Fa.startScope(n);try{const t=r(...e);return $e(t)&&console.error("Cannot return a Promise inside of tidy."),Fa.endScope(t),t}catch(e){throw Fa.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}const Ha=ja({complex_:function(e,t){const n=Wa(e,"real","complex"),r=Wa(t,"imag","complex");Q(n.shape,r.shape,`real and imag shapes, ${n.shape} and ${r.shape}, must match in call to tf.complex().`);const a={real:n,imag:r};return Fa.runKernel(mt,a)}});function Ga(e,t,n,r){if(null==r&&(r=Ce(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!ve(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){Oe(t);const e=ne(t),r=ne(n);Z(e===r,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${r}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `))}}return ve(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?ia(e,r):te(e,[],!0),Fa.makeTensor(e,t,r)}function qa(e,t,n){return Ga(e,t,Pa(e,n),n)}const Ka={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function Xa(e,t){const n=[],r=[],a=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let s=0;s{const t=await o.bytes(),n=t.reduce(((e,t)=>e+t.length),0)+4*t.length,r=new Uint8Array(n);let a=0;for(let e=0;e{if(t+=e.byteLength,n.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)}));const r=new Uint8Array(t);let a=0;return n.forEach((e=>{r.set(new Uint8Array(e.buffer),a),a+=e.byteLength})),r.buffer}const Za="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function Qa(e){return Za?Buffer.byteLength(e):new Blob([e]).size}function es(e){if(1===e.length)return e[0];let t=0;e.forEach((e=>{t+=e.byteLength}));const n=new Uint8Array(t);let r=0;return e.forEach((e=>{n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function ts(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function ns(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:Qa(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:Qa(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function rs(){const e=function(){const e=e=>{let t=e<<13,n=0;for(;0==(8388608&t);)n-=8388608,t<<=1;return t&=-8388609,n+=947912704,t|n},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),n=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return r=>{const a=new ArrayBuffer(4*r.length),s=new Uint32Array(a);for(let a=0;a>10]+(1023&i)]+t[i>>10];s[a]=o}return new Float32Array(a)}}class as{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==as.instance&&(as.instance=new as),as.instance}static registerSaveRouter(e){as.getInstance().saveRouters.push(e)}static registerLoadRouter(e){as.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return as.getHandlers(e,"save")}static getLoadHandlers(e,t){return as.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[];return("load"===t?as.getInstance().loadRouters:as.getInstance().saveRouters).forEach((t=>{const a=t(e,n);null!==a&&r.push(a)})),r}}const ss=e=>as.registerSaveRouter(e),is=e=>as.registerLoadRouter(e),os=e=>as.getSaveHandlers(e),ls=(e,t)=>as.getLoadHandlers(e,t),us="tensorflowjs",cs="models_store",hs="model_info_store";function fs(){if(!Le().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function ds(e){const t=e.result;t.createObjectStore(cs,{keyPath:"modelPath"}),t.createObjectStore(hs,{keyPath:"modelPath"})}class ps{constructor(e){if(this.indexedDB=fs(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,n)=>{const r=this.indexedDB.open(us,1);r.onupgradeneeded=()=>ds(r),r.onsuccess=()=>{const a=r.result;if(null==t){const t=a.transaction(cs,"readonly"),r=t.objectStore(cs).get(this.modelPath);r.onsuccess=()=>{if(null==r.result)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(r.result.modelArtifacts)},r.onerror=e=>(a.close(),n(r.error)),t.oncomplete=()=>a.close()}else{const r=ns(t),s=a.transaction(hs,"readwrite");let i=s.objectStore(hs);const o=i.put({modelPath:this.modelPath,modelArtifactsInfo:r});let l;o.onsuccess=()=>{l=a.transaction(cs,"readwrite");const o=l.objectStore(cs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:r});o.onsuccess=()=>e({modelArtifactsInfo:r}),o.onerror=e=>{i=s.objectStore(hs);const t=i.delete(this.modelPath);t.onsuccess=()=>(a.close(),n(o.error)),t.onerror=e=>(a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}}},r.onerror=e=>n(r.error)}))}}ps.URL_SCHEME="indexeddb://";const ms=e=>{return Le().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ps.URL_SCHEME)?(t=e.slice(ps.URL_SCHEME.length),new ps(t)):null;var t};as.registerSaveRouter(ms),as.registerLoadRouter(ms);class gs{constructor(){this.indexedDB=fs()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(us,1);n.onupgradeneeded=()=>ds(n),n.onsuccess=()=>{const r=n.result,a=r.transaction(hs,"readonly"),s=a.objectStore(hs).getAll();s.onsuccess=()=>{const t={};for(const e of s.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},s.onerror=e=>(r.close(),t(s.error)),a.oncomplete=()=>r.close()},n.onerror=e=>t(n.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(ps.URL_SCHEME)?t.slice(ps.URL_SCHEME.length):t,new Promise(((t,n)=>{const r=this.indexedDB.open(us,1);r.onupgradeneeded=()=>ds(r),r.onsuccess=()=>{const a=r.result,s=a.transaction(hs,"readwrite"),i=s.objectStore(hs),o=i.get(e);let l;o.onsuccess=()=>{if(null==o.result)return a.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const r=i.delete(e),s=()=>{l=a.transaction(cs,"readwrite");const r=l.objectStore(cs).delete(e);r.onsuccess=()=>t(o.result.modelArtifactsInfo),r.onerror=e=>n(o.error)};r.onsuccess=s,r.onerror=e=>(s(),a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}},r.onerror=e=>n(r.error)}))}}const ys="/",bs="tensorflowjs_models",vs="info",ws="model_topology",_s="weight_specs",xs="weight_data",ks="model_metadata";function Es(e){return{info:[bs,e,vs].join(ys),topology:[bs,e,ws].join(ys),weightSpecs:[bs,e,_s].join(ys),weightData:[bs,e,xs].join(ys),modelMetadata:[bs,e,ks].join(ys)}}function Cs(e){const t=e.split(ys);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(ys)}class Ss{constructor(e){if(!Le().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=Es(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),r=ns(e);try{this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(e){if(Za)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,r=t.length;e{return Le().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ss.URL_SCHEME)?(t=e.slice(Ss.URL_SCHEME.length),new Ss(t)):null;var t};as.registerSaveRouter(Ns),as.registerLoadRouter(Ns);class Is{constructor(){Z(Le().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),Z("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=bs+ys,n=ys+vs;for(let r=0;r"scheme must not be undefined or null.")),e.endsWith(Ds)&&(e=e.slice(0,e.indexOf(Ds))),Z(e.length>0,(()=>"scheme must not be an empty string."));const n=As.getInstance();Z(null==n.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),n.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Ts(e){if(-1===e.indexOf(Ds))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${As.getSchemes().join(",")}`);return{scheme:e.split(Ds)[0],path:e.split(Ds)[1]}}async function Rs(e,t,n=!1){Z(e!==t,(()=>`Old path and new path are the same: '${e}'`));const r=as.getLoadHandlers(e);Z(r.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),Z(r.length<2,(()=>`Copying failed because more than one (${r.length}) load handlers for source URL ${e}.`));const a=r[0],s=as.getSaveHandlers(t);Z(s.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),Z(s.length<2,(()=>`Copying failed because more than one (${r.length}) save handlers for destination URL ${t}.`));const i=s[0],o=Ts(e).scheme,l=Ts(e).path,u=o===Ts(e).scheme,c=await a.load();n&&u&&await As.getManager(o).removeModel(l);const h=await i.save(c);return n&&!u&&await As.getManager(o).removeModel(l),h.modelArtifactsInfo}async function Fs(){const e=As.getSchemes(),t={};for(const n of e){const e=await As.getManager(n).listModels();for(const r in e)t[n+Ds+r]=e[r]}return t}async function Os(e){const t=Ts(e);return As.getManager(t.scheme).removeModel(t.path)}async function Bs(e,t){return Rs(e,t,!1)}async function Ms(e,t){return Rs(e,t,!0)}class $s{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}}if(Le().get("IS_BROWSER")){Le().setPlatform("browser",new $s);try{As.registerManager(Ss.URL_SCHEME,new Is)}catch(e){}try{As.registerManager(ps.URL_SCHEME,new gs)}catch(e){}}let Ps;function Ls(e,t="float32",n){return t=t||"float32",Oe(e),new ha(e,t,n)}Le().get("IS_NODE")&&Le().setPlatform("node",new class{constructor(){this.util=n(1758),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=Le().global.fetch?Le().global.fetch(e,t):(null==Ps&&(Ps=n(8352)),Ps(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}});const zs=ja({cast_:function(e,t){const n=Wa(e,"x","cast");if(!ye(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");const r={x:n},a={dtype:t};return Fa.runKernel(ft,r,a)}}),Ws=ja({clone_:function(e){const t={x:Wa(e,"x","clone","string_or_numeric")};return Fa.runKernel(tn,t)}});function Us(e,t=!1){console.log(e.toString(t))}function Vs(e){return new Promise((e=>setTimeout(e))).then(e)}Ra(),da={buffer:Ls,cast:zs,clone:Ws,print:Us};class js{constructor(e){if(!Le().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(js.URL_SCHEME)&&(e=e.slice(js.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelTopologyFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer);const a=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),s=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=a,await Vs((()=>s.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=t,await Vs((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:ns(e)}}}}js.URL_SCHEME="downloads://";class Hs{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise(((n,r)=>{const a=new FileReader;a.onload=a=>{const s=JSON.parse(a.target.result),i=s.modelTopology;if(null==i)return void r(new Error(`modelTopology field is missing from file ${e.name}`));0===t.length&&n({modelTopology:i});const o=s.weightsManifest;if(null==o)return void r(new Error(`weightManifest field is missing from file ${e.name}`));let l;try{l=this.checkManifestAndWeightFiles(o,t)}catch(e){return void r(e)}const u=[],c=[],h=[];o.forEach((e=>{e.paths.forEach((e=>{c.push(e),h.push(null)})),u.push(...e.weights)})),o.forEach((e=>{e.paths.forEach((e=>{const t=new FileReader;t.onload=t=>{const r=t.target.result,a=c.indexOf(e);if(h[a]=r,-1===h.indexOf(null)){const e={modelTopology:i,weightSpecs:u,weightData:es(h),format:s.format,generatedBy:s.generatedBy,convertedBy:s.convertedBy};null!=s.signature&&(e.signature=s.signature),null!=s.userDefinedMetadata&&(e.userDefinedMetadata=s.userDefinedMetadata),null!=s.modelInitializer&&(e.modelInitializer=s.modelInitializer),n(e)}},t.onerror=t=>r(`Failed to weights data from file of path '${e}'.`),t.readAsArrayBuffer(l[e])}))}))},a.onerror=t=>r(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),a.readAsText(e)}))}checkManifestAndWeightFiles(e,t){const n=[],r=t.map((e=>ts(e.name))),a={};for(const s of e)s.paths.forEach((e=>{const s=ts(e);if(-1!==n.indexOf(s))throw new Error(`Duplicate file basename found in weights manifest: '${s}'`);if(n.push(s),-1===r.indexOf(s))throw new Error(`Weight file with basename '${s}' is not provided.`);a[e]=t[r.indexOf(s)]}));if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return a}}function Gs(e){return new Hs(e)}function qs(e,t,n,r){!function(e){Z(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){Z(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),Z(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),Z(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(n=null==n?0:n,r=null==r?1:r);let a=0;return Promise.all(e.map((s=>(s.then((s=>{const i=n+ ++a/e.length*(r-n);return t(i),s})),s))))}async function Ks(e,t){null==t&&(t={});const n=null==t.fetchFunc?Le().platform.fetch:t.fetchFunc,r=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),a=(null==t.onProgress?await Promise.all(r):await qs(r,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(a):await qs(a,t.onProgress,.5,1)}async function Xs(e,t="",n,r){return Ys((e=>Ks(e,{requestInit:r})))(e,t,n)}function Ys(e){return async(t,n="",r)=>{const a=t.map((()=>!1)),s={},i=null!=r?r.map((()=>!1)):[],o=[];if(t.forEach(((e,t)=>{let n=0;e.weights.forEach((e=>{const l="quantization"in e?e.quantization.dtype:e.dtype,u=Ka[l]*ne(e.shape),c=()=>{a[t]=!0,null==s[t]&&(s[t]=[]),s[t].push({manifestEntry:e,groupOffset:n,sizeBytes:u})};null!=r?r.forEach(((t,n)=>{t===e.name&&(c(),i[n]=!0)})):c(),o.push(e.name),n+=u}))})),!i.every((e=>e))){const e=r.filter(((e,t)=>!i[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${o.join(", ")}.`)}const l=a.reduce(((e,t,n)=>(t&&e.push(n),e)),[]),u=[];l.forEach((e=>{t[e].paths.forEach((e=>{const t=n+(n.endsWith("/")?"":"/")+e;u.push(t)}))}));const c=await e(u),h={};let f=0;return l.forEach((e=>{const n=t[e].paths.length;let r=0;for(let e=0;e{const t=Ya(a.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),f+=n})),h}}as.registerSaveRouter((e=>Le().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(js.URL_SCHEME)?function(e="model"){return new js(e)}(e.slice(js.URL_SCHEME.length)):null));class Js{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?(Z("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=Le().platform.fetch,Z(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&Z(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin");const a=await this.fetch(this.path,t);if(a.ok)return{modelArtifactsInfo:ns(e),responses:[a]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${a.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const n=t.modelTopology,r=t.weightsManifest,a=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(null==n&&null==r)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let u,c;if(null!=r){const e=await this.loadWeights(r);[u,c]=e}const h={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:a,convertedBy:s,format:i};null!=o&&(h.signature=o),null!=l&&(h.userDefinedMetadata=l);const f=t.modelInitializer;return f&&(h.modelInitializer=f),h}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=function(e){const t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}(t),a=this.weightPathPrefix||n,s=[];for(const t of e)s.push(...t.weights);const i=[],o=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?o.push(this.weightUrlConverter(e)):i.push(a+e+r);return this.weightUrlConverter&&i.push(...await Promise.all(o)),[s,es(await Ks(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function Zs(e){return null!=e.match(Js.URL_SCHEME_REGEX)}Js.URL_SCHEME_REGEX=/^https?:\/\//;const Qs=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>Zs(e))):Zs(e),n)return ei(e,t)}return null};function ei(e,t){return new Js(e,t)}function ti(e,t){return ei(e,t)}as.registerSaveRouter(Qs),as.registerLoadRouter(Qs);class ni{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class ri{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function ai(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new ni(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ni({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ni({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))}function si(e){return new ri(e)}const ii=ja({matMul_:function(e,t,n=!1,r=!1){let a=Wa(e,"a","matMul"),s=Wa(t,"b","matMul");[a,s]=Ca(a,s);const i={a,b:s},o={transposeA:n,transposeB:r};return Fa.runKernel(lt,i,o)}}),oi=ja({oneHot_:function(e,t,n=1,r=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const a={indices:Wa(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:r};return Fa.runKernel(zn,a,s)}}),li=ja({transpose_:function(e,t){const n=Wa(e,"x","transpose");if(null==t&&(t=n.shape.map(((e,t)=>t)).reverse()),Z(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`)),t.forEach((e=>{Z(e>=0&&e"All entries in 'perm' must be between 0 and "+(n.rank-1)+` but got ${t}`))})),n.rank<=1)return n.clone();const r={x:n},a={perm:t};return Fa.runKernel(Dr,r,a)}}),ui=ja({confusionMatrix_:function(e,t,n){const r=Wa(e,"labels","confusionMatrix"),a=Wa(t,"predictions","confusionMatrix");Z(null==n||n>0&&Number.isInteger(n),(()=>`If provided, numClasses must be a positive integer, but got ${n}`)),Z(1===r.rank,(()=>`Expected the rank of labels to be 1, but got ${r.rank}`)),Z(1===a.rank,(()=>`Expected the rank of predictions to be 1, but got ${a.rank}`)),Z(r.shape[0]===a.shape[0],(()=>`Mismatch in the number of examples: ${r.shape[0]} vs. ${a.shape[0]}. Labels and predictions should have the same number of elements.`)),Z(n>0&&Number.isInteger(n),(()=>`numClasses is required to be a positive integer, but got ${n}`));const s=oi(zs(r,"int32"),n),i=oi(zs(a,"int32"),n),o=li(s),l=ii(o,i);return zs(l,"int32")}});function ci(e,t,n){if(ee(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const r=Pa(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Ga(e,t,r,n)}let hi;async function fi(e,t){let n=Wa(e,"img","toPixels");if(!(e instanceof ma)){const e=n;n=zs(e,"int32"),e.dispose()}if(2!==n.rank&&3!==n.rank)throw new Error(`toPixels only supports rank 2 or 3 tensors, got rank ${n.rank}.`);const[r,a]=n.shape.slice(0,2),s=2===n.rank?1:n.shape[2];if(s>4||2===s)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if("float32"!==n.dtype&&"int32"!==n.dtype)throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);const i=await n.data(),o="float32"===n.dtype?255:1,l=new Uint8ClampedArray(a*r*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${a}.`)}else if("int32"===n.dtype&&(a<0||a>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${a}.`);1===s?(t[0]=a*o,t[1]=a*o,t[2]=a*o):t[r]=a*o}const r=4*e;l[r+0]=Math.round(t[0]),l[r+1]=Math.round(t[1]),l[r+2]=Math.round(t[2]),l[r+3]=Math.round(t[3])}if(null!=t){t.width=a,t.height=r;const e=t.getContext("2d"),n=new ImageData(l,a,r);e.putImageData(n,0,0)}return n!==e&&n.dispose(),l}const di=ja({fromPixels_:function(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,r=!1,a=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)a=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)s=!0;else if(null!=e.getContext)i=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);o=!0}if(a){const t=2;if(a&&e.readyState element.")}if(null!=Ur(Br,Fa.backendName)){const n={pixels:e},r={numChannels:t};return Fa.runKernel(Br,n,r)}const[l,u]=a?[e.videoWidth,e.videoHeight]:[e.width,e.height];let c,h;if(i?c=e.getContext("2d").getImageData(0,0,l,u).data:r||n?c=e.data:(s||a||o)&&(null==hi&&(hi=document.createElement("canvas").getContext("2d")),hi.canvas.width=l,hi.canvas.height=u,hi.drawImage(e,0,0,l,u),c=hi.getImageData(0,0,l,u).data),4===t)h=new Int32Array(c);else{const e=l*u;h=new Int32Array(e*t);for(let n=0;nn)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[r-1]} vs. ${n}`);if(0===ne(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const a=t.shape,s=a[a.length-1];let i=1;for(let e=0;ee/u)),1].slice(0,s);return[l,i,u,c]}function mi(e,t,n){const r=t.rank>1?t.shape[t.rank-1]:1,a=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${r}, and batchDim: ${a}.`;if(n.rank1?t.shape[r-1]:1,s=n.length;let i=1;for(let e=a;e`Error in slice${r}D: Length of begin ${t} must match the rank of the array (${r}).`)),Z(r===n.length,(()=>`Error in slice${r}D: Length of size ${n} must match the rank of the array (${r}).`));for(let a=0;a`Error in slice${r}D: begin[${a}] + size[${a}] (${t[a]+n[a]}) would overflow input.shape[${a}] (${e.shape[a]})`))}function vi(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function wi(e,t,n){const r=[];for(let a=0;a0){const l=t[0],u=n+1;c=Ci(i,l,u,r,e),h=Si(o,l,u,a,e),f=_i(s,l,u,e)}else for(let t=0;t-1)s[a]=0;else{const i=xi(t,n,a);let o=r[i];e&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{const i=xi(t,n,a);let o=r[i];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=q(0,i,l-1),i}function Di(e,t,n,r,a,s){let i=t[a];const o=n[a]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=o>0?q(0,i,l):q(-1,i,l-1),i}function Ai(e,t,n){let r=n.length;for(let e=0;e1){r=e;break}for(let a=r+1;a0||n[a]!==e[a])return!1;return!0}function Ti(e,t){let n=e.length>0?e[e.length-1]:1;for(let r=0;r{Z(-1!==e,(()=>"slice() does not support negative begin indexing."))})),s=null==n?new Array(a).fill(-1):"number"==typeof n?[n,...new Array(a-1).fill(-1)]:n.lengtht>=0?t:(Z(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${n}.`)),e.shape[n]-r[n]))),[r,s]}function Fi(e,t,n,r,a,s,i,o,l){let u=t.slice(),c=n.slice(),h=r;null==r&&(h=new Array(u.length));const f=vi(i);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(0!==i&&0!==o)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(0!==i&&0!==l)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const d=e.length-u.length,p=vi(o),m=e.slice();p.forEach((e=>{u[e]=0,c[e]=1,m.splice(e,0,1)}));const{begin:g,end:y,strides:b}=Ei(m,f,d,u,c,h,a,s,i);u=g,c=y,h=b;const v=vi(l);v.forEach((e=>{c[e]=u[e]+1,h[e]=1}));const w=wi(u,c,h),_=w.filter(((e,t)=>-1===v.indexOf(t)));return{nonStrided:h.every((e=>1===e)),$begin:u,$end:c,$strides:h,size:w,newShape:m,outShape:_}}class Oi{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Bi{constructor(){this.classNameMap={}}static getMap(){return null==Bi.instance&&(Bi.instance=new Bi),Bi.instance}static register(e){Bi.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Mi(e){Z(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),Z("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),Z(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),Bi.register(e)}const $i=.1;function Pi(e,t,n){return null==n&&(n=Li()),zi(e,t,((e,t)=>ji(e,t,n)))}function Li(){return 32===Fa.backend.floatPrecision()?.001:$i}function zi(e,t,n){let r=!0;if((ve(e)||ve(t))&&(r=!1),ve(e)&&ve(t)&&(r=!0),r){const n=e.constructor.name,r=t.constructor.name;if(n!==r)throw new Error(`Arrays are of different type. Actual: ${n}. Expected: ${r}`)}if(Array.isArray(e)&&Array.isArray(t)){const n=Pa(e),r=Pa(t);if(!ae(n,r))throw new Error(`Arrays have different shapes. Actual: [${n}]. Expected: [${r}]`)}const a=ve(e)?e:te(e),s=ve(t)?t:te(t);if(a.length!==s.length)throw new Error(`Arrays have different lengths actual: ${a.length} vs expected: ${s.length}.\nActual: ${a}.\nExpected: ${s}.`);for(let e=0;et.fail()),(()=>t()))}function Ui(e,t){const n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return xe(e)||xe(e[0])||xe(t)||xe(t[0])?zi(e,n,((e,t)=>e==t)):zi(e,t,((e,t)=>ji(e,t,0)))}function Vi(e,t,n){if(null==n&&(n=Li()),!ji(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function ji(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function Hi(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function Gi(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function qi(e){for(let t=0;te.dispose()))}function so(e){return Fa.keep(e)}function io(e){return Fa.time(e)}function oo(e){return Fa.setBackend(e)}function lo(){return Fa.ready()}function uo(){return Fa.backendName}function co(e){Fa.removeBackend(e)}function ho(e){return Fa.findBackend(e)}function fo(e){return Fa.findBackendFactory(e)}function po(e,t,n=1){return Fa.registerBackend(e,t,n)}function mo(){return Fa.backend}function go(e,t){Le().setPlatform(e,t)}pa=Zi;const yo=ja({add_:function(e,t){let n=Wa(e,"a","add"),r=Wa(t,"b","add");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(qe,a)}}),bo=ja({floorDiv_:function(e,t){let n=Wa(e,"a","floorDiv"),r=Wa(t,"b","floorDiv");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(Xt,a)}}),vo=ja({div_:function(e,t){let n=Wa(e,"a","div"),r=Wa(t,"b","div");if([n,r]=Ca(n,r),"int32"===n.dtype&&"int32"===r.dtype)return bo(n,r);const a={a:n,b:r};return Fa.runKernel($t,a,{})}}),wo=ja({mul_:function(e,t){let n=Wa(e,"a","mul"),r=Wa(t,"b","mul");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(Fn,a)}}),_o=ja({sqrt_:function(e){const t={x:Wa(e,"x","sqrt")};return Fa.runKernel(mr,t)}}),xo=ja({square_:function(e){const t=Wa(e,"x","square");return Fa.runKernel("Square",{x:t},{})}}),ko=ja({zerosLike_:function(e){const t={x:Wa(e,"x","zerosLike")};return Fa.runKernel(Fr,t)}});function Eo(e){return Z(Se(e),(()=>"The f passed in grad(f) must be a function")),(t,n)=>{const r=Wa(t,"x","tf.grad","string_or_numeric"),a=null!=n?Wa(n,"dy","tf.grad"):null;return Fa.tidy((()=>{const{value:t,grads:n}=Fa.gradients((()=>e(r)),[r],a);return null!=a&&Q(t.shape,a.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Ao(n),n[0]}))}}function Co(e){return Z(Se(e),(()=>"The f passed in grads(f) must be a function")),(t,n)=>{Z(Array.isArray(t),(()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"));const r=Ua(t,"args","tf.grads","string_or_numeric"),a=null!=n?Wa(n,"dy","tf.grads"):null;return Fa.tidy((()=>{const{value:t,grads:n}=Fa.gradients((()=>e(...r)),r,a);return null!=a&&Q(t.shape,a.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ao(n),n}))}}function So(e){return Z(Se(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,n)=>{Z(t instanceof ma,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),Z(null==n||n instanceof ma,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:r,value:a}=Fa.gradients((()=>e(t)),[t],n);return Ao(r),{grad:r[0],value:a}}}function No(e){return Z(Se(e),(()=>"The f passed in valueAndGrads(f) must be a function")),(t,n)=>{Z(Array.isArray(t)&&t.every((e=>e instanceof ma)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),Z(null==n||n instanceof ma,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const r=Fa.gradients((()=>e(...t)),t,n);return null!=n&&Q(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ao(r.grads),r}}function Io(e,t){Z(Se(e),(()=>"The f passed in variableGrads(f) must be a function")),Z(null==t||Array.isArray(t)&&t.every((e=>e instanceof ga)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in Fa.registeredVariables)t.push(Fa.registeredVariables[e])}const r=n?t.filter((e=>!e.trainable)):null,a=t.length;Z((t=t.filter((e=>e.trainable))).length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${a} variables is trainable.`));const{value:s,grads:i}=Fa.gradients(e,t,null,!0);Z(i.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),Z(0===s.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${s.rank} tensor`));const o={};return t.forEach(((e,t)=>{null!=i[t]&&(o[e.name]=i[t])})),null!=r&&r.forEach((e=>o[e.name]=null)),{value:s,grads:o}}function Do(e){return Fa.customGrad(e)}function Ao(e){if(e.filter((e=>null==e)).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}function To(e,t){if((ve(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&ve(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Ga(e,[],[],t)}class Ro extends Oi{minimize(e,t=!1,n){const{value:r,grads:a}=this.computeGradients(e,n);if(null!=n){const e=n.map((e=>({name:e.name,tensor:a[e.name]})));this.applyGradients(e)}else this.applyGradients(a);return ao(a),t?r:(r.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return Io(e,t)}dispose(){null!=this.iterations_&&ao(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:To(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(Ro,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class Fo extends Ro{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=Fa.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t];null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:ro((()=>ko(r).variable(!1)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:ro((()=>ko(r).variable(!1)))});const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable,i=this.accumulatedUpdates[n].variable;ro((()=>{const e=yo(wo(s,this.rho),wo(xo(a),1-this.rho)),t=wo(vo(_o(yo(i,this.epsilon)),_o(yo(s,this.epsilon))),a),n=yo(wo(i,this.rho),wo(xo(t),1-this.rho));s.assign(e),i.assign(n);const o=yo(wo(t,-this.learningRate),r);r.assign(o)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(ao(this.accumulatedGrads.map((e=>e.variable))),ao(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}function Oo(e,t,n){const r={shape:e,value:t,dtype:n};return Fa.runKernel(Gt,{},r)}Fo.className="Adadelta",Mi(Fo);class Bo extends Ro{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:ro((()=>Oo(r.shape,this.initialAccumulatorValue).variable(e)))}}const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable;ro((()=>{const e=yo(s,xo(a));s.assign(e);const t=yo(wo(vo(a,_o(yo(e,Fa.backend.epsilon()))),-this.learningRate),r);r.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&ao(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}Bo.className="Adagrad",Mi(Bo);const Mo=ja({pow_:function(e,t){let n=Wa(e,"base","pow"),r=Wa(t,"exp","pow");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(jn,a)}}),$o=ja({sub_:function(e,t){let n=Wa(e,"a","sub"),r=Wa(t,"b","sub");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(xr,a)}});class Po extends Ro{constructor(e,t,n,r=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],ro((()=>{this.accBeta1=To(t).variable(),this.accBeta2=To(n).variable()})),null==r&&(this.epsilon=Fa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);ro((()=>{const n=$o(1,this.accBeta1),r=$o(1,this.accBeta2);t.forEach(((t,a)=>{const s=Fa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:ro((()=>ko(s).variable(!1)))}),null==this.accumulatedSecondMoment[a]&&(this.accumulatedSecondMoment[a]={originalName:`${t}/v`,variable:ro((()=>ko(s).variable(!1)))});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedSecondMoment[a].variable,u=yo(wo(o,this.beta1),wo(i,1-this.beta1)),c=yo(wo(l,this.beta2),wo(xo(i),1-this.beta2)),h=vo(u,n),f=vo(c,r);o.assign(u),l.assign(c);const d=yo(wo(vo(h,yo(_o(f),this.epsilon)),-this.learningRate),s);s.assign(d)})),this.accBeta1.assign(wo(this.accBeta1,this.beta1)),this.accBeta2.assign(wo(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&ao(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&ao(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),ro((()=>{this.accBeta1.assign(Mo(this.beta1,this.iterations_+1)),this.accBeta2.assign(Mo(this.beta2,this.iterations_+1))}));const t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}Po.className="Adam",Mi(Po);const Lo=ja({abs_:function(e){const t=Wa(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return Fa.runKernel(gt,e)}{const e={x:t};return Fa.runKernel(je,e)}}});function zo(e,t){const n=e.length,r=[];for(let a=0;a1&&1===i&&r.unshift(s)}return r}function Wo(e,t){const n=[];for(let r=0;r1)&&n.unshift(s)}return n}function Uo(e,t){const n=[],r=Math.max(e.length,t.length);for(let a=0;a{this.iteration=To(0).variable(),this.accBeta1=To(t).variable()})),null==r&&(this.epsilon=Fa.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);ro((()=>{const n=$o(1,this.accBeta1),r=vo(-this.learningRate,yo(wo(this.iteration,this.decay),1));t.forEach(((t,a)=>{const s=Fa.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:ko(s).variable(!1)}),null==this.accumulatedWeightedInfNorm[a]&&(this.accumulatedWeightedInfNorm[a]={originalName:`${t}/v`,variable:ko(s).variable(!1)});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedWeightedInfNorm[a].variable,u=yo(wo(o,this.beta1),wo(i,1-this.beta1)),c=wo(l,this.beta2),h=Lo(i),f=Vo(c,h);o.assign(u),l.assign(f);const d=yo(wo(vo(r,n),vo(u,yo(f,this.epsilon))),s);s.assign(d)})),this.iteration.assign(yo(this.iteration,1)),this.accBeta1.assign(wo(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&ao(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&ao(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}jo.className="Adamax",Mi(jo);class Ho extends Ro{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Array.isArray(e)?e[n].tensor:e[t];if(null==r)return;const a=Fa.registeredVariables[t];ro((()=>{const e=yo(wo(this.c,r),a);a.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=so(To(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}Ho.className="SGD",Mi(Ho);class Go extends Ho{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=To(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:ro((()=>ko(r).variable(e)))}}const a=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];null!=s&&ro((()=>{let e;const t=yo(wo(this.m,a),s);e=this.useNesterov?yo(wo(this.c,yo(s,wo(t,this.m))),r):yo(wo(this.c,t),r),a.assign(t),r.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&ao(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}Go.className="Momentum",Mi(Go);class qo extends Ro{constructor(e,t=.9,n=0,r=null,a=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=r,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=a,null==r&&(this.epsilon=Fa.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Fa.registeredVariables[t],a=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:ro((()=>ko(r).variable(a)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:ro((()=>ko(r).variable(a)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:ro((()=>ko(r).variable(a)))});const s=Array.isArray(e)?e[n].tensor:e[t];if(null==s)return;const i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;ro((()=>{const e=yo(wo(i,this.decay),wo(xo(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,a=yo(wo(t,this.decay),wo(s,1-this.decay)),l=vo(wo(s,this.learningRate),_o($o(e,yo(xo(a),this.epsilon)))),u=yo(wo(o,this.momentum),l);i.assign(e),t.assign(a),o.assign(u);const c=$o(r,u);r.assign(c)}else{const e=yo(wo(i,this.decay),wo(xo(s),1-this.decay)),t=yo(wo(o,this.momentum),vo(wo(s,this.learningRate),_o(yo(e,this.epsilon))));i.assign(e),o.assign(t);const n=$o(r,t);r.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&ao(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&ao(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&ao(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}qo.className="RMSProp",Mi(qo);const Ko=ja({acos_:function(e){const t={x:Wa(e,"x","acos")};return Fa.runKernel(He,t)}}),Xo=ja({acosh_:function(e){const t={x:Wa(e,"x","acosh")};return Fa.runKernel(Ge,t)}}),Yo=ja({addN_:function(e){Z(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),Z(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>Wa(e,`tensors${t}`,"addN"))),n=t[0];t.forEach((e=>{if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!ae(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const r=t;return Fa.runKernel(Ke,r)}}),Jo=ja({all_:function(e,t=null,n=!1){const r={x:Wa(e,"x","all","bool")},a={axis:t,keepDims:n};return Fa.runKernel(Xe,r,a)}}),Zo=ja({any_:function(e,t=null,n=!1){const r={x:Wa(e,"x","any","bool")},a={axis:t,keepDims:n};return Fa.runKernel(Ye,r,a)}}),Qo=ja({argMax_:function(e,t=0){const n={x:Wa(e,"x","argMax")},r={axis:t};return Fa.runKernel(Je,n,r)}}),el=ja({argMin_:function(e,t=0){const n={x:Wa(e,"x","argMin")},r={axis:t};return Fa.runKernel(Ze,n,r)}}),tl=ja({asin_:function(e){const t={x:Wa(e,"x","asin")};return Fa.runKernel(Qe,t)}}),nl=ja({asinh_:function(e){const t={x:Wa(e,"x","asinh")};return Fa.runKernel(et,t)}}),rl=ja({atan_:function(e){const t={x:Wa(e,"x","atan")};return Fa.runKernel(tt,t)}}),al=ja({atan2_:function(e,t){let n=Wa(e,"a","atan2"),r=Wa(t,"b","atan2");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(rt,a)}}),sl=ja({atanh_:function(e){const t={x:Wa(e,"x","atanh")};return Fa.runKernel(nt,t)}});function il(e,t,n,r,a="NHWC",s){return ul(e,[...t,e[3]],n,s,r,null,null,bl(a))}function ol(e,t,n,r,a,s,i="channelsLast"){const[o,l]=fl(t);let u;if("channelsLast"===i)u=[o,l,e[3],e[3]];else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);u=[o,l,e[1],e[1]]}return ul(e,u,n,r,a,s,!1,i)}function ll(e,t,n,r,a,s,i="NDHWC"){const[o,l,u]=dl(t);let c,h;if("NDHWC"===i)h="channelsLast",c=[o,l,u,e[4],e[4]];else{if("NCDHW"!==i)throw new Error(`Unknown dataFormat ${i}`);h="channelsFirst",c=[o,l,u,e[1],e[1]]}return cl(e,c,n,r,a,!1,h,s)}function ul(e,t,n,r,a,s,i=!1,o="channelsLast"){let[l,u,c,h]=[-1,-1,-1,-1];if("channelsLast"===o)[l,u,c,h]=e;else{if("channelsFirst"!==o)throw new Error(`Unknown dataFormat ${o}`);[l,h,u,c]=e}const[f,d,,p]=t,[m,g]=fl(n),[y,b]=fl(r),v=pl(f,y),w=pl(d,b),{padInfo:_,outHeight:x,outWidth:k}=function(e,t,n,r,a,s,i,o,l){let u,c,h;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const a=function(e,t,n,r,a){null==r&&(r=hl(e,t,n));const s=e[1];return[ml((e[0]-t+2*r)/n+1,a),ml((s-t+2*r)/n+1,a)]}([t,n],s,r,e,o);c=a[0],h=a[1]}else if("same"===e){c=Math.ceil(t/r),h=Math.ceil(n/a);const e=Math.max(0,(c-1)*r+s-t),o=Math.max(0,(h-1)*a+i-n),l=Math.floor(e/2),f=e-l,d=Math.floor(o/2);u={top:l,bottom:f,left:d,right:o-d,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/r),h=Math.ceil((n-i+1)/a);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const f="channelsLast"===l?e[1][0]:e[2][0],d="channelsLast"===l?e[1][1]:e[2][1],p="channelsLast"===l?e[2][0]:e[3][0],m="channelsLast"===l?e[2][1]:e[3][1];u={top:f,bottom:d,left:p,right:m,type:0===f&&0===d&&0===p&&0===m?"VALID":"EXPLICIT"},c=ml((t-s+f+d)/r+1,o),h=ml((n-i+p+m)/a+1,o)}}return{padInfo:u,outHeight:c,outWidth:h}}(a,u,c,m,g,v,w,s,o),E=i?p*h:p;let C;return"channelsFirst"===o?C=[l,E,x,k]:"channelsLast"===o&&(C=[l,x,k,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:h,outHeight:x,outWidth:k,outChannels:E,padInfo:_,strideHeight:m,strideWidth:g,filterHeight:f,filterWidth:d,effectiveFilterHeight:v,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:C,filterShape:t}}function cl(e,t,n,r,a,s=!1,i="channelsLast",o){let[l,u,c,h,f]=[-1,-1,-1,-1,-1];if("channelsLast"===i)[l,u,c,h,f]=e;else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);[l,f,u,c,h]=e}const[d,p,m,,g]=t,[y,b,v]=dl(n),[w,_,x]=dl(r),k=pl(d,w),E=pl(p,_),C=pl(m,x),{padInfo:S,outDepth:N,outHeight:I,outWidth:D}=function(e,t,n,r,a,s,i,o,l,u,c){let h,f,d,p;if("number"==typeof e){h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const s=function(e,t,n,r,a,s){null==a&&(a=hl(e,t,r));const i=e[1],o=e[2];return[ml((e[0]-t+2*a)/r+1,s),ml((i-t+2*a)/r+1,s),ml((o-t+2*a)/r+1,s),1]}([t,n,r,1],o,0,a,e,c);f=s[0],d=s[1],p=s[2]}else if("same"===e){f=Math.ceil(t/a),d=Math.ceil(n/s),p=Math.ceil(r/i);const e=(f-1)*a+o-t,c=(d-1)*s+l-n,m=(p-1)*i+u-r,g=Math.floor(e/2),y=e-g,b=Math.floor(c/2),v=c-b,w=Math.floor(m/2);h={top:b,bottom:v,left:w,right:m-w,front:g,back:y,type:"SAME"}}else{if("valid"!==e)throw Error(`Unknown padding parameter: ${e}`);h={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},f=Math.ceil((t-o+1)/a),d=Math.ceil((n-l+1)/s),p=Math.ceil((r-u+1)/i)}return{padInfo:h,outDepth:f,outHeight:d,outWidth:p}}(a,u,c,h,y,b,v,k,E,C,o),A=s?g*f:g;let T;return"channelsFirst"===i?T=[l,A,N,I,D]:"channelsLast"===i&&(T=[l,N,I,D,A]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:c,inWidth:h,inChannels:f,outDepth:N,outHeight:I,outWidth:D,outChannels:A,padInfo:S,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:d,filterHeight:p,filterWidth:m,effectiveFilterDepth:k,effectiveFilterHeight:E,effectiveFilterWidth:C,dilationDepth:w,dilationHeight:_,dilationWidth:x,inShape:e,outShape:T,filterShape:t}}function hl(e,t,n,r=1){const a=pl(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function fl(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function dl(e){return"number"==typeof e?[e,e,e]:e}function pl(e,t){return t<=1?e:e+(e-1)*(t-1)}function ml(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function gl(e){const[t,n,r]=fl(e);return 1===t&&1===n&&1===r}function yl(e,t){return gl(e)||gl(t)}function bl(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}const vl=ja({reshape_:function(e,t){const n={x:Wa(e,"x","reshape","string_or_numeric")},r={shape:t};return Fa.runKernel(Jn,n,r)}}),wl=ja({avgPool_:function(e,t,n,r,a){const s=Wa(e,"x","avgPool","float32");Z(yl(n,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`));let i=s,o=!1;3===s.rank&&(o=!0,i=vl(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Z(4===i.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`)),null!=a&&Z(se(r),(()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a};let c=Fa.runKernel(at,l,u);return c=zs(c,s.dtype),o?vl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),_l=ja({avgPool3d_:function(e,t,n,r,a,s="NDHWC",i){null==i?i=[1,1,1]:Zi("dilations is deprecated, this field will be gone in v3.0.0.");const o=Wa(e,"x","avgPool3d","float32");let l=o,u=!1;4===o.rank&&(u=!0,l=vl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Z(5===l.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`)),Z("NDHWC"===s,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),Z(yl(n,i),(()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),null!=a&&Z(se(r),(()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const c={x:l},h={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s,dilations:i};let f=Fa.runKernel(it,c,h);return f=zs(f,l.dtype),u?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),xl=ja({concat_:function(e,t=0){Z(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=Ua(e,"tensors","concat","string_or_numeric");if("complex64"===n[0].dtype&&n.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===n.length)return Ws(n[0]);const r=n,a={axis:t};return Fa.runKernel(yt,r,a)}}),kl=ja({sigmoid_:function(e){const t={x:Wa(e,"x","sigmoid")};return Fa.runKernel(dr,t)}}),El=ja({slice_:function(e,t,n){const r=Wa(e,"x","slice","string_or_numeric");if(0===r.rank)throw new Error("Slicing scalar is not possible");const a={x:r},s={begin:t,size:n};return Fa.runKernel(ur,a,s)}}),Cl=ja({tanh_:function(e){const t={x:Wa(e,"x","tanh")};return Fa.runKernel(Sr,t)}}),Sl=ja({basicLSTMCell_:function(e,t,n,r,a,s){const i=Wa(e,"forgetBias","basicLSTMCell"),o=Wa(t,"lstmKernel","basicLSTMCell"),l=Wa(n,"lstmBias","basicLSTMCell"),u=Wa(r,"data","basicLSTMCell"),c=Wa(a,"c","basicLSTMCell"),h=Wa(s,"h","basicLSTMCell"),f=xl([u,h],1),d=ii(f,o),p=yo(d,l),m=p.shape[0],g=p.shape[1]/4,y=[m,g],b=El(p,[0,0],y),v=El(p,[0,g],y),w=El(p,[0,2*g],y),_=El(p,[0,3*g],y),x=yo(wo(kl(b),Cl(v)),wo(c,kl(yo(i,w))));return[x,wo(Cl(x),kl(_))]}}),Nl=ja({batchToSpaceND_:function(e,t,n){const r=Wa(e,"x","batchToSpaceND"),a=t.reduce(((e,t)=>e*t));Z(r.rank>=1+t.length,(()=>`input rank is ${r.rank} but should be > than blockShape.length ${t.length}`)),Z(n.length===t.length,(()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`)),Z(r.shape[0]%a==0,(()=>`input tensor batch is ${r.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${a}`));const s={x:r},i={blockShape:t,crops:n};return Fa.runKernel(ut,s,i)}}),Il=ja({batchNorm_:function(e,t,n,r,a,s){null==s&&(s=.001);const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(o.rank===l.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Z(null==c||o.rank===c.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Z(null==u||o.rank===u.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const h={x:function(e){let t;return t=0===e.rank||1===e.rank?vl(e,[1,1,1,e.size]):2===e.rank?vl(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?vl(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(i),scale:u,offset:c,mean:o,variance:l},f={varianceEpsilon:s},d=Fa.runKernel(Yt,h,f);return vl(d,i.shape)}}),Dl=ja({batchNorm2d_:function(e,t,n,r,a,s){const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;return null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(2===i.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`)),Z(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),Z(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=u&&Z(2===u.rank||1===u.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`)),null!=c&&Z(2===c.rank||1===c.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`)),Il(i,o,l,c,u,s)}}),Al=ja({batchNorm3d_:function(e,t,n,r,a,s){const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;return null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(3===i.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`)),Z(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),Z(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=u&&Z(3===u.rank||1===u.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`)),null!=c&&Z(3===c.rank||1===c.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`)),Il(i,o,l,c,u,s)}}),Tl=ja({batchNorm4d_:function(e,t,n,r,a,s){const i=Wa(e,"x","batchNorm"),o=Wa(t,"mean","batchNorm"),l=Wa(n,"variance","batchNorm");let u,c;return null!=a&&(u=Wa(a,"scale","batchNorm")),null!=r&&(c=Wa(r,"offset","batchNorm")),Z(4===i.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`)),Z(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),Z(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=u&&Z(4===u.rank||1===u.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`)),null!=c&&Z(4===c.rank||1===c.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`)),Il(i,o,l,c,u,s)}}),Rl=ja({bincount_:function(e,t,n){const r=Wa(e,"x","bincount"),a=Wa(t,"weights","bincount");Z("int32"===r.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${r.dtype}`)),Z(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Z(a.size===r.size||0===a.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${r.shape}, weights shape: ${a.shape}.`));const s={x:r,weights:a},i={size:n};return Fa.runKernel(ct,s,i)}}),Fl=ja({broadcastTo_:function(e,t){let n=Wa(e,"broadcastTo","x");const r=n.shape;if(t.some((e=>!(e>0)||e%1!=0)))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){const e=n.shape.slice();for(;e.length=0;e--)if(a[e]===t[e])s[e]=1;else if(1!==n.shape[e])throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${t}].`);if(0===s.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return Ws(n);const i={x:n},o={reps:s};return Fa.runKernel(Nr,i,o)}}),Ol=ja({ceil_:function(e){const t={x:Wa(e,"x","ceil")};return Fa.runKernel(dt,t)}}),Bl=ja({clipByValue_:function(e,t,n){const r=Wa(e,"x","clipByValue");Z(t<=n,(()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`));const a={x:r},s={clipValueMin:t,clipValueMax:n};return Fa.runKernel(pt,a,s)}}),Ml=ja({concat1d_:function(e){return xl(e,0)}}),$l=ja({concat2d_:function(e,t){return xl(e,t)}}),Pl=ja({concat3d_:function(e,t){return xl(e,t)}}),Ll=ja({concat4d_:function(e,t){return xl(e,t)}}),zl=ja({conv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=Wa(e,"x","conv2d"),l=Wa(t,"filter","conv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=vl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Z(4===u.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`)),Z(4===l.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`)),null!=i&&Z(se(r),(()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h="NHWC"===a?u.shape[3]:u.shape[1];Z(h===l.shape[2],(()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${l.shape[2]}.`)),Z(yl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`));const f={x:u,filter:l},d={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},p=Fa.runKernel(bt,f,d);return c?vl(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Wl=ja({conv1d_:function(e,t,n,r,a="NWC",s=1,i){const o=Wa(e,"x","conv1d"),l=Wa(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=vl(o,[1,o.shape[0],o.shape[1]])),Z(3===u.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`)),Z(3===l.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`)),null!=i&&Z(se(r),(()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Z(u.shape[2]===l.shape[1],(()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`)),Z(yl(n,s),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`)),Z("NWC"===a,(()=>`Error in conv1d: got dataFormat of ${a} but only NWC is currently supported.`));const h=vl(l,[1,l.shape[0],l.shape[1],l.shape[2]]),f=vl(u,[u.shape[0],1,u.shape[1],u.shape[2]]),d=zl(f,h,[1,n],r,"NHWC",[1,s],i);return vl(d,c?[d.shape[2],d.shape[3]]:[d.shape[0],d.shape[2],d.shape[3]])}}),Ul=ja({conv2DBackpropInput_:function(e,t,n,r,a,s="NHWC",i){Z(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let o=e,l=t,u=!1;3===t.rank&&(u=!0,l=vl(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),Z(4===o.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`)),Z(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),Z(4===n.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`));const c="NHWC"===s?o[3]:o[1],h="NHWC"===s?l.shape[3]:l.shape[1];Z(c===n.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`)),Z(h===n.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`)),null!=i&&Z(se(a),(()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const f={dy:l,filter:n},d={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,inputShape:o},p=Fa.runKernel(wt,f,d);return u?vl(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Vl=ja({conv2dTranspose_:function(e,t,n,r,a,s){const i=Wa(e,"x","conv2dTranspose"),o=Wa(t,"filter","conv2dTranspose");return Ul(n,i,o,r,a,"NHWC",s)}}),jl=ja({conv3d_:function(e,t,n,r,a="NDHWC",s=[1,1,1]){const i=Wa(e,"x","conv3d"),o=Wa(t,"filter","conv3d");let l=i,u=!1;4===i.rank&&(u=!0,l=vl(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Z(5===l.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`)),Z(5===o.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`)),Z(l.shape[4]===o.shape[3],(()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`)),Z(yl(n,s),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Z("NDHWC"===a,(()=>`Error in conv3d: got dataFormat of ${a} but only NDHWC is currently supported.`));const c={x:l,filter:o},h={strides:n,pad:r,dataFormat:a,dilations:s},f=Fa.runKernel(_t,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Hl=ja({conv3DBackpropInput_:function(e,t,n,r,a){Z(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let s=e,i=t,o=!1;4===t.rank&&(o=!0,i=vl(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);const l=s[4],u=i.shape[4];Z(5===s.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`)),Z(5===i.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`)),Z(5===n.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`)),Z(l===n.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`)),Z(u===n.shape[4],(()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`));const c={dy:i,filter:n},h={pad:a,strides:r,inputShape:s},f=Fa.runKernel(kt,c,h);return o?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Gl=ja({conv3dTranspose_:function(e,t,n,r,a){const s=Wa(e,"x","conv3dTranspose"),i=Wa(t,"filter","conv3dTranspose");return Hl(n,s,i,r,a)}}),ql=ja({cos_:function(e){const t={x:Wa(e,"x","cos")};return Fa.runKernel(Et,t)}}),Kl=ja({cosh_:function(e){const t={x:Wa(e,"x","cosh")};return Fa.runKernel(Ct,t)}}),Xl=ja({cumsum_:function(e,t=0,n=!1,r=!1){const a={x:Wa(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:r};return Fa.runKernel(St,a,s)}}),Yl=ja({denseBincount_:function(e,t,n,r=!1){const a=Wa(e,"x","denseBincount"),s=Wa(t,"weights","denseBincount");Z("int32"===a.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${a.dtype}`)),Z(a.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${a.rank}.`)),Z(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Z(s.size===a.size||0===s.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${a.shape}, weights shape: ${s.shape}.`));const i={x:a,weights:s},o={size:n,binaryOutput:r};return Fa.runKernel(It,i,o)}}),Jl=ja({depthToSpace_:function(e,t,n="NHWC"){const r=Wa(e,"x","depthToSpace"),a="NHWC"===n?r.shape[1]:r.shape[2],s="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];Z(a*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${a} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Z(s*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Z(i%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${r.shape}`));const o={x:r},l={blockSize:t,dataFormat:n};return Fa.runKernel(Dt,o,l)}}),Zl=ja({depthwiseConv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=Wa(e,"x","depthwiseConv2d"),l=Wa(t,"filter","depthwiseConv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=vl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Z(4===u.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`)),Z(4===l.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`)),Z(u.shape[3]===l.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`)),null!=i&&Z(se(r),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h={x:u,filter:l},f={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},d=Fa.runKernel(At,h,f);return c?vl(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),Ql=ja({diag_:function(e){const t={x:Wa(e,"x","diag")};return Fa.runKernel(Ft,t)}}),eu=ja({dilation2d_:function(e,t,n,r,a=[1,1],s="NHWC"){const i=Wa(e,"x","dilation2d"),o=Wa(t,"filter","dilation2d");Z(3===i.rank||4===i.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`)),Z(3===o.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`)),Z("NHWC"===s,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`));let l=i,u=!1;3===i.rank&&(l=vl(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);const c={x:l,filter:o},h={strides:n,pad:r,dilations:a},f=Fa.runKernel(Ot,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),tu=ja({equal_:function(e,t){let n=Wa(e,"a","equal"),r=Wa(t,"b","equal");[n,r]=Ca(n,r),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(Wt,a)}}),nu=ja({where_:function(e,t,n){const r=Wa(t,"a","where"),a=Wa(n,"b","where"),s=Wa(e,"condition","where","bool"),i=Uo(r.shape,a.shape),o=Fl(r,i),l=Fl(a,i);1===s.rank&&Z(s.shape[0]===r.shape[0],(()=>"The first dimension of `a` must match the size of `condition`.")),1!==s.rank&&Q(s.shape,l.shape,"Error in where: ");const u={condition:s,t:o,e:l};return Fa.runKernel(or,u)}}),ru=ja({divNoNan_:function(e,t){let n=Wa(e,"a","div"),r=Wa(t,"b","div");[n,r]=Ca(n,r);const a=vo(n,r),s=ko(a),i=tu(r,s);return nu(i,s,a)}}),au=ja({dot_:function(e,t){const n=Wa(e,"t1","dot"),r=Wa(t,"t2","dot");Z(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${r.rank}.`));const a=1===n.rank?n.size:n.shape[1],s=1===r.rank?r.size:r.shape[0];if(Z(a===s,(()=>`Error in dot: inner dimensions of inputs must match, but got ${a} and ${s}.`)),1===n.rank&&1===r.rank){const e=vl(n,[1,-1]),t=vl(r,[-1,1]),a=ii(e,t);return vl(a,[])}if(1===n.rank&&2===r.rank){const e=vl(n,[1,-1]),t=vl(r,[r.shape[0],r.shape[1]]),a=ii(e,t);return vl(a,[a.size])}if(2===n.rank&&1===r.rank){const e=vl(r,[-1,1]),t=ii(n,e);return vl(t,[t.size])}{const e=vl(r,[r.shape[0],r.shape[1]]);return ii(n,e)}}}),su=ja({elu_:function(e){const t={x:Wa(e,"x","elu")};return Fa.runKernel(Pt,t)}}),iu=ja({erf_:function(e){let t=Wa(e,"x","erf");Z("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=zs(t,"float32"));const n={x:t};return Fa.runKernel(zt,n)}}),ou=ja({exp_:function(e){const t={x:Wa(e,"x","exp")};return Fa.runKernel(Ut,t)}}),lu=ja({expandDims_:function(e,t=0){const n=Wa(e,"x","expandDims","string_or_numeric");Z(t<=n.rank,(()=>"Axis must be <= rank of the tensor"));const r={input:n},a={dim:t};return Fa.runKernel(Vt,r,a)}}),uu=ja({expm1_:function(e){const t={x:Wa(e,"x","expm1")};return Fa.runKernel(jt,t)}}),cu=ja({tile_:function(e,t){const n=Wa(e,"x","tile","string_or_numeric");Z(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`));const r={x:n},a={reps:t};return Fa.runKernel(Nr,r,a)}}),hu=ja({eye_:function(e,t,n,r="float32"){null==t&&(t=e);const a=Ls([e,t],r),s=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`)),Z(se(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let i=s,o=!1;3===s.rank&&(o=!0,i=vl(s,[1,s.shape[0],s.shape[1],s.shape[2]]));const l={x:i},u={depthRadius:t,bias:n,alpha:r,beta:a},c=Fa.runKernel(bn,l,u);return o?vl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Cu=ja({log_:function(e){const t={x:Wa(e,"x","log")};return Fa.runKernel(fn,t)}}),Su=ja({log1p_:function(e){const t={x:Wa(e,"x","log1p")};return Fa.runKernel(dn,t)}}),Nu=ja({neg_:function(e){const t={x:Wa(e,"x","neg")};return Fa.runKernel(On,t)}}),Iu=ja({softplus_:function(e){const t={x:Wa(e,"x","softplus")};return Fa.runKernel(pr,t)}}),Du=ja({logSigmoid_:function(e){const t=Wa(e,"x","logSigmoid");return Do((e=>({value:Nu(Iu(Nu(e))),gradFunc:t=>wo(t,kl(Nu(e)))})))(t)}}),Au=ja({max_:function(e,t=null,n=!1){const r={x:Wa(e,"x","max")},a={reductionIndices:t,keepDims:n};return Fa.runKernel(wn,r,a)}}),Tu=ja({sum_:function(e,t=null,n=!1){let r=Wa(e,"x","sum");"bool"===r.dtype&&(r=zs(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Fa.runKernel(gr,a,s)}}),Ru=ja({logSoftmax_:function(e,t=-1){const n=Wa(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Do(((e,n)=>{const r=Au(e,t,!0),a=$o(e,r),s=$o(zs(a,"float32"),Cu(Tu(ou(a),t,!0)));return n([s]),{value:s,gradFunc:(e,n)=>{const[r]=n,a=ou(r);return $o(e,wo(Tu(e,t,!0),a))}}}))(n)}});function Fu(e,t){for(let n=0;ne[t]))]}function Mu(e,t){return Ou(e,t.map((e=>1)),t)}function $u(e,t,n){Z(Fu(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function Pu(e,t){if(Fu(e,t))return null;const n=[];for(let r=0;rn.push(e))),n}function Lu(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function zu(e,t){const n=[];for(let r=t-e;r`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`)),Z(yl(n,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`)),null!=a&&Z(se(r),(()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a},c=Fa.runKernel(xn,l,u);return o?vl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),qu=ja({maxPool3d_:function(e,t=[1,1,1],n,r,a,s="NDHWC",i){null==i?i=[1,1,1]:Zi("dilations is deprecated, this field will be gone in v3.0.0.");const o=Wa(e,"x","maxPool3d");let l=o,u=!1;4===o.rank&&(u=!0,l=vl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Z(5===l.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`)),Z("NDHWC"===s,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),Z(yl(n,i),(()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`)),null!=a&&Z(se(r),(()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const c={x:l},h={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s,dilations:i},f=Fa.runKernel(En,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Ku=ja({maxPoolWithArgmax_:function(e,t,n,r,a=!1){const s={x:Wa(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},o=Fa.runKernel(Sn,s,i);return{result:o[0],indexes:o[1]}}}),Xu=ja({mean_:function(e,t=null,n=!1){const r={x:Wa(e,"x","mean")},a={axis:t,keepDims:n};return Fa.runKernel(Nn,r,a)}}),Yu=ja({min_:function(e,t=null,n=!1){const r={x:Wa(e,"x","min")},a={axis:t,keepDims:n};return Fa.runKernel(In,r,a)}}),Ju=ja({minimum_:function(e,t){let n=Wa(e,"a","minimum"),r=Wa(t,"b","minimum");[n,r]=Ca(n,r),"bool"===n.dtype&&(n=zs(n,"int32"),r=zs(r,"int32")),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(Dn,a)}}),Zu=ja({mirrorPad_:function(e,t,n){Z("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const r=Wa(e,"x","mirrorPad");if(0===r.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");Z(t.length===r.rank,(()=>`Padding doesn't match input. Must be ${r.rank}. Got ${t.length}.`));const a="reflect"===n?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),Z(t[e][0]>=0&&t[e][0]<=r.shape[e]-a&&t[e][1]>=0&&t[e][1]<=r.shape[e]-a,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${r.shape[e]-a} or less than 0 for input of shape ${r.shape}`));const s={paddings:t,mode:n},i={x:r};return Fa.runKernel(An,i,s)}}),Qu=ja({mod_:function(e,t){let n=Wa(e,"a","mod"),r=Wa(t,"b","mod");[n,r]=Ca(n,r);const a={a:n,b:r};return Fa.runKernel(Tn,a)}}),ec=ja({moments_:function(e,t=null,n=!1){const r=fe(t,(e=Wa(e,"x","moments")).shape),a=Xu(e,r,n);let s=a.shape;n||(s=Mu(a.shape,r));const i=xo($o(zs(e,"float32"),vl(a,s)));return{mean:a,variance:Xu(i,r,n)}}}),tc=ja({multiRNNCell_:function(e,t,n,r){const a=Wa(t,"data","multiRNNCell"),s=Ua(n,"c","multiRNNCell"),i=Ua(r,"h","multiRNNCell");let o=a;const l=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();const o={logits:1===i?vl(a,[1,-1]):a},l={numSamples:t,seed:n,normalized:r},u=Fa.runKernel(Rn,o,l);return 1===i?vl(u,[u.size]):u}}),rc=ja({notEqual_:function(e,t){let n=Wa(e,"a","notEqual"),r=Wa(t,"b","notEqual");[n,r]=Ca(n,r),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(Bn,a)}});function ac(e,t="float32"){if("complex64"===t){const t=ac(e,"float32"),n=ac(e,"float32");return Ha(t,n)}const n=Re(ne(e),t);return Fa.makeTensor(n,e,t)}function sc(e,t="float32"){if("complex64"===t){const t=sc(e,"float32"),n=ac(e,"float32");return Ha(t,n)}const n=Te(ne(e),t);return Fa.makeTensor(n,e,t)}const ic=ja({onesLike_:function(e){const t={x:Wa(e,"x","onesLike")};return Fa.runKernel(Ln,t)}}),oc=ja({outerProduct_:function(e,t){const n=Wa(e,"v1","outerProduct"),r=Wa(t,"v2","outerProduct");Z(1===n.rank&&1===r.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${r.rank}.`));const a=vl(n,[-1,1]),s=vl(r,[1,-1]);return ii(a,s)}}),lc=ja({pad_:function(e,t,n=0){const r=Wa(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const a={paddings:t,constantValue:n},s={x:r};return Fa.runKernel(Un,s,a)}}),uc=ja({pad1d_:function(e,t,n=0){return Z(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),lc(e,[t],n)}}),cc=ja({pad2d_:function(e,t,n=0){return Z(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),lc(e,t,n)}}),hc=ja({pad3d_:function(e,t,n=0){return Z(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),lc(e,t,n)}}),fc=ja({pad4d_:function(e,t,n=0){return Z(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),lc(e,t,n)}}),dc=ja({spaceToBatchND_:function(e,t,n){const r=Wa(e,"x","spaceToBatchND");Z(r.rank>=1+t.length,(()=>`input rank ${r.rank} should be > than [blockShape] ${t.length}`)),Z(n.length===t.length,(()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`)),Z(r.shape.reduce(((e,r,a)=>a>0&&a<=t.length?e&&(r+n[a-1][0]+n[a-1][1])%t[a-1]==0:e),!0),(()=>`input spatial dimensions ${r.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`));const a={x:r},s={blockShape:t,paddings:n};return Fa.runKernel(yr,a,s)}}),pc=ja({pool_:function(e,t,n,r,a,s){null==a&&(a=[1,1]),null==s&&(s=1),0===r&&(r="valid");const i=Wa(e,"x","maxPool");let o=i,l=!1;3===i.rank&&(l=!0,o=vl(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Z(yl(s,a),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'`));const u=ol(o.shape,t,s,a,r),c=[u.dilationHeight,u.dilationWidth];let h;h="same"===r?function(e,t){const n=e.map(((e,n)=>e+(e-1)*(t[n]-1))).map((e=>e-1)),r=n.map((e=>Math.floor(e/2))),a=n.map(((e,t)=>e-r[t]));return n.map(((e,t)=>[r[t],a[t]]))}([u.filterHeight,u.filterWidth],c):[[0,0],[0,0]];const f=1===c[0]&&1===c[1],[d,p]=function(e,t,n){const r=n.map((e=>e[0])),a=n.map((e=>e[1])),s=e.concat(r,a),i=t.map(((e,t)=>(e-s[t]%e)%e)),o=a.map(((e,t)=>e+i[t]));return[t.map(((e,t)=>[r[t],o[t]])),t.map(((e,t)=>[0,i[t]]))]}([u.inHeight,u.inWidth],c,h),m=f?r:"valid",g=f?o:dc(o,c,d),y=("avg"===n?()=>wl(g,t,s,m):()=>Gu(g,t,s,m))(),b=f?y:Nl(y,c,p);return l?vl(b,[b.shape[1],b.shape[2],b.shape[3]]):b}}),mc=ja({prelu_:function(e,t){const n={x:Wa(e,"x","prelu"),alpha:Wa(t,"alpha","prelu")};return Fa.runKernel(Hn,n)}}),gc=ja({prod_:function(e,t=null,n=!1){let r=Wa(e,"x","prod");"bool"===r.dtype&&(r=zs(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return Fa.runKernel(Gn,a,s)}}),yc=ja({rand_:function(e,t,n){const r=ne(e);let a=null;if(null==n||"float32"===n)a=new Float32Array(r);else if("int32"===n)a=new Int32Array(r);else{if("bool"!==n)throw new Error(`Unknown data type ${n}`);a=new Uint8Array(r)}for(let e=0;e=1||0===s);const i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*r*i,t=this.mean+this.stdDev*a*i,this.truncated&&!this.isValidTruncated(e)||(n=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class wc{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const a=r||Math.random();this.randu=bc.alea(a.toString()),this.randn=new vc(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,r,a,s;for(;;){do{r=this.randn.nextValue(),s=1+this.c*r}while(s<=0);if(s*=s*s,e=r*r,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),a=this.randu(),anull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=bc.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const xc=ja({randomGamma_:function(e,t,n=1,r="float32",a){if(null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error(`Unsupported data type ${r}`);const s=new wc(t,n,r,a),i=Ls(e,r);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),Ac(t,0)}}),Rc=ja({reverse2d_:function(e,t){const n=Wa(e,"x","reverse");return Z(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),Ac(n,t)}}),Fc=ja({reverse3d_:function(e,t){const n=Wa(e,"x","reverse");return Z(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),Ac(n,t)}}),Oc=ja({reverse4d_:function(e,t){const n=Wa(e,"x","reverse");return Z(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),Ac(n,t)}}),Bc=ja({round_:function(e){const t={x:Wa(e,"x","round")};return Fa.runKernel(ar,t)}}),Mc=ja({rsqrt_:function(e){const t={x:Wa(e,"x","rsqrt")};return Fa.runKernel(sr,t)}}),$c=ja({selu_:function(e){const t={x:Wa(e,"x","selu")};return Fa.runKernel(lr,t)}}),Pc=ja({separableConv2d_:function(e,t,n,r,a,s=[1,1],i="NHWC"){const o=Wa(e,"x","separableConv2d"),l=Wa(t,"depthwiseFilter","separableConv2d"),u=Wa(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=vl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Z(4===c.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`)),Z(4===l.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`)),Z(4===u.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`)),Z(1===u.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`)),Z(1===u.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`));const f=l.shape[2],d=l.shape[3];Z(u.shape[2]===f*d,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${f*d}, but got ${u.shape[2]}.`));const p=Zl(c,l,r,a,i,s),m=zl(p,u,1,"valid",i);return h?vl(m,[m.shape[1],m.shape[2],m.shape[3]]):m}}),Lc=async function(e,t){const n=Wa(e,"x","setdiff1d"),r=Wa(t,"y","setdiff1d");Z(n.dtype===r.dtype,(()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${r.dtype}).`)),Z(1===n.rank,(()=>`x should be 1D tensor, but got x (${n.shape}).`)),Z(1===r.rank,(()=>`y should be 1D tensor, but got y (${r.shape}).`));const a=await n.data(),s=await r.data(),i=new Set(s);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${r.rank} tensor`)),El(r,[t],[n])}}),jc=ja({slice2d_:function(e,t,n){const r=Wa(e,"x","slice2d");return Z(2===r.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`)),El(r,t,n)}}),Hc=ja({slice3d_:function(e,t,n){const r=Wa(e,"x","slice3d");return Z(3===r.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`)),El(r,t,n)}}),Gc=ja({slice4d_:function(e,t,n){const r=Wa(e,"x","slice4d");return Z(4===r.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`)),El(r,t,n)}}),qc=ja({softmax_:function(e,t=-1){const n=Wa(e,"logits","softmax","float32");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);const r={logits:n},a={dim:t};return Fa.runKernel(vr,r,a)}}),Kc=ja({fft_:function(e){Z("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return Fa.runKernel(Ht,t)}}),Xc=ja({ifft_:function(e){Z("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return Fa.runKernel(nn,t)}}),Yc=ja({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const a=vl(e,[n,t]);r=Xc(a)}else{const a=[n,2*(t-1)],s=vl(Sc(e),[n,t]),i=vl(gu(e),[n,t]),o=Ac(El(s,[0,1],[n,t-2]),1),l=wo(Ac(El(i,[0,1],[n,t-2]),1),To(-1)),u=xl([s,o],1),c=xl([i,l],1),h=vl(Ha(u,c),[a[0],a[1]]);r=Xc(h)}if(r=Sc(r),3===e.rank&&0!==e.shape[0]){const t=r,n=e.shape[0];r=vl(r,[n,r.shape[0]/n,r.shape[1]]),t.dispose()}return r}}),Jc=ja({split_:function(e,t,n=0){const r={x:Wa(e,"x","split")},a={numOrSizeSplits:t,axis:n};return Fa.runKernel(br,r,a)}}),Zc=ja({rfft_:function(e,t){Z("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let n=e.shape[e.shape.length-1];const r=e.size/n;let a;if(null!=t&&t0)),s=e.shape.map((e=>e));s[e.shape.length-1]=t,a=El(e,r,s),n=t}else if(null!=t&&t>n){const r=e.shape.map((e=>e));r[e.shape.length-1]=t-n,a=xl([e,ac(r)],e.shape.length-1),n=t}else a=e;const s=ko(a),i=vl(Ha(a,s),[r,n]),o=Kc(i),l=Math.floor(n/2)+1,u=Sc(o),c=gu(o),h=Jc(u,[l,n-l],u.shape.length-1),f=Jc(c,[l,n-l],c.shape.length-1),d=a.shape.slice();return d[a.shape.length-1]=l,vl(Ha(h[0],f[0]),d)}}),Qc=ja({squaredDifference_:function(e,t){let n=Wa(e,"a","squaredDifference"),r=Wa(t,"b","squaredDifference");[n,r]=Ca(n,r),Uo(n.shape,r.shape);const a={a:n,b:r};return Fa.runKernel(wr,a,{})}}),eh=ja({squeeze_:function(e,t){const n=Wa(e,"x","squeeze");return vl(n,de(n.shape,t).newShape)}}),th=ja({stack_:function(e,t=0){const n=Ua(e,"tensors","stack","string_or_numeric");Z(n.length>=1,(()=>"Pass at least one tensor to tf.stack")),n.length>0&&Z(t<=n[0].rank,(()=>"Axis must be <= rank of the tensor"));const r=n,a={axis:t};return Fa.runKernel(Wn,r,a)}}),nh=ja({step_:function(e,t=0){const n={x:Wa(e,"x","step")},r={alpha:t};return Fa.runKernel(Or,n,r)}}),rh=ja({stridedSlice_:function(e,t,n,r,a=0,s=0,i=0,o=0,l=0){const u={x:Wa(e,"x","stridedSlice")},c={begin:t,end:n,strides:r,beginMask:a,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return Fa.runKernel(Er,u,c)}}),ah=ja({tan_:function(e){const t={x:Wa(e,"x","tan")};return Fa.runKernel(Cr,t)}});function sh(e,t){ee(e);const n=Pa(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ga(e,null,n,t)}function ih(e,t,n){if(ee(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const r=Pa(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Ga(e,t,r,n)}function oh(e,t,n){if(ee(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const r=Pa(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Ga(e,t,r,n)}function lh(e,t,n){if(ee(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const r=Pa(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Ga(e,t,r,n)}function uh(e,t,n){if(ee(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const r=Pa(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return Ga(e,t=t||r,r,n)}const ch=ja({topk_:function(e,t=1,n=!0){const r=Wa(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");const a=r.shape[r.shape.length-1];if(t>a)throw new Error(`'k' passed to topk() must be <= the last dimension (${a}) but got ${t}`);const s={x:r},i={k:t,sorted:n},[o,l]=Fa.runKernel(Ir,s,i);return{values:o,indices:l}}}),hh=ja({truncatedNormal_:function(e,t=0,n=1,r,a){if(null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");const s=new vc(t,n,r,!0,a),i=Ls(e,r);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const r={x:n},a={axis:t},[s,i]=Fa.runKernel(Ar,r,a);return{values:s,indices:i}}}),dh=ja({unsortedSegmentSum_:function(e,t,n){const r=Wa(e,"x","unsortedSegmentSum"),a=Wa(t,"segmentIds","unsortedSegmentSum","int32");Z(se(n),(()=>"numSegments must be of dtype int"));const s={x:r,segmentIds:a},i={numSegments:n};return Fa.runKernel(Rr,s,i)}}),ph=ja({unstack_:function(e,t=0){const n=Wa(e,"x","unstack","string_or_numeric");Z(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`));const r={value:n},a={axis:t};return Fa.runKernel(Tr,r,a)}});function mh(e,t=!0,n,r){return Fa.makeVariable(e,t,n,r)}function gh(e,t){const n=[];for(let e=0;e0,(()=>"mask cannot be scalar")),Q(o.slice(s,s+i),a.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let e=s;e"Shape mismatch in v and x"));const l=To(1),u=$o(l,o);let c=wo($o(i,s),u);if(a){Z(null!=r,(()=>"When using zeroDebias: true, step is required."));const e=Wa(r,"step","movingAverage");c=vo(c,$o(l,Mo(o,e)))}return yo(s,c)}}),$h=ja({scatterND_:function(e,t,n){const r=Wa(e,"indices","scatterND","int32"),a=Wa(t,"updates","scatterND");gi(a,r,n);const s={indices:r,updates:a},i={shape:n};return Fa.runKernel(ir,s,i)}}),Ph=ja({sparseToDense_:function(e,t,n,r=0){const a=Wa(e,"sparseIndices","sparseToDense","int32"),s=Wa(t,"sparseValues","sparseToDense"),i=Wa(r,"defaultValue","sparseToDense",s.dtype);!function(e,t,n,r){if("int32"!==e.dtype)throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const a=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);const i=t.size;if(0!==t.rank&&(1!==t.rank||i!==a))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${a}]`);if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(a,s,n,i);const o={sparseIndices:a,sparseValues:s,defaultValue:i},l={outputShape:n};return Fa.runKernel(kr,o,l)}}),Lh=ja({gatherND_:function(e,t){const n=Wa(t,"indices","gatherND","int32"),r={params:Wa(e,"x","gatherND"),indices:n};return Fa.runKernel(Zt,r)}}),zh=ja({dropout_:function(e,t,n,r){const a=Wa(e,"x","dropout");if(Z("float32"===a.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${a.dtype} tensor instead.`)),Z(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof ma?a.clone():a;const s=function(e,t){if(null==t)return e.shape.slice();if(ae(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let r=0;r1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${r.rank}`)),Z(r.rank-1===a.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${r.rank} and targets rank ${a.rank}`)),Q(r.shape.slice(0,r.shape.length-1),a.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const s=r.shape[r.shape.length-1];Z(n>0&&n<=s,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`));const i=await r.data(),o=await a.data(),[l,u]=[i.length/s,s],c=pe("bool",l);for(let e=0;et.value-e.value)),c[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`)),Z(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),Z(4===n.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`));const u="NHWC"===s?o.shape[3]:o.shape[1],c="NHWC"===s?l.shape[3]:l.shape[1];Z(u===n[2],(()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`)),Z(c===n[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`)),null!=i&&Z(se(a),(()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const h={x:o,dy:l},f={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,filterShape:n};return Fa.runKernel(vt,h,f)}});function Hh(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return wo(e,nh(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Gh(e,t){let n=t;const r=Wo(e.shape,t.shape);return r.length>0&&(n=Tu(n,r)),vl(n,e.shape)}function qh(e,t,n,r){if("linear"===t)return e;if("relu"===t)return Ic(e);if("elu"===t)return su(e);if("relu6"===t)return Dc(e);if("prelu"===t)return mc(e,n);if("leakyrelu"===t)return wu(e,r);throw new Error(`Unknown fused activation ${t}.`)}const Kh=(e,t)=>!(e>0)||"linear"===t,Xh=ja({fusedConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",!1===Kh(Fa.state.gradientDepth,l)){let h=zl(e,t,n,r,a,s,i);return null!=o&&(h=yo(h,o)),qh(h,l,u,c)}const h=Wa(e,"x","conv2d"),f=Wa(t,"filter","conv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=vl(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Z(4===d.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${d.rank}.`)),Z(4===f.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${f.rank}.`)),null!=i&&Z(se(r),(()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Z(d.shape[3]===f.shape[2],(()=>`Error in conv2d: depth of input (${d.shape[3]}) must match input depth for filter ${f.shape[2]}.`)),Z(yl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Z("NHWC"===a,(()=>`Error in conv2d: got dataFormat of ${a} but only NHWC is currently supported.`));const m=ul(d.shape,f.shape,n,s,r,i);let g,y;null!=o&&(g=Wa(o,"bias","fused conv2d"),[g]=Ca(g,h),Uo(m.outShape,g.shape)),null!=u&&(y=Wa(u,"prelu weights","fused conv2d"));const b=(e,t)=>{const[a,i,o,u]=t,c=Hh(e,o,l);Z(gl(s),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const h=[Ul(i.shape,c,a,n,r),jh(i,c,a.shape,n,r)];if(null!=u){const e=Gh(u,c);h.push(e)}return h},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Do(((e,t,n)=>{let r=Fa.runKernel(Pr,v,w);return n([t,e,r]),p&&(r=vl(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Do(((e,t,n,r)=>{let a=Fa.runKernel(Pr,v,w);return r([t,e,a,n]),p&&(a=vl(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Yh=ja({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r,a,s=[1,1],i){let o=e;3===e.rank&&(o=vl(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=vl(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={x:o,dy:l},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,filterShape:n};return Fa.runKernel(Tt,u,c)}}),Jh=ja({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r,a,s=[1,1],i){let o=t,l=!1;3===t.rank&&(l=!0,o=vl(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={dy:o,filter:n},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,inputShape:e},h=Fa.runKernel(Rt,u,c);return l?vl(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}),Zh=ja({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(!1===Kh(Fa.state.gradientDepth,l)){let h=Zl(e,t,n,r,a,s,i);return null!=o&&(h=yo(h,o)),qh(h,l,u,c)}const h=Wa(e,"x","depthwiseConv2d"),f=Wa(t,"filter","depthwiseConv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=vl(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Z(4===d.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${d.rank}.`)),Z(4===f.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${f.rank}.`)),Z(d.shape[3]===f.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${d.shape[3]}) must match the inChannels dimension in filter ${f.shape[2]}.`)),null==s&&(s=[1,1]),Z(yl(n,s),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),null!=i&&Z(se(r),(()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${r}.`));const m=ul(d.shape,f.shape,n,s,r,i,!0);let g,y;null!=o&&(g=Wa(o,"bias","fused conv2d"),[g]=Ca(g,h),Uo(m.outShape,g.shape)),null!=u&&(y=Wa(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Z(gl(s),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`));const[a,o,u,c]=t,h=Hh(e,u,l),f=Jh(o.shape,h,a,n,r,s,i),d=Yh(o,h,a.shape,n,r,s,i);return null!=c?[f,d,Gh(g,h)]:[f,d]},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Do(((e,t,n)=>{let r=Fa.runKernel(Lr,v,w);return n([t,e,r]),p&&(r=vl(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Do(((e,t,n,r)=>{let a=Fa.runKernel(Lr,v,w);return r([t,e,a,n]),p&&(a=vl(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Qh=ja({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:a,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(!1===Kh(Fa.state.gradientDepth,s)){let l=ii(e,t,n,r);return null!=a&&(l=yo(l,a)),qh(l,s,i,o)}let l=Wa(e,"a","fused matMul"),u=Wa(t,"b","fused matMul");[l,u]=Ca(l,u);const c=n?l.shape[l.rank-2]:l.shape[l.rank-1],h=r?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-1]:l.shape[l.rank-2],d=r?u.shape[u.rank-2]:u.shape[u.rank-1],p=l.shape.slice(0,-2),m=u.shape.slice(0,-2),g=ne(p),y=ne(m);Z(l.rank>=2&&u.rank>=2&&l.rank===u.rank,(()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`)),Z(ae(p,m),(()=>`Error in fused matMul: outer dimensions (${p}) and (${m}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`)),Z(c===h,(()=>`Error in fused matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${r} must match.`));const b=l.shape.slice(0,-2).concat([f,d]),v=vl(l,n?[g,c,f]:[g,f,c]),w=vl(u,r?[y,d,h]:[y,h,d]);let _,x;null!=a&&(_=Wa(a,"bias","fused matMul"),[_]=Ca(_,l),Uo(b,_.shape)),null!=i&&(x=Wa(i,"prelu weights","fused matMul"));const k=(e,t)=>{const[i,o,l,u]=t,c=Hh(vl(e,l.shape),l,s);let h,f;return n||r?!n&&r?(h=ii(c,o,!1,!1),f=ii(c,i,!0,!1)):n&&!r?(h=ii(o,c,!1,!0),f=ii(i,c,!1,!1)):(h=ii(o,c,!0,!0),f=ii(c,i,!0,!0)):(h=ii(c,o,!1,!0),f=ii(i,c,!0,!1)),null!=a?[h,f,Gh(u,c)]:[h,f]},E={a:v,b:w,bias:_,preluActivationWeights:x},C={transposeA:n,transposeB:r,activation:s,leakyreluAlpha:o};return null==a?Do(((e,t,n)=>{const r=Fa.runKernel($r,E,C);return n([e,t,r]),{value:vl(r,b),gradFunc:k}}))(v,w):Do(((e,t,n,r)=>{const a=Fa.runKernel($r,E,C);return r([e,t,a,n]),{value:vl(a,b),gradFunc:k}}))(v,w,_)}}),ef=ja({hammingWindow_:function(e){return Uh(e,.54,.46)}}),tf=ja({hannWindow_:function(e){return Uh(e,.5,.5)}}),nf=ja({frame_:function(e,t,n,r=!1,a=0){let s=0;const i=[];for(;s+t<=e.size;)i.push(El(e,s,t)),s+=n;if(r)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`)),Z(2===o.rank&&4===o.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`)),Z(1===l.rank&&l.shape[0]===u,(()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`)),Z(2===r.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${r.length}.`)),Z(r[0]>=1&&r[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${r}`)),Z("bilinear"===a||"nearest"===a,(()=>`method must be bilinear or nearest, but was ${a}`));const c={image:i,boxes:o,boxInd:l},h={method:a,extrapolationValue:s,cropSize:r};return Fa.runKernel(Nt,c,h)}}),sf=ja({flipLeftRight_:function(e){const t=Wa(e,"image","flipLeftRight","float32");Z(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const n={image:t};return Fa.runKernel(qt,n,{})}}),of=ja({rotateWithOffset_:function(e,t,n=0,r=.5){const a=Wa(e,"image","rotateWithOffset","float32");Z(4===a.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${a.rank}.`));const s={image:a},i={radians:t,fillValue:n,center:r};return Fa.runKernel(Mr,s,i)}});function lf(e,t,n,r,a,s){null==r&&(r=.5),null==a&&(a=Number.NEGATIVE_INFINITY),null==s&&(s=0);const i=e.shape[0];return n=Math.min(n,i),Z(0<=r&&r<=1,(()=>`iouThreshold must be in [0, 1], but was '${r}'`)),Z(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),Z(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),Z(1===t.rank,(()=>"scores must be a 1D tensor")),Z(t.shape[0]===i,(()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`)),Z(0<=s&&s<=1,(()=>`softNmsSigma must be in [0, 1], but was '${s}'`)),{maxOutputSize:n,iouThreshold:r,scoreThreshold:a,softNmsSigma:s}}const uf=ja({nonMaxSuppression_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=Wa(e,"boxes","nonMaxSuppression"),i=Wa(t,"scores","nonMaxSuppression"),o=lf(s,i,n,r,a),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:r=o.iouThreshold,scoreThreshold:a=o.scoreThreshold};return Fa.runKernel(Mn,{boxes:s,scores:i},l)}});function cf(e,t,n){const r=function(e,t,n){return function(e,t,n){let r=0,a=e.length,s=0,i=!1;for(;r>>1);const o=n(t,e[s]);o>0?r=s+1:(a=s,i=!o)}return i?r:-r-1}(e,t,n||hf)}(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function hf(e,t){return e>t?1:ea&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(bf);const c=s>0?-.5/s:0,h=[],f=[];for(;h.length0;){const t=u.pop(),{score:n,boxIndex:s,suppressBeginIndex:i}=t;if(n=i;--n){const i=gf(e,s,h[n]);if(i>=r){o=!0;break}if(t.score=t.score*yf(r,c,i),t.score<=a)break}t.suppressBeginIndex=h.length,o||(t.score===n?(h.push(s),f.push(t.score)):t.score>a&&cf(u,t,bf))}const d=h.length,p=n-d;o&&p>0&&(h.push(...new Array(p).fill(0)),f.push(...new Array(p).fill(0)));const m={selectedIndices:h};return i&&(m.selectedScores=f),l&&(m.validOutputs=d),m}function gf(e,t,n){const r=e.subarray(4*t,4*t+4),a=e.subarray(4*n,4*n+4),s=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),o=Math.max(r[0],r[2]),l=Math.max(r[1],r[3]),u=Math.min(a[0],a[2]),c=Math.min(a[1],a[3]),h=Math.max(a[0],a[2]),f=Math.max(a[1],a[3]),d=(o-s)*(l-i),p=(h-u)*(f-c);if(d<=0||p<=0)return 0;const m=Math.max(s,u),g=Math.max(i,c),y=Math.min(o,h),b=Math.min(l,f),v=Math.max(y-m,0)*Math.max(b-g,0);return v/(d+p-v)}function yf(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function bf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const vf=ja({nonMaxSuppressionWithScore_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=Wa(e,"boxes","nonMaxSuppression"),o=Wa(t,"scores","nonMaxSuppression"),l=lf(i,o,n,r,a,s),u={boxes:i,scores:o},c={maxOutputSize:n=l.maxOutputSize,iouThreshold:r=l.iouThreshold,scoreThreshold:a=l.scoreThreshold,softNmsSigma:s=l.softNmsSigma},h=Fa.runKernel(Pn,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}}),wf=ja({nonMaxSuppressionPadded_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=Wa(e,"boxes","nonMaxSuppression"),o=Wa(t,"scores","nonMaxSuppression"),l=lf(i,o,n,r,a,null),u={boxes:i,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:s},h=Fa.runKernel($n,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}}),_f=ja({resizeBilinear_:function(e,t,n=!1,r=!1){const a=Wa(e,"images","resizeBilinear");Z(3===a.rank||4===a.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${a.rank}.`)),Z(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),Z(!1===r||!1===n,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=vl(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Fa.runKernel(er,o,l);return i?vl(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),xf=ja({resizeNearestNeighbor_:function(e,t,n=!1,r=!1){const a=Wa(e,"images","resizeNearestNeighbor");Z(3===a.rank||4===a.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${a.rank}.`)),Z(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),Z("float32"===a.dtype||"int32"===a.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),Z(!1===r||!1===n,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=vl(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=Fa.runKernel(Zn,o,l);return i?vl(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),kf=ja({bandPart_:function(e,t,n){Z(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),Z(n%1==0,(()=>`bandPart(): numUpper must be an integer, got ${n}.`));const r=Wa(e,"a","bandPart");Z(r.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${r.rank}.`));const a=r.shape,[s,i]=r.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);const o=vl(Cc(0,s,1,"int32"),[-1,1]),l=Cc(0,i,1,"int32"),u=$o(o,l),c=Uu(xu(u,To(+t,"int32")),mu(u,To(-n,"int32"))),h=ac([s,i],r.dtype);return vl(th(ph(vl(r,[-1,s,i])).map((e=>nu(c,e,h)))),a)}}),Ef=ja({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,Z(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const n=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${n})`))}else t=!0,e=Jc(e,e.shape[0],0).map((e=>eh(e,[0])));Z(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const n=[],r=e;for(let t=0;t{let e=r[t];if(t>0)for(let r=0;r{Z(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const n=e.shape[0],r=e.shape[1];let a=hu(n),s=Ws(e);const i=ih([[1]],[1,1]);let o=Ws(i);const l=n>=r?r:n;for(let e=0;e{const t=El(s,[e,e],[n-e,1]),l=Bh(t),u=El(s,[e,e],[1,1]),c=nu(pu(u,0),ih([[-1]]),ih([[1]])),h=$o(u,wo(c,l)),f=vo(t,h);o=1===f.shape[0]?Ws(i):xl([i,El(f,[1,0],[f.shape[0]-1,f.shape[1]])],0);const d=Nu(vo(ii(c,h),l)),p=El(s,[e,0],[n-e,r]),m=wo(d,o),g=li(o);if(0===e)s=$o(p,ii(m,ii(g,p)));else{const t=$o(p,ii(m,ii(g,p)));s=xl([El(s,[0,0],[e,r]),t],0)}const y=li(m),b=El(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=$o(b,ii(ii(b,o),y));else{const t=$o(b,ii(ii(b,o),y));a=xl([El(a,[0,0],[n,e]),t],1)}return[o,s,a]})),ao([t,l,u])}return!t&&n>r&&(a=El(a,[0,0],[n,r]),s=El(s,[0,0],[r,r])),[a,s]}))}const Sf=ja({qr_:function(e,t=!1){if(Z(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return Cf(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),r=ph(vl(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],s=[];return r.forEach((e=>{const[n,r]=Cf(e,t);a.push(n),s.push(r)})),[vl(th(a,0),e.shape),vl(th(s,0),e.shape)]}}});var Nf;!function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(Nf||(Nf={}));const If=ja({computeWeightedLoss_:function(e,t,n=Nf.SUM_BY_NONZERO_WEIGHTS){const r=Wa(e,"losses","computeWeightedLoss");let a=null;null!=t&&(a=Wa(t,"weights","computeWeightedLoss"));const s=null==a?r:wo(r,a);if(n===Nf.NONE)return s;if(n===Nf.SUM)return Tu(s);if(n===Nf.MEAN){if(null==a)return Xu(s);{const e=r.size/a.size,t=vo(Tu(s),Tu(a));return e>1?vo(t,To(e)):t}}if(n===Nf.SUM_BY_NONZERO_WEIGHTS){if(null==a)return vo(Tu(s),To(r.size));{const e=wo(a,sc(r.shape)),t=zs(Tu(rc(e,To(0))),"float32");return vo(Tu(s),t)}}throw Error(`Unknown reduction: ${n}`)}}),Df=ja({absoluteDifference_:function(e,t,n,r=Nf.SUM_BY_NONZERO_WEIGHTS){const a=Wa(e,"labels","absoluteDifference"),s=Wa(t,"predictions","absoluteDifference");let i=null;null!=n&&(i=Wa(n,"weights","absoluteDifference")),Q(a.shape,s.shape,"Error in absoluteDifference: ");const o=Lo($o(a,s));return If(o,i,r)}}),Af=ja({cosineDistance_:function(e,t,n,r,a=Nf.SUM_BY_NONZERO_WEIGHTS){const s=Wa(e,"labels","cosineDistance"),i=Wa(t,"predictions","cosineDistance");let o=null;null!=r&&(o=Wa(r,"weights","cosineDistance")),Q(s.shape,i.shape,"Error in cosineDistance: ");const l=To(1),u=$o(l,Tu(wo(s,i),n,!0));return If(u,o,a)}}),Tf=ja({hingeLoss_:function(e,t,n,r=Nf.SUM_BY_NONZERO_WEIGHTS){let a=Wa(e,"labels","hingeLoss");const s=Wa(t,"predictions","hingeLoss");let i=null;null!=n&&(i=Wa(n,"weights","hingeLoss")),Q(a.shape,s.shape,"Error in hingeLoss: ");const o=To(1);a=$o(wo(To(2),a),o);const l=Ic($o(o,wo(a,s)));return If(l,i,r)}}),Rf=ja({huberLoss_:function(e,t,n,r=1,a=Nf.SUM_BY_NONZERO_WEIGHTS){const s=Wa(e,"labels","huberLoss"),i=Wa(t,"predictions","huberLoss");let o=null;null!=n&&(o=Wa(n,"weights","huberLoss")),Q(s.shape,i.shape,"Error in huberLoss: ");const l=To(r),u=Lo($o(i,s)),c=Ju(u,l),h=$o(u,c),f=yo(wo(To(.5),xo(c)),wo(l,h));return If(f,o,a)}}),Ff=ja({logLoss_:function(e,t,n,r=1e-7,a=Nf.SUM_BY_NONZERO_WEIGHTS){const s=Wa(e,"labels","logLoss"),i=Wa(t,"predictions","logLoss");let o=null;null!=n&&(o=Wa(n,"weights","logLoss")),Q(s.shape,i.shape,"Error in logLoss: ");const l=To(1),u=To(r),c=Nu(wo(s,Cu(yo(i,u)))),h=wo($o(l,s),Cu(yo($o(l,i),u))),f=$o(c,h);return If(f,o,a)}}),Of=ja({meanSquaredError_:function(e,t,n,r=Nf.SUM_BY_NONZERO_WEIGHTS){const a=Wa(e,"labels","meanSquaredError"),s=Wa(t,"predictions","meanSquaredError");let i=null;null!=n&&(i=Wa(n,"weights","meanSquaredError")),Q(a.shape,s.shape,"Error in meanSquaredError: ");const o=Qc(a,s);return If(o,i,r)}}),Bf=ja({sigmoidCrossEntropy_:function(e,t,n,r=0,a=Nf.SUM_BY_NONZERO_WEIGHTS){let s=Wa(e,"multiClassLabels","sigmoidCrossEntropy");const i=Wa(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=Wa(n,"weights","sigmoidCrossEntropy")),Q(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){const e=To(r),t=To(1),n=To(.5);s=yo(wo(s,$o(t,e)),wo(n,e))}const l=function(e,t){const n=Wa(e,"labels","sigmoidCrossEntropyWithLogits"),r=Wa(t,"logits","sigmoidCrossEntropyWithLogits");Q(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const a=Ic(r),s=wo(r,n),i=Su(ou(Nu(Lo(r))));return yo($o(a,s),i)}(s,i);return If(l,o,a)}}),Mf=ja({softmaxCrossEntropy_:function(e,t,n,r=0,a=Nf.SUM_BY_NONZERO_WEIGHTS){let s=Wa(e,"onehotLabels","softmaxCrossEntropy");const i=Wa(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=Wa(n,"weights","softmaxCrossEntropy")),Q(s.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){const e=To(r),t=To(1),n=To(s.shape[1]);s=yo(wo(s,$o(t,e)),vo(e,n))}const l=function(e,t,n=-1){if(-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Do(((e,t,r)=>{const a=Wu(t,[n],!0),s=$o(zs(t,"float32"),a);r([e,s]);const i=Nu(wo(s,e));return{value:Tu(i,[n]),gradFunc:(e,t)=>{const[r,a]=t,s=Mu(e.shape,[n]);return[wo(vl(e,s),$o(zs(r,"float32"),ou(a))),wo(vl(e,s),$o(ou(a),zs(r,"float32")))]}}}))(e,t)}(s,i);return If(l,o,a)}}),$f={fft:Kc,ifft:Xc,rfft:Zc,irfft:Yc},Pf={hammingWindow:ef,hannWindow:tf,frame:nf,stft:rf},Lf={flipLeftRight:sf,resizeNearestNeighbor:xf,resizeBilinear:_f,rotateWithOffset:of,cropAndResize:af,nonMaxSuppression:uf,nonMaxSuppressionAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=Wa(e,"boxes","nonMaxSuppressionAsync"),i=Wa(t,"scores","nonMaxSuppressionAsync"),o=lf(s,i,n,r,a);n=o.maxOutputSize,r=o.iouThreshold,a=o.scoreThreshold;const l=await Promise.all([s.data(),i.data()]),u=l[0],c=l[1],{selectedIndices:h}=ff(u,c,n,r,a);return s!==e&&s.dispose(),i!==t&&i.dispose(),sh(h,"int32")},nonMaxSuppressionWithScore:vf,nonMaxSuppressionWithScoreAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=Wa(e,"boxes","nonMaxSuppressionAsync"),o=Wa(t,"scores","nonMaxSuppressionAsync"),l=lf(i,o,n,r,a,s);n=l.maxOutputSize,r=l.iouThreshold,a=l.scoreThreshold,s=l.softNmsSigma;const u=await Promise.all([i.data(),o.data()]),c=u[0],h=u[1],{selectedIndices:f,selectedScores:d}=pf(c,h,n,r,a,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:sh(f,"int32"),selectedScores:sh(d)}},nonMaxSuppressionPadded:wf,nonMaxSuppressionPaddedAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=Wa(e,"boxes","nonMaxSuppressionAsync"),o=Wa(t,"scores","nonMaxSuppressionAsync"),l=lf(i,o,n,r,a,null),u=l.maxOutputSize,c=l.iouThreshold,h=l.scoreThreshold,[f,d]=await Promise.all([i.data(),o.data()]),{selectedIndices:p,validOutputs:m}=df(f,d,u,c,h,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:sh(p,"int32"),validOutputs:To(m,"int32")}}},zf={bandPart:kf,gramSchmidt:Ef,qr:Sf},Wf={absoluteDifference:Df,computeWeightedLoss:If,cosineDistance:Af,hingeLoss:Tf,huberLoss:Rf,logLoss:Ff,meanSquaredError:Of,sigmoidCrossEntropy:Bf,softmaxCrossEntropy:Mf};class Uf{static sgd(e){return new Ho(e)}static momentum(e,t,n=!1){return new Go(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,a=!1){return new qo(e,t,n,r,a)}static adam(e=.001,t=.9,n=.999,r=null){return new Po(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Fo(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,a=0){return new jo(e,t,n,r,a)}static adagrad(e,t=.1){return new Bo(e,t)}}const Vf={sgd:Uf.sgd,momentum:Uf.momentum,adadelta:Uf.adadelta,adagrad:Uf.adagrad,rmsprop:Uf.rmsprop,adamax:Uf.adamax,adam:Uf.adam},jf="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function Hf(){return new Promise((e=>jf((()=>e()))))}function Gf(e,t){const n=e[0].length;e.forEach(((e,t)=>{Z(e.length===n,(()=>`Error in concat${n}D: rank of tensors[${t}] must be the same as the rank of the rest (${n})`))})),Z(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`));const r=e[0];e.forEach(((e,a)=>{for(let s=0;s`Error in concat${n}D: Shape of tensors[${a}] (${e}) does not match the shape of the rest (${r}) along the non-concatenated axis ${a}.`))}))}function qf(e,t){const n=e[0].slice();for(let r=1;r=2*t+1||r%2==1?a.push(r):n.push(r);r.push(...n),r.push(0),r.push(...a)}return r}function Qf(e,t,n,r=!0){const a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(let n=1;n"Number of splits must evenly divide the axis.")),r=new Array(t).fill(e.shape[n]/t);else{Z(t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0)<=1,(()=>"There should be only one negative value in split array."));const a=t.indexOf(-1);if(-1!==a){const r=t.reduce(((e,t)=>t>0?e+t:e));t[a]=e.shape[n]-r}Z(e.shape[n]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),r=t}return r}function _d(e,t){let n,r=!1;for(e<=Kf?(n=e,r=!0):n=Ne(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=Ne(e,n+1);return n}function xd(e,t,n){const r=[],a=e.length;for(let s=0;sa))throw new Error(`Expect batchDims in the range of [-${a}, ${a}], but got ${r}`);if(r<0&&(r+=a),r>s)throw new Error(`batchDims (${r}) must be less than rank(x) (\n ${s}).`);if(nca(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Nd(e){return e.map((e=>ua(e)))}const Id={kernelName:je,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,nh(zs(n,"float32"),-1))}}},Dd={kernelName:He,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=xo(zs(n,"float32")),r=_o($o(To(1),t));return Nu(vo(e,r))}}}},Ad={kernelName:Ge,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=_o($o(xo(zs(n,"float32")),1));return vo(e,t)}}}},Td={kernelName:qe,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{let t=e;const r=Wo(n.shape,a);return r.length>0&&(t=Tu(t,r)),vl(t,n.shape)},b:()=>{let t=e;const n=Wo(r.shape,a);return n.length>0&&(t=Tu(t,n)),vl(t,r.shape)}}}},Rd={kernelName:Ke,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,r)=>{n[r]=()=>e.clone()})),n}},Fd={kernelName:Je,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(n)}}},Od={kernelName:Ze,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>ko(n)}}},Bd={kernelName:Qe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,_o($o(To(1),xo(zs(n,"float32")))))}}},Md={kernelName:et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=_o(yo(To(1),xo(zs(n,"float32"))));return vo(e,t)}}}},$d={kernelName:rt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=yo(xo(n),xo(r));let s=wo(e,vo(r,t));const i=Wo(n.shape,a);return i.length>0&&(s=Tu(s,i)),vl(s,n.shape)},b:()=>{const t=yo(xo(n),xo(r));let s=Nu(wo(e,vo(n,t)));const i=Wo(r.shape,a);return i.length>0&&(s=Tu(s,i)),vl(s,r.shape)}}}},Pd={kernelName:tt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,yo(xo(zs(n,"float32")),1))}}},Ld={kernelName:nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,$o(To(1),xo(zs(n,"float32"))))}}},zd=ja({avgPool3dGrad_:function(e,t,n,r,a=[1,1,1],s,i){const o=Wa(e,"dy","avgPool3dGrad"),l=Wa(t,"input","avgPool3dGrad");let u=o,c=l,h=!1;4===l.rank&&(h=!0,u=vl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),c=vl(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),Z(5===u.rank,(()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`)),Z(5===c.rank,(()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`)),Z(yl(r,a),(()=>`Error in avgPool3dGrad: Either strides or dilations must be 1. Got strides ${r} and dilations '${a}'`)),null!=i&&Z(se(s),(()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const f={dy:u,input:c},d={filterSize:n,strides:r,dilations:a,pad:s,dimRoundingMode:i},p=Fa.runKernel(ot,f,d);return h?vl(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}}),Wd={kernelName:it,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,dilations:i,pad:o,dimRoundingMode:l}=n,u=null==i?[1,1,1]:i;return{x:()=>zd(e,r,a,s,u,o,l)}}},Ud=ja({avgPoolGrad_:function(e,t,n,r,a){const s=Wa(e,"dy","avgPoolGrad"),i=Wa(t,"input","avgPoolGrad");Z(i.rank===s.rank,(()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`));let o=i,l=s,u=!1;3===i.rank&&(u=!0,o=vl(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=vl(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Z(4===l.rank,(()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`)),Z(4===o.rank,(()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`));const c={dy:l,input:o},h={filterSize:n,strides:r,pad:a},f=Fa.runKernel(st,c,h);return u?vl(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),Vd={kernelName:at,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i}=n;return{x:()=>Ud(e,r,a,s,i)}}},jd={kernelName:lt,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,a]=t,{transposeA:s,transposeB:i}=n;return s||i?!s&&i?{a:()=>ii(e,a,!1,!1),b:()=>ii(e,r,!0,!1)}:s&&!i?{a:()=>ii(a,e,!1,!0),b:()=>ii(r,e,!1,!1)}:{a:()=>ii(a,e,!0,!0),b:()=>ii(e,r,!0,!0)}:{a:()=>ii(e,a,!1,!0),b:()=>ii(r,e,!0,!1)}}},Hd={kernelName:ut,gradFunc:(e,t,n)=>{const{blockShape:r,crops:a}=n;return{x:()=>dc(e,r,a)}}},Gd={kernelName:ht,gradFunc:(e,t,n)=>{const r=n,a=r.inputShape,s=r.shape,i=Array.from(s);for(let e=a.length-1;e>=0;e--)if(a[e]===s[e])i[e]=1;else if(1!==a[e])throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${s}].`);const o=[];for(let e=0;e1&&o.push(e);return{x:()=>Tu(e,o,!0)}}},qd={kernelName:ft,gradFunc:e=>({x:()=>e.clone()})},Kd={kernelName:dt,gradFunc:e=>({x:()=>ko(e)})},Xd={kernelName:pt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:a,clipValueMax:s}=n;return{x:()=>nu(Uu(mu(r,a),xu(r,s)),e,ko(e))}}},Yd={kernelName:gt,inputsToSave:["x"],gradFunc:Id.gradFunc},Jd={kernelName:yt,saveAllInputs:!0,gradFunc:(e,t,n)=>{const r=t.map((e=>e.shape)),{axis:a}=n,s=fe(a,t[0].shape)[0],i=r.map((e=>e[s]));return Jc(e,i,s).map((e=>()=>e))}},Zd={kernelName:bt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return Z(gl(s),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`)),{x:()=>Ul(r.shape,e,a,i,o,l),filter:()=>jh(r,e,a.shape,i,o,l)}}},Qd={kernelName:wt,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>zl(e,a,s,i,o,1,l),filter:()=>jh(e,r,a.shape,s,i,o,l)}}},ep=ja({conv3DBackpropFilter_:function(e,t,n,r,a){let s=e;4===e.rank&&(s=vl(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;4===i.rank&&(i=vl(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Z(5===s.rank,(()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`)),Z(5===i.rank,(()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`)),Z(5===n.length,(()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`)),Z(s.shape[4]===n[3],(()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`)),Z(i.shape[4]===n[4],(()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`));const o={x:s,dy:i},l={strides:r,pad:a,filterShape:n};return Fa.runKernel(xt,o,l)}}),tp={kernelName:_t,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s}=n;Z(gl(r),(()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`));const[i,o]=t;return{x:()=>Hl(i.shape,e,o,a,s),filter:()=>ep(i,e,o.shape,a,s)}}},np={kernelName:Et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(Nu(Wc(zs(n,"float32"))),e)}}},rp={kernelName:Ct,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(Uc(zs(n,"float32")),e)}}},ap={kernelName:St,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a,exclusive:s,reverse:i}=n;return{x:()=>{const t=Pu([a],r.rank);let n=Xl(e,a,s,!i);return null!=t&&(n=li(n,t)),n}}}},sp={kernelName:At,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s,dimRoundingMode:i}=n,o=null==r?[1,1]:r;Z(gl(o),(()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[l,u]=t;return Z(4===l.rank,(()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`)),Z(4===u.rank,(()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`)),Z(l.shape[3]===u.shape[2],(()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`)),Z(yl(a,o),(()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'.`)),null!=i&&Z(se(s),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`)),{x:()=>Jh(l.shape,e,u,a,s,r,i),filter:()=>Yh(l,e,u.shape,a,s,r,i)}}},ip={kernelName:Ot,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,s={x:r,filter:a,dy:e},i={x:r,filter:a,dy:e};return{x:()=>Fa.runKernel(Bt,s,n),filter:()=>Fa.runKernel(Mt,i,n)}}},op={kernelName:Pt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r={dy:e,y:n};return{x:()=>Fa.runKernel(Lt,r)}}},lp={kernelName:zt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=wo(ou(Nu(xo(n))),2/Math.sqrt(Math.PI));return{x:()=>wo(e,r)}}},up={kernelName:Ut,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,n)}}},cp={kernelName:Vt,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>vl(e,n.shape)}}},hp={kernelName:jt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,ou(n))}}},fp={kernelName:Kt,gradFunc:e=>({x:()=>ko(e)})},dp={kernelName:Xt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=vo(e,zs(r,"float32")),s=Wo(n.shape,a);return s.length>0?vl(Tu(t,s),n.shape):t},b:()=>{let t=wo(e,zs(n,"float32"));const s=Wo(r.shape,a);s.length>0&&(t=vl(Tu(t,s),r.shape));const i=xo(r);return Nu(vo(t,zs(i,"float32")))}}}},pp={kernelName:Yt,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[a,s,i,o]=t,l=null==o?To(1):o,u=Wo(s.shape,a.shape),c=[];if(1===s.rank){for(let e=0;e1===s.rank?vl(wo(wo(e,cu(vl(d,[1,1,1,s.shape[0]]),c)),l),a.shape):vl(wo(wo(e,d),l),a.shape),mean:()=>{let e=wo(wo(d,To(-1)),f);return 1===s.rank&&(e=Tu(e,u)),vl(e,s.shape)},variance:()=>{let e=wo(wo(p,h),f);return 1===s.rank&&(e=Tu(e,u)),vl(e,s.shape)},scale:()=>{const t=wo(h,d);let n=wo(e,t);return 1===s.rank&&(n=Tu(n,u)),vl(n,s.shape)},offset:()=>{let t=e;return 1===s.rank&&(t=Tu(t,u)),vl(t,s.shape)}}}},mp={kernelName:Jt,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[r,a]=t,{axis:s}=n,i=fe(s,r.shape)[0];return{x:()=>{const t=r.shape,n=a.size,o=t.slice(0,i),l=o.length,u=t.slice(s,t.length).slice(1),c=u.length,h=gp(0,l),f=gp(l+1,l+1+c),d=yp([o,[n],u]),p=vl(e,d),m=vl(a,[n]),g=yp([[l],h,f]),y=li(p,g);let b=dh(y,m,r.shape[i]);const v=Lu(g);return b=li(b,v),b},indices:()=>a}}};function gp(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>ko(n),b:()=>ko(r)}}},vp={kernelName:tn,gradFunc:e=>({x:()=>zs(e,"float32")})},wp={kernelName:an,gradFunc:e=>({x:()=>ko(e)})},_p={kernelName:sn,gradFunc:e=>({x:()=>ko(e)})},xp={kernelName:on,gradFunc:e=>({x:()=>ko(e)})},kp={kernelName:ln,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{alpha:a}=n,s=pu(r,0);return{x:()=>nu(s,e,wo(e,a))}}},Ep={kernelName:dn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,yo(n,1))}}},Cp={kernelName:fn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,zs(n,"float32"))}}},Sp={kernelName:yn,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n;return{logits:()=>{const t=ou(r);return $o(e,wo(Tu(e,a,!0),t))}}}},Np=ja({localResponseNormalizationBackprop_:function(e,t,n,r=5,a=1,s=1,i=.5){const o={x:e,y:t,dy:n},l={depthRadius:r,bias:a,alpha:s,beta:i};return Fa.runKernel(vn,o,l)}}),Ip={kernelName:bn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>Np(r,a,e,s,i,o,l)}}};function Dp(e,t,n,r){return t.rankwo(e,zs(tu(n,t),e.dtype))}}const Ap={kernelName:wn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:a}=r,s=t[0],i=Dp(e,t[1],s,fe(a,s.shape));return{x:()=>i.x()}}},Tp={kernelName:_n,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>wo(e,zs(mu(n,r),"float32")),b:()=>wo(e,zs(_u(n,r),"float32"))}}},Rp=ja({maxPool3dGrad_:function(e,t,n,r,a,s=[1,1,1],i,o){const l=Wa(e,"dy","maxPool3dGrad"),u=Wa(t,"input","maxPool3dGrad"),c=Wa(n,"output","maxPool3dGrad");let h=l,f=u,d=c,p=!1;4===u.rank&&(p=!0,h=vl(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=vl(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),d=vl(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),Z(5===h.rank,(()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${h.rank}.`)),Z(5===f.rank,(()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${f.rank}.`)),Z(5===d.rank,(()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`)),Z(yl(a,s),(()=>`Error in maxPool3dGrad: Either strides or dilations must be 1. Got strides ${a} and dilations '${s}'`)),null!=o&&Z(se(i),(()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`));const m={dy:h,input:f,output:d},g={filterSize:r,strides:a,dilations:s,pad:i,dimRoundingMode:o},y=Fa.runKernel(Cn,m,g);return p?vl(y,[y.shape[1],y.shape[2],y.shape[3],y.shape[4]]):y}}),Fp={kernelName:En,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,dilations:o,pad:l,dimRoundingMode:u}=n,c=null==o?[1,1,1]:o;return{x:()=>Rp(e,r,a,s,i,c,l,u)}}},Op=ja({maxPoolGrad_:function(e,t,n,r,a,s,i){const o=Wa(e,"dy","maxPoolGrad"),l=Wa(t,"input","maxPoolGrad"),u=Wa(n,"output","maxPoolGrad");Z(l.rank===o.rank,(()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`)),Z(4===o.rank,(()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`)),Z(4===l.rank,(()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`)),null!=i&&Z(se(s),(()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const c={dy:o,input:l,output:u},h={filterSize:r,strides:a,pad:s,dimRoundingMode:i};return Fa.runKernel(kn,c,h)}}),Bp={kernelName:Un,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>El(e,s,r.shape)}}},Mp={kernelName:yr,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:a}=n;return{x:()=>Nl(e,r,a)}}},$p={kernelName:br,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>xl(e,r)}}},Pp=[Id,Dd,Ad,Td,Rd,Fd,Od,Bd,Md,$d,Pd,Ld,Wd,Vd,jd,Hd,Gd,qd,Kd,Xd,Yd,Jd,Qd,Zd,tp,np,rp,ap,sp,ip,{kernelName:$t,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=vo(e,zs(r,"float32")),s=Wo(n.shape,a);return s.length>0?vl(Tu(t,s),n.shape):t},b:()=>{let t=wo(e,zs(n,"float32"));const s=Wo(r.shape,a);s.length>0&&(t=vl(Tu(t,s),r.shape));const i=xo(r);return Nu(vo(t,zs(i,"float32")))}}}},op,lp,up,cp,hp,dp,fp,pp,mp,bp,vp,wp,_p,xp,kp,Ep,Cp,Sp,Ip,Ap,Ap,Tp,Fp,{kernelName:xn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>Op(e,r,a,s,i,o)}}},{kernelName:Nn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n,s=fe(a,r.shape),i=ne(Bu(r.shape,s)[1]);return{x:()=>{const t=r.shape.slice();s.forEach((e=>{t[e]=1}));const n=vl(e,t);return vo(wo(n,sc(r.shape,"float32")),i)}}}},{kernelName:In,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:a}=r,[s,i]=t,o=Dp(e,i,s,fe(a,s.shape));return{x:()=>o.x()}}},{kernelName:Dn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>wo(e,zs(xu(n,r),"float32")),b:()=>wo(e,zs(pu(n,r),"float32"))}}},{kernelName:An,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>El(e,s,r.shape)}}},{kernelName:Tn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=Wo(n.shape,a);return t.length>0?vl(Tu(e,t),n.shape):e},b:()=>{const t=wo(e,Nu(fu(vo(n,r)))),s=Wo(r.shape,a);return s.length>0?vl(Tu(t,s),r.shape):t}}}},{kernelName:Fn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{const t=wo(e,zs(r,"float32")),s=Wo(n.shape,a);return s.length>0?vl(Tu(t,s),n.shape):t},b:()=>{const t=wo(e,zs(n,"float32")),s=Wo(r.shape,a);return s.length>0?vl(Tu(t,s),r.shape):t}}}},{kernelName:On,gradFunc:e=>({x:()=>Nu(e)})},{kernelName:zn,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>ac(n.shape,"float32")}}},{kernelName:Ln,gradFunc:e=>({x:()=>ko(e)})},{kernelName:Wn,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:r}=n;return ph(e,r).map((e=>()=>e))}},Bp,Bp,{kernelName:jn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,a]=t,s=n,i=r,o=Uo(s.shape,i.shape);return{a:()=>{const t=zs(i,"float32");let n=wo(e,wo(t,Mo(s,$o(t,To(1)))));const r=Wo(s.shape,o);return r.length>0&&(n=Tu(n,r)),vl(n,s.shape)},b:()=>{const t=pu(s,0),n=nu(t,Cu(s),ko(s));let r=wo(e,wo(a,n));const l=Wo(i.shape,o);return l.length>0&&(r=Tu(r,l)),vl(r,i.shape)}}}},{kernelName:Hn,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,a=pu(n,0);return{x:()=>nu(a,e,wo(e,r)),alpha:()=>{let t=nu(a,ko(e),wo(e,n));const s=Wo(r.shape,e.shape);return s.length>0&&(t=Tu(t,s)),vl(t,r.shape)}}}},{kernelName:Xn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,Nu(xo(n)))}}},{kernelName:nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=wo(xu(n,6),nh(n));return{x:()=>wo(e,zs(r,"float32"))}}},{kernelName:Yn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,zs(nh(n),"float32"))}}},{kernelName:Jn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vl(e,n.shape)}}},{kernelName:er,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Fa.runKernel(tr,a,n)}}},{kernelName:Zn,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>Fa.runKernel(Qn,a,n)}}},{kernelName:rr,gradFunc:(e,t,n)=>{const{dims:r}=n,a=fe(r,e.shape);return{x:()=>Ac(e,a)}}},{kernelName:ar,gradFunc:e=>({x:()=>ko(e)})},{kernelName:sr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Nu(vo(e,wo(Mo(n,1.5),2)))}}},{kernelName:or,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>zs(ko(n),"float32"),t:()=>wo(e,zs(n,e.dtype)),e:()=>wo(e,zs(Vu(n),e.dtype))}}},{kernelName:lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=pu(n,To(0)),r=To(nd),a=To(rd),s=wo(e,a),i=wo(wo(e,r),ou(zs(n,"float32")));return nu(t,s,i)}}}},{kernelName:dr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,wo(n,$o(To(1),n)))}}},{kernelName:fr,gradFunc:e=>({x:()=>ko(e)})},{kernelName:cr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(ql(zs(n,"float32")),e)}}},{kernelName:hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(Kl(zs(n,"float32")),e)}}},{kernelName:ur,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:a,size:s}=n,i=r.shape,[o,l]=Ri(r,a,s),u=[];for(let t=0;tlc(e,u)}}},{kernelName:vr,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:a}=n,s=wo(e,r);return{logits:()=>$o(s,wo(Tu(s,[a],!0),r))}}},{kernelName:pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,kl(n))}}},Mp,Mp,$p,$p,{kernelName:mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,wo(_o(zs(n,"float32")),2))}}},{kernelName:wr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=To(2);return{a:()=>wo(e,wo(a,$o(n,r))),b:()=>wo(e,wo(a,$o(r,n)))}}},{kernelName:_r,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo(e,wo(zs(n,"float32"),2))}}},{kernelName:Or,gradFunc:e=>({x:()=>ko(e)})},{kernelName:xr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Uo(n.shape,r.shape);return{a:()=>{let t=e;const r=Wo(n.shape,a);return r.length>0&&(t=Tu(t,r)),vl(t,n.shape)},b:()=>{let t=e;const n=Wo(r.shape,a);return n.length>0&&(t=Tu(t,n)),vl(Nu(t),r.shape)}}}},{kernelName:gr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,a=r.shape.slice(),{axis:s}=n;fe(s,r.shape).forEach((e=>{a[e]=1}));const i=vl(e,a),o=wo(i,sc(r.shape,"float32"));return{x:()=>o}}},{kernelName:Cr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>vo(e,xo(ql(n)))}}},{kernelName:Sr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>wo($o(To(1),xo(n)),e)}}},{kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:a}=n;return{x:()=>{let t=ko(r);if(1===r.rank)for(let n=0;n{const r=n,{perm:a}=r,s=Lu(a);return{x:()=>li(e,s)}}},{kernelName:Tr,gradFunc:(e,t,n)=>{const r=n,{axis:a}=r;return{value:()=>th(e,a)}}},{kernelName:Rr,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=Vo(t,ko(t)),r=du(e,n);let a=mu(t,To(0,"int32"));const s=r.rank-a.rank;for(let e=0;e({x:()=>ko(e)})}];for(const e of Pp)Gr(e);let Lp;function zp(){return null==Lp&&(Lp=mo().epsilon()),Lp}ma.prototype.abs=function(){return this.throwIfDisposed(),Lo(this)},ma.prototype.acos=function(){return this.throwIfDisposed(),Ko(this)},ma.prototype.acosh=function(){return this.throwIfDisposed(),Xo(this)},ma.prototype.addStrict=function(e){return this.throwIfDisposed(),Ch(this,e)},ma.prototype.add=function(e){return this.throwIfDisposed(),yo(this,e)},ma.prototype.all=function(e,t){return this.throwIfDisposed(),Jo(this,e,t)},ma.prototype.any=function(e,t){return this.throwIfDisposed(),Zo(this,e,t)},ma.prototype.argMax=function(e){return this.throwIfDisposed(),Qo(this,e)},ma.prototype.argMin=function(e){return this.throwIfDisposed(),el(this,e)},ma.prototype.asScalar=function(){return this.throwIfDisposed(),Z(1===this.size,(()=>"The array must have only 1 element.")),vl(this,[])},ma.prototype.asType=function(e){return this.throwIfDisposed(),zs(this,e)},ma.prototype.as1D=function(){return this.throwIfDisposed(),vl(this,[this.size])},ma.prototype.as2D=function(e,t){return this.throwIfDisposed(),vl(this,[e,t])},ma.prototype.as3D=function(e,t,n){return this.throwIfDisposed(),vl(this,[e,t,n])},ma.prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),vl(this,[e,t,n,r])},ma.prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),vl(this,[e,t,n,r,a])},ma.prototype.asin=function(){return this.throwIfDisposed(),tl(this)},ma.prototype.asinh=function(){return this.throwIfDisposed(),nl(this)},ma.prototype.atan=function(){return this.throwIfDisposed(),rl(this)},ma.prototype.atan2=function(e){return this.throwIfDisposed(),al(this,e)},ma.prototype.atanh=function(){return this.throwIfDisposed(),sl(this)},ma.prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),wl(this,e,t,n,r)},ma.prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Nl(this,e,t)},ma.prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),Il(this,e,t,n,r,a)},ma.prototype.broadcastTo=function(e){return this.throwIfDisposed(),Fl(this,e)},ma.prototype.cast=function(e){return this.throwIfDisposed(),zs(this,e)},ma.prototype.ceil=function(){return this.throwIfDisposed(),Ol(this)},ma.prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Bl(this,e,t)},ma.prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof ma&&(e=[e]),xl([this,...e],t)},ma.prototype.conv1d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Wl(this,e,t,n,r,a,s)},ma.prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),Vl(this,e,t,n,r,a)},ma.prototype.conv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),zl(this,e,t,n,r,a,s)},ma.prototype.cos=function(){return this.throwIfDisposed(),ql(this)},ma.prototype.cosh=function(){return this.throwIfDisposed(),Kl(this)},ma.prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Xl(this,e,t,n)},ma.prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Jl(this,e,t)},ma.prototype.depthwiseConv2D=function(e,t,n,r,a,s){return Zi("depthwiseConv2D is deprecated, use depthwiseConv2d instead"),this.throwIfDisposed(),Zl(this,e,t,n,r,a,s)},ma.prototype.depthwiseConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Zl(this,e,t,n,r,a,s)},ma.prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),eu(this,e,t,n,r,a)},ma.prototype.divNoNan=function(e){return this.throwIfDisposed(),ru(this,e)},ma.prototype.divStrict=function(e){return this.throwIfDisposed(),Sh(this,e)},ma.prototype.div=function(e){return this.throwIfDisposed(),vo(this,e)},ma.prototype.dot=function(e){return this.throwIfDisposed(),au(this,e)},ma.prototype.elu=function(){return this.throwIfDisposed(),su(this)},ma.prototype.equalStrict=function(e){return this.throwIfDisposed(),vh(this,e)},ma.prototype.equal=function(e){return this.throwIfDisposed(),tu(this,e)},ma.prototype.erf=function(){return this.throwIfDisposed(),iu(this)},ma.prototype.exp=function(){return this.throwIfDisposed(),ou(this)},ma.prototype.expandDims=function(e){return this.throwIfDisposed(),lu(this,e)},ma.prototype.expm1=function(){return this.throwIfDisposed(),uu(this)},ma.prototype.fft=function(){return this.throwIfDisposed(),Kc(this)},ma.prototype.flatten=function(){return this.throwIfDisposed(),vl(this,[this.size])},ma.prototype.floor=function(){return this.throwIfDisposed(),fu(this)},ma.prototype.floorDiv=function(e){return this.throwIfDisposed(),bo(this,e)},ma.prototype.gather=function(e,t){return this.throwIfDisposed(),du(this,e,t)},ma.prototype.greaterEqualStrict=function(e){return this.throwIfDisposed(),wh(this,e)},ma.prototype.greaterEqual=function(e){return this.throwIfDisposed(),mu(this,e)},ma.prototype.greaterStrict=function(e){return this.throwIfDisposed(),_h(this,e)},ma.prototype.greater=function(e){return this.throwIfDisposed(),pu(this,e)},ma.prototype.ifft=function(){return this.throwIfDisposed(),Xc(this)},ma.prototype.irfft=function(){return this.throwIfDisposed(),Yc(this)},ma.prototype.isFinite=function(){return this.throwIfDisposed(),yu(this)},ma.prototype.isInf=function(){return this.throwIfDisposed(),bu(this)},ma.prototype.isNaN=function(){return this.throwIfDisposed(),vu(this)},ma.prototype.leakyRelu=function(e){return this.throwIfDisposed(),wu(this,e)},ma.prototype.lessEqualStrict=function(e){return this.throwIfDisposed(),xh(this,e)},ma.prototype.lessEqual=function(e){return this.throwIfDisposed(),xu(this,e)},ma.prototype.lessStrict=function(e){return this.throwIfDisposed(),kh(this,e)},ma.prototype.less=function(e){return this.throwIfDisposed(),_u(this,e)},ma.prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),Eu(this,e,t,n,r)},ma.prototype.logSigmoid=function(){return this.throwIfDisposed(),Du(this)},ma.prototype.logSoftmax=function(e){return this.throwIfDisposed(),Ru(this,e)},ma.prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Wu(this,e,t)},ma.prototype.log=function(){return this.throwIfDisposed(),Cu(this)},ma.prototype.log1p=function(){return this.throwIfDisposed(),Su(this)},ma.prototype.logicalAnd=function(e){return this.throwIfDisposed(),Uu(this,e)},ma.prototype.logicalNot=function(){return this.throwIfDisposed(),Vu(this)},ma.prototype.logicalOr=function(e){return this.throwIfDisposed(),ju(this,e)},ma.prototype.logicalXor=function(e){return this.throwIfDisposed(),Hu(this,e)},ma.prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ii(this,e,t,n)},ma.prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),Gu(this,e,t,n,r)},ma.prototype.max=function(e,t){return this.throwIfDisposed(),Au(this,e,t)},ma.prototype.maximumStrict=function(e){return this.throwIfDisposed(),Nh(this,e)},ma.prototype.maximum=function(e){return this.throwIfDisposed(),Vo(this,e)},ma.prototype.mean=function(e,t){return this.throwIfDisposed(),Xu(this,e,t)},ma.prototype.min=function(e,t){return this.throwIfDisposed(),Yu(this,e,t)},ma.prototype.minimumStrict=function(e){return this.throwIfDisposed(),Ih(this,e)},ma.prototype.minimum=function(e){return this.throwIfDisposed(),Ju(this,e)},ma.prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Zu(this,e,t)},ma.prototype.modStrict=function(e){return this.throwIfDisposed(),Dh(this,e)},ma.prototype.mod=function(e){return this.throwIfDisposed(),Qu(this,e)},ma.prototype.mulStrict=function(e){return this.throwIfDisposed(),Ah(this,e)},ma.prototype.mul=function(e){return this.throwIfDisposed(),wo(this,e)},ma.prototype.neg=function(){return this.throwIfDisposed(),Nu(this)},ma.prototype.norm=function(e,t,n){return this.throwIfDisposed(),Bh(this,e,t,n)},ma.prototype.notEqualStrict=function(e){return this.throwIfDisposed(),Eh(this,e)},ma.prototype.notEqual=function(e){return this.throwIfDisposed(),rc(this,e)},ma.prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),oi(this,e,t,n)},ma.prototype.onesLike=function(){return this.throwIfDisposed(),ic(this)},ma.prototype.pad=function(e,t){return this.throwIfDisposed(),lc(this,e,t)},ma.prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),pc(this,e,t,n,r,a)},ma.prototype.powStrict=function(e){return this.throwIfDisposed(),Th(this,e)},ma.prototype.pow=function(e){return this.throwIfDisposed(),Mo(this,e)},ma.prototype.prelu=function(e){return this.throwIfDisposed(),mc(this,e)},ma.prototype.prod=function(e,t){return this.throwIfDisposed(),gc(this,e,t)},ma.prototype.reciprocal=function(){return this.throwIfDisposed(),Nc(this)},ma.prototype.relu=function(){return this.throwIfDisposed(),Ic(this)},ma.prototype.relu6=function(){return this.throwIfDisposed(),Dc(this)},ma.prototype.reshapeAs=function(e){return this.throwIfDisposed(),vl(this,e.shape)},ma.prototype.reshape=function(e){return this.throwIfDisposed(),vl(this,e)},ma.prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),_f(this,e,t,n)},ma.prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),xf(this,e,t,n)},ma.prototype.reverse=function(e){return this.throwIfDisposed(),Ac(this,e)},ma.prototype.rfft=function(){return this.throwIfDisposed(),Zc(this)},ma.prototype.round=function(){return this.throwIfDisposed(),Bc(this)},ma.prototype.rsqrt=function(){return this.throwIfDisposed(),Mc(this)},ma.prototype.selu=function(){return this.throwIfDisposed(),$c(this)},ma.prototype.separableConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Pc(this,e,t,n,r,a,s)},ma.prototype.sigmoid=function(){return this.throwIfDisposed(),kl(this)},ma.prototype.sign=function(){return this.throwIfDisposed(),zc(this)},ma.prototype.sin=function(){return this.throwIfDisposed(),Wc(this)},ma.prototype.sinh=function(){return this.throwIfDisposed(),Uc(this)},ma.prototype.slice=function(e,t){return this.throwIfDisposed(),El(this,e,t)},ma.prototype.softmax=function(e){return this.throwIfDisposed(),qc(this,e)},ma.prototype.softplus=function(){return this.throwIfDisposed(),Iu(this)},ma.prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),dc(this,e,t)},ma.prototype.split=function(e,t){return this.throwIfDisposed(),Jc(this,e,t)},ma.prototype.sqrt=function(){return this.throwIfDisposed(),_o(this)},ma.prototype.square=function(){return this.throwIfDisposed(),xo(this)},ma.prototype.squaredDifference=function(e){return this.throwIfDisposed(),Qc(this,e)},ma.prototype.squaredDifferenceStrict=function(e){return this.throwIfDisposed(),Rh(this,e)},ma.prototype.squeeze=function(e){return this.throwIfDisposed(),eh(this,e)},ma.prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof ma?[this,e]:[this,...e];return th(n,t)},ma.prototype.step=function(e){return this.throwIfDisposed(),nh(this,e)},ma.prototype.stridedSlice=function(e,t,n,r,a,s,i,o){return this.throwIfDisposed(),rh(this,e,t,n,r,a,s,i,o)},ma.prototype.subStrict=function(e){return this.throwIfDisposed(),Fh(this,e)},ma.prototype.sub=function(e){return this.throwIfDisposed(),$o(this,e)},ma.prototype.sum=function(e,t){return this.throwIfDisposed(),Tu(this,e,t)},ma.prototype.tan=function(){return this.throwIfDisposed(),ah(this)},ma.prototype.tanh=function(){return this.throwIfDisposed(),Cl(this)},ma.prototype.tile=function(e){return this.throwIfDisposed(),cu(this,e)},ma.prototype.toBool=function(){return this.throwIfDisposed(),zs(this,"bool")},ma.prototype.toFloat=function(){return this.throwIfDisposed(),zs(this,"float32")},ma.prototype.toInt=function(){return this.throwIfDisposed(),zs(this,"int32")},ma.prototype.topk=function(e,t){return this.throwIfDisposed(),ch(this,e,t)},ma.prototype.transpose=function(e){return this.throwIfDisposed(),li(this,e)},ma.prototype.unique=function(e){return this.throwIfDisposed(),fh(this,e)},ma.prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),dh(this,e,t)},ma.prototype.unstack=function(e){return this.throwIfDisposed(),ph(this,e)},ma.prototype.where=function(e,t){return this.throwIfDisposed(),nu(e,this,t)},ma.prototype.zerosLike=function(){return this.throwIfDisposed(),ko(this)};class Wp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wp.prototype)}}class Up extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Up.prototype)}}class Vp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Vp.prototype)}}class jp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,jp.prototype)}}class Hp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Hp.prototype)}}function Gp(e,t){if(Array.isArray(e)){let n=[];for(let r=0;rt.toUpperCase()))}Error;let Qp={};function em(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function tm(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>tm(e)));else{const t=Object.keys(e);for(const n of t){const t=e[n];null!=t&&"object"==typeof t&&(Array.isArray(t)||"ndarray"!==t.type||"number"!=typeof t.value?tm(t):e[n]=t.value)}}}function nm(e,t={},n={},r="object",a=!1){if("string"==typeof e){const a=e;let s;if(a in n)s=n[a];else if(a in Qp)s=Qp[a];else if(s=t[a],null==s)throw new Vp(`Unknown ${r}: ${e}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return s}{const s=e;if(null==s.className||null==s.config)throw new Vp(`${r}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);const i=s.className;let o,l;if(i in n?[o,l]=n[i]:i in Qp?[o,l]=Qp.className:i in t&&([o,l]=t[i]),null==o)throw new Vp(`Unknown ${r}: ${i}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(null!=l){const e={};for(const t of Object.keys(Qp))e[t]=Qp[t];for(const t of Object.keys(n))e[t]=n[t];s.config.customObjects=e;const t=Object.assign({},Qp);for(const e of Object.keys(n))Qp[e]=n[e];tm(s.config);const r=l(o,s.config,n,a);return Qp=Object.assign({},t),r}{const e=Object.assign({},Qp);for(const e of Object.keys(n))Qp[e]=n[e];const t=new o(s.config);return Qp=Object.assign({},e),t}}}function rm(e,t){return-1*function(e,t){return et?1:0}(e,t)}function am(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function sm(e){if(null==e)throw new Vp(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function im(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Vp(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function om(e,t,n=0,r=1/0){return qp(n>=0),qp(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((e=>typeof e===t))}function lm(e,t){Array.isArray(e)?(Z(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>lm(e,`element ${n+1} of ${t}`)))):Z(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${um(e)}.`))}function um(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>um(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function cm(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function hm(e,t){return ro((()=>_o(Tu(wo(e,e),t,!0))))}class fm extends Oi{getConfig(){return{}}}class dm extends fm{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return ro((()=>{const t=hm(e,this.axis),n=Bl(t,0,this.maxValue);return wo(e,vo(n,yo(zp(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}dm.className="MaxNorm",Mi(dm);class pm extends fm{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return ro((()=>vo(e,yo(zp(),hm(e,this.axis)))))}getConfig(){return{axis:this.axis}}}pm.className="UnitNorm",Mi(pm);class mm extends fm{apply(e){return Ic(e)}}mm.className="NonNeg",Mi(mm);class gm extends fm{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=null!=e.minValue?e.minValue:this.defaultMinValue,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.rate=null!=e.rate?e.rate:this.defaultRate,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return ro((()=>{const t=hm(e,this.axis),n=yo(wo(this.rate,Bl(t,this.minValue,this.maxValue)),wo(1-this.rate,t));return wo(e,vo(n,yo(zp(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}gm.className="MinMaxNorm",Mi(gm);const ym={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function bm(e){return em(e)}function vm(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"constraint")}function wm(e){return null==e?null:"string"==typeof e?vm({className:e in ym?ym[e]:e,config:{}}):e instanceof fm?e:vm(e)}function _m(e){return new dm(e)}function xm(e){return new pm(e)}function km(){return new mm}function Em(e){return new gm(e)}const Cm=["channelsFirst","channelsLast"],Sm=["nearest","bilinear"],Nm=["valid","same","causal"],Im=["max","avg"],Dm=["sum","mul","concat","ave"],Am=new Map;function Tm(e){im(Cm,"DataFormat",e)}function Rm(e){im(Nm,"PaddingMode",e)}function Fm(e){im(Im,"PoolMode",e)}const Om=[];function Bm(e,t){Om.push(e);try{const e=t();return Om.pop(),e}catch(e){throw Om.pop(),e}}function Mm(e){if(!Lm(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Om.length?"":Om.join("/")+"/")+e}function $m(e){if(!Lm(e))throw new Error("Not a valid tensor name: '"+e+"'");Am.has(e)||Am.set(e,0);const t=Am.get(e);if(Am.set(e,Am.get(e)+1),t>0){const n=`${e}_${t}`;return Am.set(n,1),n}return e}const Pm=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Lm(e){return!!e.match(Pm)}function zm(e,t,n){null==t&&(t=0),null==n&&(n=e.length);let r=1;for(let a=t;a{switch(e.rank){case 1:return Vc(e,t,n);case 2:return jc(e,[t,0],[n,e.shape[1]]);case 3:return Hc(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Gc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return El(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return El(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new Vp(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Km(e,t,n){return ro((()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:return jc(e,[0,t],[e.shape[0],n]);case 3:return Hc(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Gc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Vp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Xm(e,t,n,r){return ro((()=>{switch(e.rank){case 1:return Vc(e,t,n);case 2:switch(r){case 1:return qm(e,t,n);case 2:return Km(e,t,n);default:throw new Vp(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return qm(e,t,n);case 2:return Hc(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Km(e,t,n);default:throw new Vp(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return qm(e,t,n);case 2:return Gc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Gc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Km(e,t,n);default:throw new Vp(`The axis is not within the rank of the tensor ${r}`)}default:throw new Vp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Ym(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),xl(e,t)}function Jm(e,t){switch(e.rank){case 1:return Ml([e,t]);case 2:return $l([e,t],0);case 3:return Pl([e,t],0);case 4:return Ll([e,t],0);default:throw new Vp(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Zm(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Vp(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return cu(e,t)}function Qm(e,t=0,n=1,r,a){return kc(e,t,n,r,a)}function eg(e,t,n,r){if(e.rank<2||t.rank<2)throw new jp(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3&&e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new jp(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`);if(2===e.rank&&2===t.rank)return Qh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?rg(e.rank,r,"channelsLast"):null,activation:n});{const a=e.shape.slice(),s=a.pop();e=e.reshape([-1,s]);const i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],c=Array.from({length:t.rank},((e,n)=>0===n?t.rank-2:n<=t.rank-2?n-1:n));t=t.transpose(c).reshape([l,-1]);const h=[...a,...u];return Qh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?rg(e.rank,r,"channelsLast"):null,activation:n}).reshape(h)}}function tg(e,t,n){return ro((()=>(t=Array.isArray(t)?sh(t,"int32"):t.toInt(),du(e,t,n))))}function ng(e){return wo(e,e)}function rg(e,t,n){const r=t.shape;if(1!==t.rank&&t.rank!==e)throw new Vp(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(5===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1,1]):t.reshape([1,r[3],r[0],r[1],r[2]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,1,r[0]]):t.reshape([1].concat(r))}else if(4===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1]):t.reshape([1,r[2],r[0],r[1]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,r[0]]):t.reshape([1].concat(r))}else if(3===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1]):t.reshape([1,r[1],r[0]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,r[0]]):t.reshape([1].concat(r))}else if(e<3)return t;throw new Vp(`Unsupported input rank by biasAdd: ${t.rank}`)}function ag(e,t,n){return ro((()=>(null==n&&(n="channelsLast"),Tm(n),e.add(rg(e.rank,t,n)))))}function sg(e,t,n,r){return ro((()=>zh(e,t,n,r)))}function ig(e,t,n=!1){return n?e():t()}const og=["fanIn","fanOut","fanAvg"],lg=["normal","uniform","truncatedNormal"];class ug extends Oi{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class cg extends ug{apply(e,t){return ac(e,t)}}cg.className="Zeros",Mi(cg);class hg extends ug{apply(e,t){return sc(e,t)}}hg.className="Ones",Mi(hg);class fg extends ug{constructor(e){if(super(),"object"!=typeof e)throw new Vp(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Vp(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return ro((()=>wo(To(this.value),sc(e,t))))}getConfig(){return{value:this.value}}}fg.className="Constant",Mi(fg);class dg extends ug{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Ec(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}dg.className="RandomUniform",Mi(dg);class pg extends ug{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new jp(`randomNormal does not support dType ${t}.`);return Qm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}pg.className="RandomNormal",Mi(pg);class mg extends ug{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new jp(`truncatedNormal does not support dType ${t}.`);return hh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}mg.className="TruncatedNormal",Mi(mg);class gg extends ug{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return ro((()=>{if(2!==e.length||e[0]!==e[1])throw new Vp("Identity matrix initializer can only be used for 2D square matrices.");return wo(this.gain,hu(e[0]))}))}getConfig(){return{gain:this.gain}}}gg.className="Identity",Mi(gg);class yg extends ug{constructor(e){if(super(),e.scale<0)throw new Vp(`scale must be a positive float. Got: ${e.scale}`);var t;this.scale=null==e.scale?1:e.scale,this.mode=null==e.mode?"fanIn":e.mode,t=this.mode,im(og,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){im(lg,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,r;if(Tm(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=zm(e,2);n=e[1]*t,r=e[0]*t}else if("channelsLast"===t){const t=zm(e,0,e.length-2);n=e[e.length-2]*t,r=e[e.length-1]*t}}else{const t=zm(e);n=Math.sqrt(t),r=Math.sqrt(t)}return[n,r]}(e),r=n[0],a=n[1];let s=this.scale;if("fanIn"===this.mode?s/=Math.max(1,r):"fanOut"===this.mode?s/=Math.max(1,a):s/=Math.max(1,(r+a)/2),"normal"===this.distribution){const n=Math.sqrt(s);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new jp(`${this.getClassName()} does not support dType ${t}.`);return hh(e,0,n,t,this.seed)}{const n=Math.sqrt(3*s);return Ec(e,-n,n,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}yg.className="VarianceScaling",Mi(yg);class bg extends yg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return yg.className}}bg.className="GlorotUniform",Mi(bg);class vg extends yg{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return yg.className}}vg.className="GlorotNormal",Mi(vg);class wg extends yg{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return yg.className}}wg.className="HeNormal",Mi(wg);class _g extends yg{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return yg.className}}_g.className="HeUniform",Mi(_g);class xg extends yg{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return yg.className}}xg.className="LeCunNormal",Mi(xg);class kg extends yg{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return yg.className}}kg.className="LeCunNormal",Mi(kg);class Eg extends ug{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=null==e.gain?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,null!=this.seed)throw new jp("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return ro((()=>{if(e.length<2)throw new jp("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const t=Qm(e[0]>e[1]?[e[1],e[0]]:e,0,1,"float32");let n=zf.gramSchmidt(t);return e[0]>e[1]&&(n=n.transpose()),wo(this.gain,n)}))}getConfig(){return{gain:this.gain,seed:this.seed}}}Eg.className="Orthogonal",Mi(Eg);const Cg={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Sg(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"initializer")}function Ng(e){return em(e)}function Ig(e){if("string"==typeof e){const t=e in Cg?Cg[e]:e;if("GlorotNormal"===t)return new vg;if("GlorotUniform"===t)return new bg;if("HeNormal"===t)return new wg;if("HeUniform"===t)return new _g;if("LeCunNormal"===t)return new xg;if("LeCunUniform"===t)return new kg;{const e={};return e.className=t,e.config={},Sg(e)}}return e instanceof ug?e:Sg(e)}function Dg(){return new cg}function Ag(){return new hg}function Tg(e){return new fg(e)}function Rg(e){return new dg(e)}function Fg(e){return new pg(e)}function Og(e){return new mg(e)}function Bg(e){return new gg(e)}function Mg(e){return new yg(e)}function $g(e){return new bg(e)}function Pg(e){return new vg(e)}function Lg(e){return new wg(e)}function zg(e){return new _g(e)}function Wg(e){return new xg(e)}function Ug(e){return new kg(e)}function Vg(e){return new Eg(e)}let jg=0;function Hg(){return jg++}const Gg={};function qg(e=""){return e in Gg||(Gg[e]=0),Gg[e]+=1,e+Gg[e].toString()}function Kg(e){return Array.isArray(e)&&Array.isArray(e[0])}function Xg(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function Yg(e){let t;if(Array.isArray(e)){if(1!==e.length)throw new Vp(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Jg(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new Vp(`Expected exactly 1 Shape; got ${e.length}`)}return e}function Zg(e){let t=0;for(const n of e)0===n.shape.length?t+=1:t+=n.shape.reduce(((e,t)=>e*t));return t}class Qg{constructor(e,t="float32",n="Variable",r=!0,a=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Hg(),n=null==n?"Variable":n,this.originalName=Mm(n),this.name=$m(this.originalName),this.trainable_=r,this.constraint=a,this.val=mh(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function ey(e){return e.map((e=>e.read()))}function ty(e){e.forEach((e=>{e[0].write(e[1])}))}class ny{constructor(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class ry{constructor(e,t,n,r,a,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=r,this.callArgs=a,this.outputTensorIndex=i,this.id=Hg(),null!=s&&(this.originalName=Mm(s),this.name=$m(this.originalName)),this.rank=t.length}}let ay=0;class sy{constructor(e,t){this.callArgs=t,this.id=ay++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const t of e.inboundLayers)null!=t&&t.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)null!=t?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let iy=0;class oy extends Oi{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=iy++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const e=this.getClassName();t=Jp(e)+"_"+qg(e)}if(this.name=t,this.trainable_=null==e.trainable||e.trainable,null!=e.inputShape||null!=e.batchInputShape){let t;if(null!=e.batchInputShape)t=e.batchInputShape;else if(null!=e.inputShape){let n=null;null!=e.batchSize&&(n=e.batchSize),t=[n].concat(e.inputShape)}this.batchInputShape=t;let n=e.dtype;null==n&&(n=e.inputDType),null==n&&(n="float32"),this.dtype=n}null!=e.weights?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(0===this.inboundNodes.length)throw new Up(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Vp(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Xp(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Xp(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Wp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(0===this.inboundNodes.length)throw new Wp(`Layer ${this.name} is not connected, no input to return.`);return Xp(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Wp(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Wp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Xp(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map((e=>e()))}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach((t=>t.trainable=e)),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter((e=>e.trainable)):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter((e=>!e.trainable)).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=Yp(e),null==this.inputSpec||0===this.inputSpec.length)return;const t=Yp(this.inputSpec);if(e.length!==t.length)throw new Vp(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;na.maxNDim)throw new Vp(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${a.maxNDim}, found ndim=${s}`);if(null!=a.minNDim&&s=0?e[r]:e[e.length+r];if(null!=s&&-1===[s,null].indexOf(i))throw new Vp(`Input ${n} is incompatible with layer ${this.name}: expected axis ${r} of input shape to have value ${s} but got shape ${e}.`)}}if(null!=a.shape)for(let e=0;e{if(!this.built){this.assertInputCompatibility(e);const t=[];for(const n of Yp(e))t.push(n.shape);this.build(Xp(t)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),null===this._refCount&&a&&(this._refCount=1)}if(this.assertInputCompatibility(e),a){let r=this.call(e,t);const a=Yp(r),s=[];for(let e of a)-1!==n.indexOf(e)&&(e=e.clone()),s.push(e);if(r=Xp(s),null!=this.activityRegularizer)throw new jp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}{const n=function(e){e=Yp(e);const t=[];for(const n of e)t.push(n.shape);return Xp(t)}(e),r=this.computeOutputShape(n);let a;const s="float32";if(this.warnOnIncompatibleInputShape(Array.isArray(e)?n[0]:n),a=null!=r&&r.length>0&&Array.isArray(r[0])?r.map(((n,r)=>new ry(s,n,this,Yp(e),t,this.name,r))):new ry(s,r,this,Yp(e),t,this.name),this.addInboundNode(e,a,null,null,n,r,t),this._refCount++,null!=this.activityRegularizer)throw new jp("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}}))}warnOnIncompatibleInputShape(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach(((n,r)=>{null!=n&&null!=e[r]&&e[r]!==n&&(t=!0)})),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new Wp(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const n=JSON.stringify(t.outputShapes);-1===e.indexOf(n)&&e.push(n)}if(1===e.length){const e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&1===e.length?e[0]:e}throw new Wp(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Up(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Zg(this.weights)}build(e){this.built=!0}getWeights(e=!1){return ey(e?this.trainableWeights:this.weights)}setWeights(e){ro((()=>{const t=this.weights;if(t.length!==e.length)throw new Vp(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(0===t.length)return;const n=[],r=ey(t);for(let a=0;aa.apply(l.read()))),null==s&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){null==e||Array.isArray(e)&&0===e.length||(e=Yp(e),void 0!==this._losses&&null!==this._losses&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);t.forEach((e=>{if(null!=e)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)}))}return null}return t}addInboundNode(e,t,n,r,a,s,i=null){const o=Yp(e);t=Yp(t),n=Yp(n),r=Yp(r),a=Xg(a),s=Xg(s);const l=[],u=[],c=[];for(const e of o)l.push(e.sourceLayer),u.push(e.nodeIndex),c.push(e.tensorIndex);new sy({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:c,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:r,inputShapes:a,outputShapes:s},i);for(let e=0;ee.dispose())),this.weights.length}assertNotDisposed(){if(0===this._refCount)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(null===this._refCount)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function ly(e,t,n){if((null==t||null!=n&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),0===t.inboundNodes.length)return[e];{const e=t.inboundNodes[n];if(0===e.inboundLayers.length)return e.inputTensors;{const t=[];for(let n=0;n0){const a=await Promise.all(t);for(let t=0;tyo(this.totals[e],wo(r,n))));this.totals[e]=a,null!=t&&t.dispose()}}}async onEpochEnd(e,t){if(null!=t)for(const e of this.params.metrics)null!=this.totals[e]&&("number"==typeof this.totals[e]?t[e]=this.totals[e]/this.seen:ro((()=>{const n=wo(vo(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),so(t[e])})))}}class yy extends py{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){null==t&&(t={}),this.epoch.push(e);for(const e in t)null==this.history[e]&&(this.history[e]=[]),this.history[e].push(t[e])}async syncData(){const e=[],t=[],n=[];for(const r in this.history){const a=this.history[r];for(let s=0;s{const s=oa();return s-rnew by(e,t)))}class wy{constructor(){}static registerCallbackConstructor(e,t){Z(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),wy.checkForDuplicate(t),null==wy.constructors[e]&&(wy.constructors[e]=[]),wy.constructors[e].push(t)}static checkForDuplicate(e){for(const t in wy.constructors)wy.constructors[+t].forEach((t=>{if(t===e)throw new Vp("Duplicate callback constructor.")}))}static clear(){wy.constructors={}}static createCallbacks(e){const t=[];for(const n in wy.constructors){const r=+n;e>=r&&t.push(...wy.constructors[r])}return t.map((e=>new e))}}function _y(e,t,n,r,a,s,i,o,l){const u=new yy,c=[new gy,...wy.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new my(c);return h.setParams({epochs:n,initialEpoch:r,samples:a,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:h,history:u}}function xy(e,t={},n=!1){return nm(e,Bi.getMap().classNameMap,t,"layer",n)}function ky(e,t){return ro((()=>{"float32"!==e.dtype&&(e=e.asType("float32"));const n=Tu(ng(e),t,!0),r=Oo(n.shape,zp()),a=_o(Vo(n,r));return vo(e,a)}))}function Ey(e,t){return ro((()=>Xu(ng($o(t,e)),-1)))}function Cy(e,t){return ro((()=>Xu(Lo($o(t,e)),-1)))}function Sy(e,t){return ro((()=>{const n=$o(e,t),r=Bl(Lo(e),zp(),Number.MAX_VALUE),a=Lo(vo(n,r));return wo(100,Xu(a,-1))}))}function Ny(e,t,n=!1){return ro((()=>{if(n)t=qc(t);else{const e=Tu(t,t.shape.length-1,!0);t=vo(t,e)}return t=Bl(t,zp(),1-zp()),Nu(Tu(wo(e.toFloat(),Cu(t)),t.shape.length-1))}))}function Iy(e,t,n=!1){return ro((()=>{const r=fu(function(e){const t=[zm(e.shape)];return e.reshape(t)}(e)).toInt(),a=(t=Bl(t,zp(),1-zp())).shape;return Ny(oi(r,a[a.length-1]).reshape(a),t,n)}))}function Dy(e,t){return ro((()=>{let n;return n=Bl(t,zp(),1-zp()),n=Cu(vo(n,$o(1,n))),Xu(function(e,t){if(!ae(e.shape,t.shape))throw new Vp(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return ro((()=>{const n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function Ay(e,t){return ro((()=>{const n=ky(e,-1),r=ky(t,-1),a=wo(n,r);return Nu(Tu(a,-1))}))}wy.constructors={};const Ty={meanSquaredError:Ey,meanAbsoluteError:Cy,meanAbsolutePercentageError:Sy,meanSquaredLogarithmicError:function(e,t){return ro((()=>{const n=Bl(t,zp(),Number.MAX_VALUE),r=Cu(yo(1,n)),a=Bl(e,zp(),Number.MAX_VALUE),s=Cu(yo(1,a));return Xu(ng($o(r,s)),-1)}))},squaredHinge:function(e,t){return ro((()=>{const n=Vo(0,$o(1,wo(e,t)));return Xu(ng(n),-1)}))},hinge:function(e,t){return ro((()=>{const n=Vo(0,$o(1,wo(e,t)));return Xu(n,-1)}))},categoricalHinge:function(e,t){return ro((()=>{const n=Tu(wo(e,t),-1),r=Au(wo($o(1,e),t),-1);return Vo(0,yo(1,$o(r,n)))}))},logcosh:function(e,t){return ro((()=>{const n=Math.log(2),r=$o(t,e),a=$o(yo(r,Iu(wo(-2,r))),n);return Xu(a,-1)}))},categoricalCrossentropy:Ny,sparseCategoricalCrossentropy:Iy,binaryCrossentropy:Dy,kullbackLeiblerDivergence:function(e,t){return ro((()=>{const n=Bl(e,zp(),1),r=Bl(t,zp(),1);return Tu(wo(e,Cu(vo(n,r))),-1)}))},poisson:function(e,t){return ro((()=>{const n=Cu(yo(zp(),t));return Xu($o(t,wo(e,n)),-1)}))},cosineProximity:Ay};function Ry(e){if("string"==typeof e){if(e in Ty)return Ty[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Vp(t)}return e}function Fy(e,t){return ro((()=>{const n=wo(.5,ic(t)),r=Hm(pu(t,n),e.dtype);return Xu(tu(e,r),-1)}))}function Oy(e,t){return ro((()=>Hm(tu(Qo(e,-1),Qo(t,-1)),"float32")))}function By(e,t){return ro((()=>Uu(e.equal(1),t.equal(1)).sum().cast("float32")))}function My(e,t){return ro((()=>{const n=By(e,t),r=function(e,t){return ro((()=>Uu(e.equal(0),t.equal(1)).sum().cast("float32")))}(e,t),a=n.add(r);return nu(pu(a,0),n.div(a),0).cast("float32")}))}function $y(e,t){return Dy(e,t)}function Py(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),(t=t.argMax(-1)).dtype!==e.dtype&&(t=t.asType(e.dtype)),tu(e,t).asType("float32")}const Ly=Ny,zy=Iy,Wy={binaryAccuracy:Fy,categoricalAccuracy:Oy,precision:My,categoricalCrossentropy:Ly,sparseCategoricalCrossentropy:zy,mse:Ey,MSE:Ey,mae:Cy,MAE:Cy,mape:Sy,MAPE:Sy,cosine:Ay};function Uy(e){if("string"==typeof e&&e in Wy)return Wy[e];if("string"!=typeof e&&null!=e)return e;throw new Vp(`Unknown metric ${e}`)}function Vy(e){if(qp(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(Ty))if(Ty[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Wy))if(Wy[n]===e){t=n;break}return void 0!==t?t:e.name}}function jy(e,t,n=!1){if(null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!Hy(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){const n=JSON.stringify(e);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function Hy(e){if(null===e)return!0;if("object"==typeof e){if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const n of t){if("string"!=typeof n)return!1;if(!Hy(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!Hy(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function Gy(e,t,n=console.log){let r="";for(let n=0;n0&&(r=r.slice(0,r.length-1)+" "),r+=e[n],r=r.slice(0,t[n]),r+=" ".repeat(t[n]-r.length);n(r)}function qy(e,t,n){let r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}Gy([`${e.name} (${e.getClassName()})`,r,e.countParams().toString()],t,n)}function Ky(e,t,n,r){let a;try{a=JSON.stringify(e.outputShape)}catch(e){a="multiple"}const s=[];for(const t of e.inboundNodes)if(!(null!=n&&n.length>0&&-1===n.indexOf(t)))for(let e=0;ee.name)),l=[],u=t.names();for(const e of o)-1!==u.indexOf(e)?l.push(t.getValue(e)):l.push(null);null!=r&&(r.maxNumTensors=-1/0,r.minNumTensors=1/0);const c=o.join(",")+"|"+t.names().join(",");let h,f;if(null==eb[c]){const e=function(e,t){Z(null!=e&&e.length>0,(()=>"Expected at least one fetch, got none"));let n=[],r={};if(1===e.length){const a=ab(e[0],t);n=a.sorted,r=a.recipientMap}else{const a=new Set;for(const s of e){const{sorted:e,recipientMap:i}=ab(s,t);for(const t of e)a.has(t.name)||(n.push(t),a.add(t.name));for(const e in i)null==r[e]&&(r[e]=new Set),i[e].forEach((t=>r[e].add(t)))}}return{sorted:n,recipientCounts:rb(r)}}(i,t);h=e.sorted,f=e.recipientCounts,eb[c]=h,tb[c]=f}h=eb[c],f={},a||Object.assign(f,tb[c]);const d=new Qy(t);for(let e=0;er.maxNumTensors&&(r.maxNumTensors=e),e0;){const e=s[s.length-1];if(n.has(e.name)){s.pop();continue}const t=i[i.length-1]===s.length-1;if(0===e.inputs.length||t)s.pop(),r.push(e),n.add(e.name),t&&i.pop();else{i.push(s.length-1);for(const t of e.inputs)null==a[t.name]&&(a[t.name]=new Set),a[t.name].add(e.name),n.has(t.name)||s.push(t)}}return{sorted:r,recipientMap:a}}function sb(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;te.name))}`);am(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map((e=>e.name))}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const e of this.outputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;this.outputLayers.push(t),this.outputLayersNodeIndices.push(n),this.outputLayersTensorIndices.push(r)}for(const e of this.inputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;qp(0===n,"input layer has >1 nodes"),qp(0===r,"input layer has >1 tensors"),this.inputLayers.push(t),this.inputLayersNodeIndices.push(n),this.inputLayersTensorIndices.push(r)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let t=0;te.shape)),this.internalOutputShapes=this.outputs.map((e=>e.shape));const t={},n={},r={},a={},s={},i=[],o=(e,t,n,r,a,l)=>{null!=r&&null!=a&&null!=l||(r=e.sourceLayer,a=e.nodeIndex,l=e.tensorIndex);const u=r.inboundNodes[a];if(-1!==n.indexOf(u))throw new Up(`The tensor ${e.name} at layer "${r.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(ib.nodeKey(r,a)),r.id in s||(s[r.id]=Object.keys(s).length),-1===n.indexOf(u)&&n.push(u);const c=u.inboundLayers.length;for(let e=0;e=0;)n.splice(n.indexOf(u),1);i.push(u)},l=[],u=[];for(const e of this.outputs)o(e,l,u);const c=i.slice().reverse();for(const e of c){n[e.id]=e,e.id in t||(t[e.id]=0);let s=t[e.id];const i=null==r[e.outboundLayer.id]?0:r[e.outboundLayer.id];s=Math.max(s,i),r[e.outboundLayer.id]=s,a[e.outboundLayer.id]=e.outboundLayer,t[e.id]=s;for(let r=0;rparseInt(e,10))).sort(rm);this.layers=[];for(const e of d){const t=f[e];t.sort(((e,t)=>{const n=s[e.id],r=s[t.id];return nr?1:0}));for(const e of t)e instanceof ib&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=f,d=Object.keys(h).map((e=>parseInt(e,10))).sort(rm);const p=this.inputs.slice(),m=[];for(const e of d)for(const t of h[e]){const e=t.outboundLayer;if(null!=e){for(const n of t.inputTensors)if(-1===p.indexOf(n))throw new Up(`Graph disconnected: cannot obtain value for tensor ${n} at layer "${e.name}". The following previous layers were accessed without issue: ${m}`);for(const e of t.outputTensors)p.push(e);m.push(e.name)}}this.nodesByDepth=h;const g=this.layers.map((e=>e.name));for(const e of g){const t=g.filter((t=>t===e)).length;if(1!==t)throw new Up(`The name "${e}" is used ${t} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new sy({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map((e=>null)),outputMasks:this.outputs.map((e=>null)),inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs.map((e=>e.shape))}),this.built=!0,this._refCount=1}assertNotDisposed(){if(0===this._refCount)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach((t=>{t._trainableWeights.forEach((t=>t.trainable=e))})),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Vp("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.layers)t.push(...e.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const n={};let r=0;for(const e of this.layers)for(const t of e.weights){if(null!=n[t.originalName])throw new Vp(`Duplicate weight name: ${t.originalName}`);n[t.originalName]=t,r++}const a=[];for(const r in e){let s=r;if(null==n[r]){const e=r.split("/");s=e.slice(0,-2).concat([e[e.length-1]]).join("/")}if(null!=n[s])a.push([n[s],e[r]]);else if(t)throw new Vp(`Provided weight data has no target variable: ${r}`);delete n[s]}if(t){const e=[];for(const t in n)e.push(t);if(e.length>0)throw new Vp(`${e.length} of ${r} weights are not set: ${e}`)}ty(a)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Zy}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=Jy(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return ro((()=>{e=Yp(e);const n=new Qy;for(let t=0;t{let n;return e=Yp(e),n=null==t?Gp(null,e.length):Yp(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=Xg(e);if(t.length!==this.inputLayers.length)throw new Vp(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(rm);if(r.length>1)for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer;if(-1!==this.inputLayers.map((e=>e.id)).indexOf(t.id))continue;const r=[];for(let t=0;tparseInt(e,10))).sort(rm);for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer,r=e.inputTensors,a=e.outputTensors,s=new Array;for(const e of r)e.id in n&&s.push(n[e.id]);if(s.length===r.length){let r,i,o,l,u={};if(null!=e.callArgs&&(u=e.callArgs),1===s.length){const[e,n]=s[0];null==u.mask&&(u.mask=n),o=Yp(t.call(e,u)),l=Yp(t.computeMask(e,n)),r=[e],i=[n]}else r=s.map((e=>e[0])),i=s.map((e=>e[1])),null==u.mask&&(u.mask=i),o=Yp(t.call(r,u)),l=Yp(t.computeMask(r,i));if(t.activityRegularizer)throw new jp("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let e=0;e{const e=[];for(const t of this.layers)for(let n=0;n0){const e=[];for(let n=0;n0&&e.apply(Xp(n),r)}function l(e){const n=e.name,s=xy(e,null!=t.customObjects?t.customObjects:{});s.setFastWeightInitDuringBuild(r),a[n]=s,e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Vp(`Corrupted configuration, expected array for nodeData: ${e}`);i(s,e)}))}const u=t.name,c=t.layers;for(const e of c)l(e);for(;!sm(s);)for(const e of c){const t=a[e.name];if(t.name in s){const e=s[t.name];delete s[t.name];for(const n of e)o(t,n)}}const h=[],f=[],d=t.inputLayers;for(const e of d){const t=e[0],n=e[1],r=e[2];qp(t in a);const s=a[t].inboundNodes[n].outputTensors;h.push(s[r])}const p=t.outputLayers;for(const e of p){const t=e[0],n=e[1],r=e[2];qp(t in a);const s=a[t].inboundNodes[n].outputTensors;f.push(s[r])}return new e({inputs:h,outputs:f,name:u})}get stateful(){if(this._stateful)throw new Vp("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){ro((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function ob(e,t){return function(e,t,n){const r=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>null));if(1===r)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==r)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${r} outputs. Make sure a set of weights is provided for each model output.`);return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){const n=[];return t.forEach((t=>{t in e?n.push(e[t]):n.push(null)})),n}throw new Error(`The model has multiple (${r}) outputs, so ${n} must be either an array with ${r} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}(e,t,"classWeight")}async function lb(e,t,n,r){if(null!=t||null!=r)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=ro((()=>{if(1===e.shape.length)return e.clone();if(2===e.shape.length){if(e.shape[1]>1){const t=1;return e.argMax(t)}if(1===e.shape[1])return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)})),r=Array.from(await t.data());ao(t);const a=[];return r.forEach((e=>{if(null==n[e])throw new Error(`classWeight must contain all classes in the training data. The class ${e} exists in the data but not in classWeight`);a.push(n[e])})),sh(a,"float32")}return null}function ub(e,t){return wo(e,t)}function cb(e,t){let n,r;const a=t;n=a.xs,r=a.ys,Z(null!=n&&null!=r,(()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`));const s=hb("input",e.inputNames,n),i=hb("output",e.outputNames,r),o=s[0].shape[0];Z(s.length===e.inputs.length,(()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`)),Z(i.length===e.outputs.length,(()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`));for(let t=0;t`Batch size mismatch: input ${e.inputNames[t]} has ${s[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));for(let t=0;t`Batch size mismatch: output ${e.outputNames[t]} has ${i[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));return{xs:s,ys:i}}function hb(e,t,n){if(n instanceof ma)return[n];if(Array.isArray(n))return Z(n.length===t.length,(()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`)),n;{const r=[];for(const a of t){if(null==n[a])throw new Vp(`The feature data generated by the dataset lacks the required ${e} key '${a}'.`);r.push(n[a])}return r}}function fb(e){return"function"==typeof e.iterator}function db(e){Z(e>0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function pb(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>qm(e,t,n-t))):qm(e,t,n-t)}function mb(e,t){return ro((()=>null==e?null:Array.isArray(e)?e.map((e=>mb(e,t))):tg(e,"int32"===t.dtype?t:t.toInt())))}function gb(e,t){const n=[];let r=0,a=null;for(;r=e&&(a=e),n.push([r,a]),r=a;return n}function yb(e){const t=[];e instanceof ma&&(e=[e]);for(let n=0;nn.push(e.id)));else if(null!=t)for(const e in t){const r=t[e];n.push(r.id)}const r=[];if(e instanceof ma)-1===n.indexOf(e.id)&&r.push(e);else if(Array.isArray(e))e.forEach((e=>{-1===n.indexOf(e.id)&&r.push(e)}));else if(null!=e)for(const t in e){const a=e[t];-1===n.indexOf(a.id)&&r.push(a)}r.forEach((e=>{e.isDisposed||e.dispose()}))}function vb(e){return Array.isArray(e)}function wb(e){return!function(e){return e instanceof ma}(e)&&!vb(e)}function _b(e,t,n,r=!0,a=""){if(null==t||0===t.length){if(null!=e){let t=!1;if(vb(e)&&e.length>0)t=!0;else if(wb(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Vp(`Error when checking model ${a} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let s;if(wb(e)){e=e,s=[];for(const n of t){if(null==e[n])throw new Vp(`No data provided for "${n}". Need data for each key in: ${t}`);s.push(e[n])}}else if(vb(e)){if((e=e).length!==t.length)throw new Vp(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new Vp(`The model ${a} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=yb(s),null!=n)for(let e=0;e=0&&o!==l)throw new Vp(`Error when checking ${a}: expected ${t[e]} to have shape [${n[e]}], but got array with shape [${i.shape}].`)}}return s}function xb(e,t,n,r=!0,a=""){let s;if(Array.isArray(e)){if(e.length!==t.length)throw new Vp(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${t.length} Tensor(s), but instead got ${e.length} Tensors(s).`);s=e}else{if(t.length>1)throw new Vp(`The model expects ${t.length} ${a} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(null!=n)for(let e=0;e1||1===e.length&&e[0].inboundLayers.length>1){t=!1;break}r.push(...e)}if(t)for(const n of e.layers){let e=!1;for(const a of n.inboundNodes)if(-1!==r.indexOf(a)){if(e){t=!1;break}e=!0}if(!t)break}return t}(e),s=["Layer (type)","Output shape","Param #"];let i;if(a?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map((e=>Math.floor(t*e)))),!a){s.push("Receives inputs"),i=[];for(const t in e.nodesByDepth)i.push(...e.nodesByDepth[t])}r("_".repeat(t)),Gy(s,n,r),r("=".repeat(t));const o=e.layers;for(let e=0;eVf.adagrad(.01),Adadelta:()=>Vf.adadelta(1,.95,zp()),Adam:()=>Vf.adam(.001,.9,.999,zp()),Adamax:()=>Vf.adamax(.002,.9,.999,zp(),0),RMSProp:()=>Vf.rmsprop(.001,.9,0,zp()),SGD:()=>Vf.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new Vp(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Ro))throw new Vp("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Vp(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const n=e.loss;t=n.map((e=>Ry(e)))}else{const n=Ry(e.loss);this.outputs.forEach((e=>{t.push(n)}))}else{e.loss=e.loss;for(const t in e.loss)if(-1===this.outputNames.indexOf(t))throw new Vp(`Unknown entry in loss dictionary: "${t}". Only expected the following keys: ${this.outputNames}`);for(const n of this.outputNames)null==e.loss[n]&&console.warn(`Output "${n}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${n} during training`),t.push(Ry(e.loss[n]))}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let e=0;e{for(let e=0;e1&&(this.metricsTensors.push([t,e]),this.metricsNames.push(this.outputNames[e]+"_loss"))}}));const r=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>[]));let n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);n=e}if(Array.isArray(n))return t.map((e=>n));{const e=[];for(const r of t){let t=n.hasOwnProperty(r)?n[r]:[];Array.isArray(t)||(t=[t]),e.push(t)}return e}}(e.metrics,this.outputNames),a=(e,t,n)=>{this.outputNames.length>1&&(t=this.outputNames[e]+"_"+t),this.metricsNames.push(t),this.metricsTensors.push([n,e])};Bm("metric",(()=>{for(let e=0;e{let n,r,s;for(const i of t){if("string"==typeof i&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(i)){const t=this.internalOutputShapes[e];let a;1===t[t.length-1]||this.lossFunctions[e]===Dy?-1!==["accuracy","acc"].indexOf(i)?r=Fy:-1!==["crossentropy","ce"].indexOf(i)&&(r=$y):this.lossFunctions[e]===Iy?-1!==["accuracy","acc"].indexOf(i)?r=Py:-1!==["crossentropy","ce"].indexOf(i)&&(r=zy):-1!==["accuracy","acc"].indexOf(i)?r=Oy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Ly),-1!==["accuracy","acc"].indexOf(i)?a="acc":-1!==["crossentropy","ce"].indexOf(i)&&(a="ce"),s=r,n=""+a}else{const e=Uy(i);s=e,n=""+Vy(i)}let t;Bm(n,(()=>{t=s})),a(e,n,t)}})(r[e])})),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){null!=this.collectedTrainableWeights&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){const r=null==n.batchSize?32:n.batchSize;db(r);const a=this.standardizeUserDataXY(e,t,!0,r);try{const s=a[0].concat(a[1]);this.makeTestFunction();const i=this.testFunction;return Xp(this.testLoop(i,s,r,n.verbose,n.steps))}finally{bb(a[0],e),bb(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),async function(e,t,n){const r=null!=(n=n||{}).batches,a=e.testFunction;let s=[];if(n.verbose>0)throw new jp("Verbose mode is not implemented yet.");Z(!r||n.batches>0&&Number.isInteger(n.batches),(()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`));const i="function"==typeof t.next?t:await t.iterator();let o=0,l=0;for(;!r||l{if(t.value){const{xs:n,ys:r}=cb(e,t.value),i=n.concat(r),u=ro((()=>a(i)));if(ao(i),0===l)for(let e=0;eyo(s[e],wo(c,t)))),l>0&&ao(n)}ao(u),o+=c,++l}return s})),t.done){r&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let e=0;ee.name));for(let r=0;r0){const n=[];throw t.forEach(((t,r)=>{null==t&&n.push(e[r])})),new Vp(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return ro((()=>{const r=this.checkNumSamples(e);if(n)throw new jp("Verbose predictLoop() is not implemented yet.");const a=gb(r,t),s=this.outputs.map((e=>[]));for(let t=0;t{const n=a[t][0],r=a[t][1],s=pb(e,n,r),i=[];if(Array.isArray(s))for(let e=0;es[t].push(e)));return Xp(s.map((e=>xl(e,0))))}))}predict(e,t={}){const n=yb(e);xb(n,this.inputNames,this.feedInputShapes,!1);try{const r=null==t.batchSize?32:t.batchSize;return db(r),this.predictLoop(n,r)}finally{bb(n,e)}}predictOnBatch(e){xb(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,r){if(null==this.optimizer_)throw new Up("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const a=[];for(let e=0;ee.shape[0])));r.sort();const a=am(t.map((e=>e.shape[0])));if(a.sort(),r.length>1)throw new Vp(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map((e=>e.shape)))}`);if(a.length>1)throw new Vp(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map((e=>e.shape)))}`);if(r.length>0&&a.length>0&&!ae(r,a))throw new Vp(`Input Tensors should have the same number of samples as target Tensors. Found ${r[0]} input sample(s) and ${a[0]} target sample(s).`)}(e=_b(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=_b(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){const r=[Ey,Dy,Ny];for(let a=0;a0&&e[0].shape[0]%r!=0)throw new Vp(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${r}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,r,a=!0,s){const[i,o]=this.standardizeUserDataXY(e,t,a,s);if(null!=n)throw new Error("sample weight is not supported yet.");let l=null;if(null!=r){const e=ob(r,this.outputNames);l=[];for(let t=0;t{const s=this.checkNumSamples(t,n,a,"steps"),i=[];if(r>0)throw new jp("Verbose mode is not implemented yet.");if(null!=a)throw new jp("steps mode in testLoop() is not implemented yet");{const r=gb(s,n),a=sh(jm(0,s));for(let n=0;n1&&(a+=`_${Kp(e.slice(0,n),r)}`),t.push(a)}return t}makeTrainFunction(){return e=>{const t=[],n=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+2*this.outputs.length),s=[],i=this.collectedTrainableWeights.map((e=>e.read()));return[this.optimizer_.minimize((()=>{const e=[];for(let t=0;t1&&e{l=yo(l,e)})),l}),!0,i)].concat(s)}}makeTestFunction(){this.testFunction=e=>ro((()=>{const t=[];let n;const r=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let e=0;e0){if(m=!0,2!==r.validationData.length)throw 3===r.validationData.length?new jp("validationData including sample weights is not supported yet."):new Vp(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${r.validationData} is invalid.`);i=r.validationData[0],o=r.validationData[1];const t=!0,n=await e.standardizeUserData(i,o,null,null,t,h);l=n[0],u=n[1],p=l.concat(u)}else if(null!=r.validationSplit&&r.validationSplit>0&&r.validationSplit<1){m=!0;const e=Math.floor(a[0].shape[0]*(1-r.validationSplit)),t=a[0].shape[0];l=pb(a,e,t),a=pb(a,0,e),u=pb(s,e,t),s=pb(s,0,e),p=l.concat(u)}else null!=r.validationSteps&&(m=!0);const g=a.concat(s).concat(c);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),b=e.getDedupedMetricsNames();let v,w;m?(e.makeTestFunction(),v=e.testFunction,w=b.slice().concat(b.map((e=>"val_"+e)))):(v=null,p=[],w=b.slice());const _=vy(r.callbacks,r.yieldEvery);return await async function(e,t,n,r,a,s,i,o,l,u,c,h,f,d,p){null==a&&(a=32),null==s&&(s=1),null==c&&(c=!0),null==f&&(f=0);let m=!1;null!=l&&null!=u&&(m=!0);const g=e.checkNumSamples(n,a,d,"steps_per_epoch");let y;null!=g&&(y=jm(0,g)),null==i&&(i=1);const{callbackList:b,history:v}=_y(o,i,s,f,g,d,a,m,h);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let i=f;i{const f=o[c][0],d=o[c][1],p=qm(i,f,d-f);h.batch=c,h.size=d-f;const g=mb(n,p),y=t(g);for(let e=0;e"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).")),Z(null!=n,(()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.")),Z(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),(()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`)),Z(!r||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),(()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`)),Z(null==n.validationSplit,(()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.")),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const a=null!=n.validationData;let s,i;if(a)if(fb(n.validationData))Z(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),(()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`));else{const e=function(e){if(3===e.length)throw new jp("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}(n.validationData);s=e.xs,i=e.ys}const o=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let u;u=a?l.slice().concat(l.map((e=>"val_"+e))):l.slice();const c=vy(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:f,history:d}=_y(c,h,n.epochs,null,null,function(e,t){let n=null;return null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size),n}(t,n),null,a,u);f.setModel(e),e.history=d,await f.onTrainBegin(),e.stopTraining_=!1;let p=null==n.initialEpoch?0:n.initialEpoch,m=await t.iterator();for(;p=n.batchesPerEpoch:t.done){if(a){let t;t=fb(n.validationData)?Yp(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):Yp(e.evaluate(s,i,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;nJp(e)))}else{const t=Object.keys(this.loss);e={};const n=this.loss;for(const r of t){if("string"!=typeof n[r])throw new Error("Serialization of non-string loss is not supported.");e[r]=Jp(n[r])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[Jp(Vy(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>Jp(Vy(e))));{const e={};for(const t in this.metrics)e[t]=Jp(Vy(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");const t=xy(Yy(e.optimizer_config));let n,r;if("string"==typeof e.loss)n=Zp(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>Zp(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=Zp(e.loss[t])}if(Array.isArray(e.metrics))r=e.metrics.map((e=>Zp(e)));else if(null!=e.metrics){r={};for(const t in e.metrics)r[t]=Zp(e.metrics[t])}this.compile({loss:n,metrics:r,optimizer:t})}async save(e,t){if("string"==typeof e){const t=os(e);if(0===t.length)throw new Vp(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Vp(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Vp("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await Xa(this.getNamedWeights(t)),r={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${Zy}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){r.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:a}=await Xa(await this.optimizer.getWeights(),e);n.specs.push(...a),n.data=es([n.data,t])}if(null!=this.userDefinedMetadata){const e=!0;jy(this.userDefinedMetadata,this.name,e),r.userDefinedMetadata=this.userDefinedMetadata}return r.weightData=n.data,r.weightSpecs=n.specs,e.save(r)}setUserDefinedMetadata(e){jy(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}kb.className="Model",Mi(kb);class Eb extends kb{}async function Cb(e,t){"modelTopology"in e||(e={modelTopology:e});let n=(e=e).modelTopology;null!=n.model_config&&(n=n.model_config);const r=xy(Yy(n),t);if(null!=e.weightsManifest){const t=await Xs(e.weightsManifest,e.pathPrefix,r.weights.map((e=>e.originalName))),n={};for(const e of r.weights)n[e.originalName]=t[e.originalName];r.loadWeights(n),ao(t)}return r}Eb.className="Functional",Mi(Eb);class Sb extends kb{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:qg("sequential_"),null!=e.layers)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some((e=>e<0)))throw new Vp(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof Sb||e instanceof kb;let n;if(t){if(n=e,1!==n.outputs.length)throw new Vp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new Vp("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new Vp("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=cy({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(t)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new Vp(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(1!==e.inboundNodes[0].outputTensors.length)throw new Vp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=ly(this.outputs[0])}this.inboundNodes=[],new sy({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Gp(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs[0].shape})}else{const t=e.apply(this.outputs[0]);if(Array.isArray(t))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[t],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return null==this.model&&this.build(),this.model.call(e,t)}build(e){if(Jg(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new kb({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){null==this.model&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return null==this.model&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return null==this.model?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Up("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},r=!1){let a,s={};if(t instanceof Array){if(null==t[0].className||"Merge"===t[0].className)throw new Vp("Legacy serialization format not supported yet.");a=t}else Z(null!=t.layers,(()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.")),a=t.layers,delete t.layers,s=t;const i=new e(s);if(!(i instanceof Sb))throw new jp(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(const e of a){const t=xy(e,void 0,r);r&&t.setFastWeightInitDuringBuild(!0),i.add(t)}return i}set stopTraining(e){if(null==this.model)throw new Vp("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(null==this.model)throw new Vp("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}}function Nb(e){return new kb(e)}function Ib(e){return new Sb(e)}function Db(e,t){return null==t&&(t={}),async function(e,t){if(null==t&&(t={}),"string"==typeof e){const n=ls(e,t);if(0===n.length)n.push(ti(e,t));else if(n.length>1)throw new Vp(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return async function(e,t,n){if(null==n&&(n={}),null==e.load)throw new Vp("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const r=await e.load();let a=r.modelTopology;null!=a.model_config&&(a=a.model_config);const s=null==n.strict||n.strict,i=null!=r.weightData&&null!=r.weightSpecs&&s,o=xy(Yy(a),void 0,i),l=r.trainingConfig;if(null!=l&&o.loadTrainingConfig(l),null!=r.userDefinedMetadata&&o.setUserDefinedMetadata(r.userDefinedMetadata),null!=r.weightData){if(null==r.weightSpecs)throw new Vp("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:e,optimizerWeights:t}=function(e,t){const n=Ya(e,t),r={},a=[];return t.forEach((e=>{"optimizer"===e.group?a.push({name:e.name,tensor:n[e.name]}):r[e.name]=n[e.name]})),{modelWeights:r,optimizerWeights:a}}(r.weightData,r.weightSpecs);o.loadWeights(e,s),null!=o.optimizer&&t.length>0&&await o.optimizer.setWeights(t),ao(e),ao(t.map((e=>e.tensor)))}return o}(e,0,t)}(e,t)}function Ab(e){return cy(e)}function Tb(e,t){wy.registerCallbackConstructor(e,t)}Sb.className="Sequential",Mi(Sb);class Rb extends Oi{getConfig(){return{}}}class Fb extends Rb{apply(e,t=1){return function(e,t=1){if(1!==t)throw new jp(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return su(e)}(e,t)}}Fb.className="elu",Mi(Fb);class Ob extends Rb{apply(e){return $c(e)}}Ob.className="selu",Mi(Ob);class Bb extends Rb{apply(e){return Ic(e)}}Bb.className="relu",Mi(Bb);class Mb extends Rb{apply(e){return ro((()=>Ju(6,Ic(e))))}}Mb.className="relu6",Mi(Mb);class $b extends Rb{apply(e){return e}}$b.className="linear",Mi($b);class Pb extends Rb{apply(e){return kl(e)}}Pb.className="sigmoid",Mi(Pb);class Lb extends Rb{apply(e){return function(e){return ro((()=>{const t=yo(.5,wo(.2,e));return Bl(t,0,1)}))}(e)}}Lb.className="hardSigmoid",Mi(Lb);class zb extends Rb{apply(e){return Iu(e)}}zb.className="softplus",Mi(zb);class Wb extends Rb{apply(e){return function(e){return ro((()=>vo(e,Lo(e).add(1))))}(e)}}Wb.className="softsign",Mi(Wb);class Ub extends Rb{apply(e){return Cl(e)}}Ub.className="tanh",Mi(Ub);class Vb extends Rb{apply(e,t=-1){return qc(e,t)}}Vb.className="softmax",Mi(Vb);class jb extends Rb{apply(e,t=-1){return Ru(e,t)}}jb.className="logSoftmax",Mi(jb);class Hb extends Rb{apply(e,t=1){return ro((()=>kl(e.mul(t)).mul(e)))}}function Gb(e){return e.getClassName()}function qb(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"activation")}function Kb(e){if(null==e){return qb({className:"linear",config:{}})}if("string"==typeof e){const t={};return t.className=e,t.config={},qb(t)}return e instanceof Rb?e:qb(e)}function Xb(e){if(null!=e&&"object"!=typeof e)throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}Hb.className="swish",Mi(Hb);class Yb extends Oi{}class Jb extends Yb{constructor(e){super(),Xb(e),this.l1=null==e||null==e.l1?.01:e.l1,this.l2=null==e||null==e.l2?.01:e.l2,this.hasL1=0!==this.l1,this.hasL2=0!==this.l2}apply(e){return ro((()=>{let t=ac([1]);return this.hasL1&&(t=yo(t,Tu(wo(this.l1,Lo(e))))),this.hasL2&&(t=yo(t,Tu(wo(this.l2,ng(e))))),t.asScalar()}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}Jb.className="L1L2",Mi(Jb);const Zb={l1l2:"L1L2"};function Qb(e){return em(e)}function ev(e,t={}){return nm(e,Bi.getMap().classNameMap,t,"regularizer")}function tv(e){return null==e?null:"string"==typeof e?ev({className:e in Zb?Zb[e]:e,config:{}}):e instanceof Yb?e:ev(e)}class nv extends oy{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=Yg(e);let n=Ic(e);return null!=this.maxValue&&(n=Bl(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}nv.className="ReLU",Mi(nv);class rv extends oy{constructor(e){super(null==e?{}:e),this.DEFAULT_ALPHA=.3,null==e&&(e={}),this.alpha=null==e.alpha?this.DEFAULT_ALPHA:e.alpha}call(e,t){const n=Yg(e);return wu(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}rv.className="LeakyReLU",Mi(rv);class av extends oy{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Ig(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=tv(e.alphaRegularizer),this.alphaConstraint=wm(e.alphaConstraint),null==e.sharedAxes)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new Vp(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=Jg(e)).slice(1);if(null!=this.sharedAxes)for(const e of this.sharedAxes)t[e-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const n={};if(null!=this.sharedAxes)for(let t=1;t(Tm(t),"channelsFirst"===t?li(e,[0,2,3,1]):e)))}function fv(e,t){return ro((()=>(Tm(t),"channelsFirst"===t?li(e,[0,2,3,4,1]):e)))}function dv(e,t,n,r=[1,1],a="valid",s,i,o=null){return ro((()=>{if(null==s&&(s="channelsLast"),Tm(s),3!==e.rank&&4!==e.rank)throw new Vp(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Vp(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=hv(e,s);if("causal"===a)throw new jp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Xh({x:l,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===s&&(l=li(l,[0,3,1,2])),l}))}ov.className="Softmax",Mi(ov);class pv extends oy{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",pv.verifyArgs(t),this.rank=e,lm(this.rank,"rank"),1!==this.rank&&2!==this.rank&&3!==this.rank)throw new jp(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=lv(t.kernelSize,e,"kernelSize"),this.strides=lv(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,Rm(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,Tm(this.dataFormat),this.activation=Kb(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=Ig(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=wm(t.biasConstraint),this.biasRegularizer=tv(t.biasRegularizer),this.activityRegularizer=tv(t.activityRegularizer),this.dilationRate=lv(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Vp(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(2===this.rank){if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate];else if(2!==this.dilationRate.length)throw new Vp(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(3===this.rank)if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(3!==this.dilationRate.length)throw new Vp(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if(qp("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!om(e.kernelSize,"number",1,3))throw new Vp(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Gb(this.activation),useBias:this.useBias,biasInitializer:Ng(this.biasInitializer),biasRegularizer:Qb(this.biasRegularizer),activityRegularizer:Qb(this.activityRegularizer),biasConstraint:bm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class mv extends pv{constructor(e,t){super(e,t),this.kernel=null,mv.verifyArgs(t),this.filters=t.filters,lm(this.filters,"filters"),this.kernelInitializer=Ig(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=wm(t.kernelConstraint),this.kernelRegularizer=tv(t.kernelRegularizer)}build(e){e=Jg(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Vp(`The channel dimension of the input should be defined. Found ${e[t]}`);const n=e[t],r=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return ro((()=>{let t;e=Yg(e);const n=null==this.bias?null:this.bias.read(),r=cm(this.activation.getClassName());if(null!=r&&2===this.rank)t=dv(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(1===this.rank)t=function(e,t,n,r=1,a="valid",s,i=1){return ro((()=>{if(null==s&&(s="channelsLast"),Tm(s),3!==e.shape.length)throw new Vp(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Vp(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Vp(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if("channelsFirst"===s&&(e=li(e,[0,2,1])),"causal"===a)throw new jp("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Wl(e,t,r,"same"===a?"same":"valid","NWC",i);return null!=n&&(o=ag(o,n)),o}))}(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=dv(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else{if(3!==this.rank)throw new jp("convolutions greater than 3D are not implemented yet.");t=function(e,t,n,r=[1,1,1],a="valid",s,i){return ro((()=>{if(null==s&&(s="channelsLast"),Tm(s),4!==e.rank&&5!==e.rank)throw new Vp(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Vp(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=fv(e,s);if("causal"===a)throw new jp("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=jl(o,t,r,"same"===a?"same":"valid","NDHWC",i),null!=n&&(o=ag(o,n)),"channelsFirst"===s&&(o=li(o,[0,4,1,2,3])),o}))}(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate)}null!=this.activation&&(t=this.activation.apply(t))}return t}))}computeOutputShape(e){e=Jg(e);const t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2);for(let e=0;e 0 but got ${JSON.stringify(e.filters)}`)}}class gv extends mv{constructor(e){super(2,e),gv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!om(e.kernelSize,"number",1,2))throw new Vp(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}gv.className="Conv2D",Mi(gv);class yv extends mv{constructor(e){super(3,e),yv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new Vp(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}yv.className="Conv3D",Mi(yv);class bv extends gv{constructor(e){if(super(e),this.inputSpec=[new ny({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Vp(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=Jg(e)).length)throw new Vp("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Vp("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],r=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",r,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ny({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return ro((()=>{let t=Yg(e);if(4!==t.shape.length)throw new Vp(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,r=n[0];let a,s;"channelsFirst"===this.dataFormat?(a=2,s=3):(a=1,s=2);const i=n[a],o=n[s],l=this.kernelSize[0],u=this.kernelSize[1],c=this.strides[0],h=this.strides[1],f=[r,cv(i,c,l,this.padding),cv(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=li(t,[0,2,3,1]));let d=Vl(t,this.kernel.read(),f,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(d=li(d,[0,3,1,2])),null!=this.bias&&(d=ag(d,this.bias.read(),this.dataFormat)),null!=this.activation&&(d=this.activation.apply(d)),d}))}computeOutputShape(e){const t=(e=Jg(e)).slice();let n,r,a;"channelsFirst"===this.dataFormat?(n=1,r=2,a=3):(n=3,r=1,a=2);const s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[r]=cv(t[r],o,s,this.padding),t[a]=cv(t[a],l,i,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}bv.className="Conv2DTranspose",Mi(bv);class vv extends mv{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,null==t.filters)throw new Vp("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Vp("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=t.padding&&"same"!==t.padding&&"valid"!==t.padding)throw new Vp(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,this.depthwiseInitializer=Ig(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=tv(t.depthwiseRegularizer),this.depthwiseConstraint=wm(t.depthwiseConstraint),this.pointwiseInitializer=Ig(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=tv(t.pointwiseRegularizer),this.pointwiseConstraint=wm(t.pointwiseConstraint)}build(e){if((e=Jg(e)).length{let t;if(e=Yg(e),1===this.rank)throw new jp("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=li(e,[0,2,3,1])),t=Pc(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=ag(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=li(t,[0,3,1,2])),t}))}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ng(this.depthwiseInitializer),e.pointwiseInitializer=Ng(this.pointwiseInitializer),e.depthwiseRegularizer=Qb(this.depthwiseRegularizer),e.pointwiseRegularizer=Qb(this.pointwiseRegularizer),e.depthwiseConstraint=bm(this.depthwiseConstraint),e.pointwiseConstraint=bm(this.pointwiseConstraint),e}}vv.className="SeparableConv";class wv extends vv{constructor(e){super(2,e)}}wv.className="SeparableConv2D",Mi(wv);class _v extends mv{constructor(e){super(1,e),_v.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!om(e.kernelSize,"number",1,1))throw new Vp(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}_v.className="Conv1D",Mi(_v);class xv extends oy{constructor(e){super(e),"number"==typeof e.cropping?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return ro((()=>{if(e=Yg(e),"channelsLast"===this.dataFormat){const t=Xm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Xm(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=Xm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Xm(t,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}}))}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}xv.className="Cropping2D",Mi(xv);class kv extends oy{constructor(e){var t;super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=null==e.size?this.DEFAULT_SIZE:e.size,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,im(Sm,"InterpolationFormat",t)}computeOutputShape(e){if("channelsFirst"===this.dataFormat){const t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}{const t=null==e[1]?null:this.size[0]*e[1],n=null==e[2]?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return ro((()=>{let t=Yg(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=li(t,[0,2,3,1]);const e=this.size[0]*n[2],r=this.size[1]*n[3],a="nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r]);return li(a,[0,3,1,2])}{const e=this.size[0]*n[1],r=this.size[1]*n[2];return"nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r])}}))}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}kv.className="UpSampling2D",Mi(kv);class Ev extends pv{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=Ig(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=wm(e.depthwiseConstraint),this.depthwiseRegularizer=tv(e.depthwiseRegularizer)}build(e){if((e=Jg(e)).length<4)throw new Vp(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new Vp(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const n=e[t],r=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",r,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return ro((()=>{let t=function(e,t,n=[1,1],r="valid",a,s){return ro((()=>{null==a&&(a="channelsLast"),Tm(a);let i=hv(e,a);if(4!==e.rank)throw new Vp(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Vp(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Zl(i,t,n,"same"===r?"same":"valid","NHWC",s),"channelsFirst"===a&&(i=li(i,[0,3,1,2])),i}))}(e=Yg(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=ag(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=Jg(e);const t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,a=uv(t,this.kernelSize[0],this.padding,this.strides[0]),s=uv(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],r,a,s]:[e[0],a,s,r]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ng(this.depthwiseInitializer),e.depthwiseRegularizer=Qb(this.depthwiseRegularizer),e.depthwiseConstraint=bm(this.depthwiseRegularizer),e}}function Cv(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new Vp("When inputs is an array, neither initialState or constants should be provided");null!=r&&(n=e.slice(e.length-r,e.length),e=e.slice(0,e.length-r)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function a(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=a(t),constants:n=a(n)}}function Sv(e,t,n,r=!1,a,s,i=!1,o=!1){return ro((()=>{const l=t.shape.length;if(l<3)throw new Vp(`Input should be at least 3D, but is ${l}D.`);const u=[1,0].concat(jm(2,l));if(t=li(t,u),null!=s)throw new jp("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=a&&((a=a.asType("bool").asType("float32")).rank===l-1&&(a=lu(a,-1)),a=li(a,u)),r&&(t=Ac(t,0),null!=a&&(a=Ac(a,0)));const c=[];let h,f=n;const d=t.shape[0],p=ph(t);let m,g;null!=a&&(m=ph(a));for(let t=0;te(n,f)));if(null==a)h=r[0],f=r[1];else{const e=ro((()=>{const e=m[t],n=ic(e).sub(e);return{output:r[0].mul(e).add(f[0].mul(n)),newStates:f.map(((t,a)=>r[1][a].mul(e).add(t.mul(n))))}}));h=e.output,f=e.newStates}o&&c.push(h)}return o&&(g=th(c,1)),[h,g,f]}))}Ev.className="DepthwiseConv2D",Mi(Ev);class Nv extends oy{constructor(e){let t;if(super(e),null==e.cell)throw new Vp("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new Bv({cells:e.cell}):e.cell,null==t.stateSize)throw new Vp("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=null!=e.returnSequences&&e.returnSequences,this.returnState=null!=e.returnState&&e.returnState,this.goBackwards=null!=e.goBackwards&&e.goBackwards,this._stateful=null!=e.stateful&&e.stateful,this.unroll=null!=e.unroll&&e.unroll,this.supportsMasking=!0,this.inputSpec=[new ny({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){return null==this.states_?jm(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((e=>null)):this.states_}setStates(e){this.states_=e}computeOutputShape(e){Kg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const n=t[0];let r;if(r=this.returnSequences?[e[0],e[1],n]:[e[0],n],this.returnState){const n=[];for(const r of t)n.push([e[0],r]);return[r].concat(n)}return r}computeMask(e,t){return ro((()=>{Array.isArray(t)&&(t=t[0]);const e=this.returnSequences?t:null;if(this.returnState){const t=this.states.map((e=>null));return[e].concat(t)}return e}))}get states(){if(null==this.states_){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ne.shape[e.shape.length-1])),a))throw new Vp(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map((e=>new ny({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){ro((()=>{if(!this.stateful)throw new Wp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Vp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>ac([n,e]))):this.states_=[ac([n,this.cell.stateSize])];else if(null==e)ao(this.states_),null!=this.keptStates&&(ao(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>ac([n,e]))):this.states_[0]=ac([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Vp(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);!0===t?this.keptStates.push(this.states_.slice()):ao(this.states_);for(let t=0;tso(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Cv(e,n,r,this.numConstants);e=a.inputs,n=a.initialState,r=a.constants;let s=[],i=[];if(null!=n){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(const e of n)this.stateSpec.push(new ny({shape:e.shape}));i=i.concat(this.stateSpec)}if(null!=r&&(t.constants=r,s=s.concat(r),this.numConstants=r.length),s[0]instanceof ry){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return ro((()=>{const n=null==t?null:t.mask,r=null==t?null:t.training;let a=null==t?null:t.initialState;e=Yg(e),null==a&&(a=this.stateful?this.states_:this.getInitialState(e));const s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(a.length!==s)throw new Vp(`RNN Layer has ${s} state(s) but was passed ${a.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const i={training:r},o=Sv(((e,t)=>{const n=this.cell.call([e].concat(t),i);return[n[0],n.slice(1)]}),e,a,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,r);const h=this.returnSequences?u:l;return this.returnState?[h].concat(c):h}))}getInitialState(e){return ro((()=>{let t=ac(e.shape);return t=Tu(t,[1,2]),t=Gm(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?Zm(t,[1,e]):t)):this.cell.stateSize>1?[Zm(t,[1,this.cell.stateSize])]:[t]}))}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(t.numConstants=this.numConstants);const n=this.cell.getConfig();return this.getClassName()===Nv.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){const r=xy(t.cell,n);return new e(Object.assign(t,{cell:r}))}}Nv.className="RNN",Mi(Nv);class Iv extends oy{}class Dv extends Iv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,lm(this.units,"units"),this.activation=Kb(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Ig(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=tv(e.kernelRegularizer),this.recurrentRegularizer=tv(e.recurrentRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.kernelConstraint=wm(e.kernelConstraint),this.recurrentConstraint=wm(e.recurrentConstraint),this.biasConstraint=wm(e.biasConstraint),this.dropout=Um([1,Vm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Um([1,Vm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Jg(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return ro((()=>{if(2!==(e=e).length)throw new Vp(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const r=null!=t.training&&t.training;let a;0ic(e),rate:this.dropout,training:r})),0ic(n),rate:this.recurrentDropout,training:r}));const s=this.dropoutMask,i=this.recurrentDropoutMask;a=eg(null!=s?wo(e,s):e,this.kernel.read()),null!=this.bias&&(a=ag(a,this.bias.read())),null!=i&&(n=wo(n,i));let o=yo(a,eg(n,this.recurrentKernel.read()));return null!=this.activation&&(o=this.activation.apply(o)),[o,o]}))}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Gb(this.activation),useBias:this.useBias,kernelInitializer:Ng(this.kernelInitializer),recurrentInitializer:Ng(this.recurrentInitializer),biasInitializer:Ng(this.biasInitializer),kernelRegularizer:Qb(this.kernelRegularizer),recurrentRegularizer:Qb(this.recurrentRegularizer),biasRegularizer:Qb(this.biasRegularizer),activityRegularizer:Qb(this.activityRegularizer),kernelConstraint:bm(this.kernelConstraint),recurrentConstraint:bm(this.recurrentConstraint),biasConstraint:bm(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}Dv.className="SimpleRNNCell",Mi(Dv);class Av extends Nv{constructor(e){e.cell=new Dv(e),super(e)}call(e,t){return ro((()=>{null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return new e(t)}}Av.className="SimpleRNN",Mi(Av);class Tv extends Iv{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Vp("GRUCell does not support reset_after parameter set to true.");this.units=e.units,lm(this.units,"units"),this.activation=Kb(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Kb(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Ig(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=tv(e.kernelRegularizer),this.recurrentRegularizer=tv(e.recurrentRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.kernelConstraint=wm(e.kernelConstraint),this.recurrentConstraint=wm(e.recurrentConstraint),this.biasConstraint=wm(e.biasConstraint),this.dropout=Um([1,Vm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Um([1,Vm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){const t=(e=Jg(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return ro((()=>{if(2!==(e=e).length)throw new Vp(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const n=null!=t.training&&t.training;let r=e[1];e=e[0],0ic(e),rate:this.dropout,training:n,count:3})),0ic(r),rate:this.recurrentDropout,training:n,count:3}));const a=this.dropoutMask,s=this.recurrentDropoutMask;let i,o,l;0{null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}Rv.className="GRU",Mi(Rv);class Fv extends Iv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,lm(this.units,"units"),this.activation=Kb(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Kb(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Ig(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=tv(e.kernelRegularizer),this.recurrentRegularizer=tv(e.recurrentRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.kernelConstraint=wm(e.kernelConstraint),this.recurrentConstraint=wm(e.recurrentConstraint),this.biasConstraint=wm(e.biasConstraint),this.dropout=Um([1,Vm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Um([1,Vm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;const n=(e=Jg(e))[e.length-1];let r;if(this.kernel=this.addWeight("kernel",[n,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){const e=this.biasInitializer,n=this.units;r=new((t=class extends ug{apply(t,r){const a=e.apply([n]),s=(new hg).apply([n]),i=e.apply([2*n]);return Jm(Jm(a,s),i)}}).className="CustomInit",t)}else r=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,r,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return ro((()=>{const n=null!=t.training&&t.training;if(3!==(e=e).length)throw new Vp(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let r=e[1];const a=e[2];e=e[0],0ic(e),rate:this.dropout,training:n,count:4})),0ic(r),rate:this.recurrentDropout,training:n,count:4}));const s=this.dropoutMask,i=this.recurrentDropoutMask;let o,l,u,c;0{null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}Ov.className="LSTM",Mi(Ov);class Bv extends Iv{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return ro((()=>{let n=(e=e).slice(1);const r=[];for(const e of this.cells.slice().reverse())Array.isArray(e.stateSize)?r.push(n.splice(0,e.stateSize.length)):r.push(n.splice(0,1));r.reverse();const a=[];let s;for(let i=0;i{Bm(`RNNCell_${r}`,(()=>{n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0}getConfig(){const e=super.getConfig(),t={cells:this.cells.map((e=>({className:e.getClassName(),config:e.getConfig()})))};return Object.assign({},e,t)}static fromConfig(e,t,n={}){const r=[];for(const e of t.cells)r.push(xy(e,n));return new e({cells:r})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.cells)t.push(...e.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return ey(e)}setWeights(e){const t=[];for(const n of this.cells){const r=n.weights.length,a=e.splice(r);for(let e=0;esg(t(),n),i=()=>ig(s,t,r);return!a||a<=1?so(i().clone()):Array(a).fill(void 0).map(i).map((e=>so(e.clone())))}Bv.className="StackedRNNCells",Mi(Bv);class $v extends Nv{constructor(e){if(e.unroll)throw new jp("Unrolling is not possible with convolutional RNNs.");if(Array.isArray(e.cell))throw new jp("It is not possible at the moment to stack convolutional cells.");super(e),this.inputSpec=[new ny({ndim:5})]}call(e,t){return ro((()=>{if(null!=this.cell.dropoutMask&&(ao(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(ao(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Vp("ConvRNN2D cell does not support constants");const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return ro((()=>{const{stateSize:t}=this.cell,n=e.shape,r=this.computeSingleOutputShape(n),a=ac([r[0],...r.slice(2)]);return Array.isArray(t)?Array(t.length).fill(a):[a]}))}resetStates(e,t=!1){ro((()=>{if(!this.stateful)throw new Wp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape,r=this.computeSingleOutputShape(n),a=[r[0],...r.slice(2)];if(null==n[0])throw new Vp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.getStates())Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>ac(a))):this.states_=[ac(a)];else if(null==e)ao(this.states_),null!=this.keptStates&&(ao(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>ac(a))):this.states_[0]=ac(a);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Vp(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):ao(this.states_);for(let t=0;tso(e.clone())))}))}computeSingleOutputShape(e){const{dataFormat:t,filters:n,kernelSize:r,padding:a,strides:s,dilationRate:i}=this.cell,o="channelsFirst"===t,l=e[o?3:2],u=e[o?4:3],c=uv(l,r[0],a,s[0],i[0]),h=uv(u,r[1],a,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}$v.className="ConvRNN2D";class Pv extends Fv{constructor(e){const{filters:t,kernelSize:n,strides:r,padding:a,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,lm(this.filters,"filters"),this.kernelSize=lv(n,2,"kernelSize"),this.kernelSize.forEach((e=>lm(e,"kernelSize"))),this.strides=lv(r||1,2,"strides"),this.strides.forEach((e=>lm(e,"strides"))),this.padding=a||"valid",Rm(this.padding),this.dataFormat=s||"channelsLast",Tm(this.dataFormat),this.dilationRate=lv(i||1,2,"dilationRate"),this.dilationRate.forEach((e=>lm(e,"dilationRate")))}build(e){var t;e=Jg(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Vp(`The channel dimension of the input should be defined. Found ${e[n]}`);const r=e[n],a=this.kernelSize.concat([r,4*this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const s=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",s,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let e;if(this.unitForgetBias){const n=this.biasInitializer,r=this.filters;e=new((t=class extends ug{apply(e,t){return Ym([n.apply([r]),sc([r]),n.apply([2*r])])}}).className="CustomInit",t)}else e=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,e,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return ro((()=>{if(3!==e.length)throw new Vp(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const n=t.training||!1,r=e[0],a=e[1],s=e[2];0ic(r),rate:this.dropout,training:n,count:4}));const i=this.dropoutMask,o=(e,t,n)=>t&&t[n]?wo(t[n],e):e;let l=o(r,i,0),u=o(r,i,1),c=o(r,i,2),h=o(r,i,3);0ic(a),rate:this.recurrentDropout,training:n,count:4}));const f=this.recurrentDropoutMask;let d=o(a,f,0),p=o(a,f,1),m=o(a,f,2),g=o(a,f,3);const[y,b,v,w]=Jc(this.kernel.read(),4,3),[_,x,k,E]=this.useBias?Jc(this.bias.read(),4):[null,null,null,null];l=this.inputConv(l,y,_,this.padding),u=this.inputConv(u,b,x,this.padding),c=this.inputConv(c,v,k,this.padding),h=this.inputConv(h,w,E,this.padding);const[C,S,N,I]=Jc(this.recurrentKernel.read(),4,3);d=this.recurrentConv(d,C),p=this.recurrentConv(p,S),m=this.recurrentConv(m,N),g=this.recurrentConv(g,I);const D=this.recurrentActivation.apply(yo(l,d)),A=this.recurrentActivation.apply(yo(u,p)),T=yo(wo(A,s),wo(D,this.activation.apply(yo(c,m)))),R=wo(this.recurrentActivation.apply(yo(h,g)),this.activation.apply(T));return[R,R,T]}))}getConfig(){const e=super.getConfig(),{units:t}=e,n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a{this.invokeCallHook(e,t);const n=Yg(e);if(0sg(n,this.rate,r,this.seed)),(()=>n),e)}return e}))}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}zv.className="Dropout",Mi(zv);class Wv extends zv{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Wv.className="SpatialDropout1D",Mi(Wv);class Uv extends oy{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){let t=null;null!=e.batchSize&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,lm(this.units,"units"),this.activation=Kb(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=Ig(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Ig(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=wm(e.kernelConstraint),this.biasConstraint=wm(e.biasConstraint),this.kernelRegularizer=tv(e.kernelRegularizer),this.biasRegularizer=tv(e.biasRegularizer),this.activityRegularizer=tv(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=Jg(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){const t=(e=Jg(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e),r=cm(this.activation.getClassName());let a;return null!=r?a=eg(n,this.kernel.read(),r,this.bias?this.bias.read():null):(a=eg(n,this.kernel.read()),null!=this.bias&&(a=ag(a,this.bias.read())),null!=this.activation&&(a=this.activation.apply(a))),a}))}getConfig(){const e={units:this.units,activation:Gb(this.activation),useBias:this.useBias,kernelInitializer:Ng(this.kernelInitializer),biasInitializer:Ng(this.biasInitializer),kernelRegularizer:Qb(this.kernelRegularizer),biasRegularizer:Qb(this.biasRegularizer),activityRegularizer:Qb(this.activityRegularizer),kernelConstraint:bm(this.kernelConstraint),biasConstraint:bm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Uv.className="Dense",Mi(Uv);class Vv extends oy{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Jg(e);for(const t of e.slice(1))if(null==t)throw new Vp(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],zm(e,1)]}call(e,t){return ro((()=>{this.invokeCallHook(e,t);let n=Yg(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=Yg(e);return this.activation.apply(n)}))}getConfig(){const e={activation:Gb(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}jv.className="Activation",Mi(jv);class Hv extends oy{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return ro((()=>{return e=Yg(e),t=e,n=this.n,ro((()=>{if(2!==t.shape.length)throw new Vp(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return Zm(Gm(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}Hv.className="RepeatVector",Mi(Hv);class Gv extends oy{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=Yg(e),r=n.shape,a=r.slice(0,1).concat(this.fixUnknownDimension(r.slice(1),this.targetShape));return n.reshape(a)}))}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}Gv.className="Reshape",Mi(Gv);class qv extends oy{constructor(e){if(super(e),null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=jm(1,e.dims.length+1);if(!ae(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ny({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=Jg(e)).slice();return this.dims.forEach(((n,r)=>{t[r+1]=e[n]})),t}call(e,t){return li(Yg(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}qv.className="Permute",Mi(qv);class Kv extends oy{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,this.maskValue=null!=e?null==e.maskValue?0:e.maskValue:0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const n=Yg(e);return Zo(rc(n,this.maskValue),-1)}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e),r=Zo(rc(n,this.maskValue),-1,!0);return n.mul(r.asType(n.dtype))}))}}Kv.className="Masking",Mi(Kv);class Xv extends oy{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){let t=null;null!=e.batchSize&&(t=e.batchSize),null==e.inputLength?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(Yp(e.inputLength))}this.inputDim=e.inputDim,lm(this.inputDim,"inputDim"),this.outputDim=e.outputDim,lm(this.outputDim,"outputDim"),this.embeddingsInitializer=Ig(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=tv(e.embeddingsRegularizer),this.activityRegularizer=tv(e.activityRegularizer),this.embeddingsConstraint=wm(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return ro((()=>this.maskZero?(e=Yg(e),rc(e,ko(e))):null))}computeOutputShape(e){if(e=Jg(e),null==this.inputLength)return[...e,this.outputDim];const t=Yp(this.inputLength);if(t.length!==e.length-1)throw new Vp(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let r=0;r{this.invokeCallHook(e,t);let n=Yg(e);return"int32"!==n.dtype&&(n=Hm(n,"int32")),tg(this.embeddings.read(),n.as1D()).reshape(Jg(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ng(this.embeddingsInitializer),embeddingsRegularizer:Qb(this.embeddingsRegularizer),activityRegularizer:Qb(this.activityRegularizer),embeddingsConstraint:bm(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}Xv.className="Embedding",Mi(Xv);class Yv extends oy{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new jp}computeElementwiseOpOutputShape(e,t){if(null==e||null==t)return null;if(e.length1)throw new Vp(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=null==e[0]?null:e[0].slice(1);for(let t=1;te.length));-1===e.indexOf(null)&&1===am(r).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return ro((()=>{if(e=e,this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const r=Vm(n);for(let n of e){const e=n.rank;for(let t=0;t1){const a=jm(1,e).concat([0]);t.push(li(r,a)),n=!0}else t.push(r)}let r=this.mergeFunction(t);const a=r.rank;if(n)if(null==a){const e=r.shape,t=e[e.length-1],n=[t].concat(e.slice(0,e.length-1));r=li(r.reshape([-1,t]),[1,0]).reshape(n)}else if(a>1){const e=[a-1].concat(jm(0,a-1));r=li(r,e)}return r}}return this.mergeFunction(e)}))}computeOutputShape(e){let t;t=null==(e=e)[0]?null:e[0].slice(1);for(let n=1;n{if(null==t)return null;if(!Array.isArray(t))throw new Vp("`mask` should be an Array");if(!Array.isArray(e))throw new Vp("`inputs` should be an Array");if(t.length!==e.length)throw new Vp(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every((e=>null==e)))return null;let n=(t=t.map((e=>null==e?e:lu(e,0))))[0];for(let e=1;e{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new Vp("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return ro((()=>Ym(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Vp("A `Concatenate` layer should be called on a list of inputs.");const t=e,n=t[0].slice(),r=this.axis<0?n.length+this.axis:this.axis;for(const e of t.slice(1)){if(null==n[r]||null==e[r]){n[r]=null;break}n[r]+=e[r]}return n}computeMask(e,t){if(null==t)return null;if(!Array.isArray(t))throw new Vp("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Vp("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Vp(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return ro((()=>{let n=!0;if(t.forEach((e=>{null==e||(n=!1)})),n)return null;const r=[];for(let n=0;n"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0],n=e[1];if(t.length>3||n.length>3)throw new jp("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);if(t[r[0]]!==n[r[1]])throw new Vp(`Dimension incompatibility: ${t[r[0]]} !== ${n[r[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Vp(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t,n=e[0],r=e[1];return t=Array.isArray(this.axes)?this.axes.map(((t,n)=>rw(t,e[n].shape.length))):[rw(this.axes,n.shape.length),rw(this.axes,r.shape.length)],this.normalize&&(n=ky(n,t[0]),r=ky(r,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new jp("batchDot is not implemented for tensors of 4D or higher rank yet");if(Z(e.shape.length>=2,(()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`)),Z(e.shape.length>=2,(()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`)),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new jp("batchDot is not implemented for complex64-type Tensors yet.");const r=e.shape.length,a=t.shape.length;null==n&&(n=[r-1,a-2]);const s=n;return ro((()=>{let n,i;if(r>a){n=r-a;const e=[];for(let t=0;tr){n=a-r;const t=[];for(let e=0;e0){let e;e=r>a?r+a-3:r-1;const t=[];for(let r=e;r"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new jp("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);t.splice(r[0],1),n.splice(r[1],1),n.splice(0,1);const a=t.concat(n);return 1===a.length&&a.push(1),a}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}aw.className="Dot",Mi(aw);class sw extends oy{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e);return ig((()=>Qm(n.shape,0,this.stddev).add(n)),(()=>n),t.training||!1)}))}}sw.className="GaussianNoise",Mi(sw);class iw extends oy{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return ro((()=>{this.invokeCallHook(e,t);const n=Yg(e);return this.rate>0&&this.rate<1?ig((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return n.mul(Qm(n.shape,1,e))}),(()=>n),t.training||!1):n}))}}iw.className="GaussianDropout",Mi(iw);class ow extends oy{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Yg(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return ro((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e);return ig((()=>{const t=Yg(e),r=-1.7580993408473766;let a=mu(Ec(n),this.rate);a=Hm(a,"float32");const s=((1-this.rate)*(1+this.rate*r**2))**-.5,i=-s*r*this.rate;return t.mul(a).add(a.add(-1).mul(r)).mul(s).add(i)}),(()=>Yg(e)),t.training||!1)}return e}))}}function lw(e,t,n,r,a,s=.001){let i;if(2===e.rank)i=Dl(e,t,n,r,a,s);else if(3===e.rank)i=Al(e,t,n,r,a,s);else{if(4!==e.rank)throw new jp(`batchNormalization is not implemented for array of rank ${e.rank} yet`);i=Tl(e,t,n,r,a,s)}return i}ow.className="AlphaDropout",Mi(ow);class uw extends oy{constructor(e){null==e&&(e={}),super(e),this.supportsMasking=!0,this.axis=null==e.axis?-1:e.axis,this.momentum=null==e.momentum?.99:e.momentum,this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Ig(e.betaInitializer||"zeros"),this.gammaInitializer=Ig(e.gammaInitializer||"ones"),this.movingMeanInitializer=Ig(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Ig(e.movingVarianceInitializer||"ones"),this.betaConstraint=wm(e.betaConstraint),this.gammaConstraint=wm(e.gammaConstraint),this.betaRegularizer=tv(e.betaRegularizer),this.gammaRegularizer=tv(e.gammaRegularizer)}build(e){e=Jg(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Vp(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new ny({ndim:e.length,axes:{[t]:n}})];const r=[n];this.scale&&(this.gamma=this.addWeight("gamma",r,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",r,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",r,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",r,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return ro((()=>{const n=null!=t.training&&t.training,r=Yg(e),a=r.shape,s=a.length,i=jm(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);const l=Gp(1,s);l[o]=a[o];const u=i.slice();u.sort();const c=!ae(u,jm(0,s).slice(0,s-1));if(!n)return(()=>{if(c){const e=this.movingMean.read().reshape(l),t=this.movingVariance.read().reshape(l),n=this.center?this.beta.read().reshape(l):null,a=this.scale?this.gamma.read().reshape(l):null;return lw(r,e,t,n,a,this.epsilon)}return lw(r,this.movingMean.read(),this.movingVariance.read(),null==this.beta?null:this.beta.read(),null==this.gamma?null:this.gamma.read(),this.epsilon)})();const[h,f,d]=function(e,t,n,r,a=.001){return ae(r.slice().sort(),jm(0,e.rank-1))?function(e,t,n,r,a=.001){return ro((()=>{const s=ec(e,r),i=s.mean,o=s.variance;return[lw(e,i,o,n,t,a),i,o]}))}(e,t,n,r,a):function(e,t,n,r,a=.001){return ro((()=>{const s=ec(e,r),i=s.mean,o=s.variance,l=[];for(const t of jm(0,e.rank))-1!==r.indexOf(t)?l.push(1):l.push(e.shape[t]);const u=i.reshape(l),c=o.reshape(l),h=null==t?null:t.reshape(l),f=null==n?null:n.reshape(l);return[lw(e,u,c,f,h,a),i,o]}))}(e,t,n,r,a)}(r,this.gamma.read(),this.beta.read(),i,this.epsilon),p=(e,t,n)=>{ro((()=>{const r=1-n,a=e.read(),s=a.sub(t).mul(r);e.write(a.sub(s))}))};return(()=>{p(this.movingMean,f,this.momentum),p(this.movingVariance,d,this.momentum)})(),h}))}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ng(this.betaInitializer),gammaInitializer:Ng(this.gammaInitializer),movingMeanInitializer:Ng(this.movingMeanInitializer),movingVarianceInitializer:Ng(this.movingVarianceInitializer),betaRegularizer:Qb(this.betaRegularizer),gammaRegularizer:Qb(this.gammaRegularizer),betaConstraint:bm(this.betaConstraint),gammaConstraint:bm(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}uw.className="BatchNormalization",Mi(uw);class cw extends oy{constructor(e){if(null==e&&(e={}),super(e),this.axis=null==e.axis?-1:e.axis,"number"==typeof this.axis){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else{if(!Array.isArray(this.axis))throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);for(const e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=Ig(e.betaInitializer||"zeros"),this.gammaInitializer=Ig(e.gammaInitializer||"ones"),this.betaRegularizer=tv(e.betaRegularizer),this.gammaRegularizer=tv(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=Jg(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(let e=0;e=t)throw new Error(`Invalid axis: ${e}`);if(this.axis.length!==am(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const n=this.axis.map((t=>e[t]));this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,!0):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,!0):this.beta=null,this.built=!0}call(e,t){const n=Yg(e),r=n.shape,a=r.length;return ro((()=>{let{mean:e,variance:t}=ec(n,this.axis,!0);const s=Gp(1,a);for(const e of this.axis)s[e]=r[e];const i=e=>null!=e&&e.shape.length!==a&&this.axis!==[a-1]?e.reshape(s):e;let o=i(this.gamma.read()),l=i(this.beta.read());const u=[],c=[];for(let e=0;e=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])}call(e,t){return ro((()=>{return t=Yg(e),n=this.padding,r=this.dataFormat,ro((()=>{if(4!==t.rank)throw new Vp(`temporalPadding expects input tensor to be 4-D, but received a ${t.rank}-D tensor.`);if(null==n&&(n=[[1,1],[1,1]]),2!==n.length||2!==n[0].length||2!==n[1].length)throw new Vp("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==r&&(r="channelsLast"),"channelsLast"!==r&&"channelsFirst"!==r)throw new Vp(`Unknown data format: ${r}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let e;return e="channelsFirst"===r?[[0,0],[0,0],n[0],n[1]]:[[0,0],n[0],n[1],[0,0]],lc(t,e)}));var t,n,r}))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}function fw(e,t,n,r,a,s){return ro((()=>{let i;Tm(a),Fm(s),Rm(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=hv(e,a);const o="same"===r?"same":"valid";return i="max"===s?Gu(e,t,n,o):wl(e,t,n,o),"channelsFirst"===a&&(i=li(i,[0,3,1,2])),i}))}function dw(e,t,n,r,a,s){return ro((()=>{let i;Tm(a),Fm(s),Rm(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=fv(e,a);const o="same"===r?"same":"valid";return i="max"===s?qu(e,t,n,o):_l(e,t,n,o),"channelsFirst"===a&&(i=li(i,[0,4,1,2,3])),i}))}hw.className="ZeroPadding2D",Mi(hw);class pw extends oy{constructor(e){if(null==e.poolSize&&(e.poolSize=2),super(e),"number"==typeof e.poolSize)this.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new Vp(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);this.poolSize=e.poolSize}if(lm(this.poolSize,"poolSize"),null==e.strides)this.strides=this.poolSize;else if("number"==typeof e.strides)this.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new Vp(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);this.strides=e.strides}lm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,Rm(this.padding),this.inputSpec=[new ny({ndim:3})]}computeOutputShape(e){const t=uv((e=Jg(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return ro((()=>{this.invokeCallHook(e,t),e=Gm(Yg(e),2);const n=this.poolingFunction(Yg(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return eh(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class mw extends pw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"max")}}mw.className="MaxPooling1D",Mi(mw);class gw extends pw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"avg")}}gw.className="AveragePooling1D",Mi(gw);class yw extends oy{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new Vp(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];lm(this.poolSize,"poolSize"),lm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),Rm(this.padding),this.inputSpec=[new ny({ndim:4})]}computeOutputShape(e){e=Jg(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=uv(t,this.poolSize[0],this.padding,this.strides[0]),n=uv(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return ro((()=>(this.invokeCallHook(e,t),this.poolingFunction(Yg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class bw extends yw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"max")}}bw.className="MaxPooling2D",Mi(bw);class vw extends yw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),fw(e,t,n,r,a,"avg")}}vw.className="AveragePooling2D",Mi(vw);class ww extends oy{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(3!==e.strides.length)throw new Vp(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];lm(this.poolSize,"poolSize"),lm(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),Rm(this.padding),this.inputSpec=[new ny({ndim:5})]}computeOutputShape(e){e=Jg(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[4]:e[3];return t=uv(t,this.poolSize[0],this.padding,this.strides[0]),n=uv(n,this.poolSize[1],this.padding,this.strides[1]),r=uv(r,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,r]:[e[0],t,n,r,e[4]]}call(e,t){return ro((()=>(this.invokeCallHook(e,t),this.poolingFunction(Yg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class _w extends ww{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),dw(e,t,n,r,a,"max")}}_w.className="MaxPooling3D",Mi(_w);class xw extends ww{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return Tm(a),Rm(r),dw(e,t,n,r,a,"avg")}}xw.className="AveragePooling3D",Mi(xw);class kw extends oy{constructor(e){super(e),this.inputSpec=[new ny({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new jp}}class Ew extends kw{constructor(e){super(e||{})}call(e,t){return ro((()=>{const t=Yg(e);return Xu(t,1)}))}}Ew.className="GlobalAveragePooling1D",Mi(Ew);class Cw extends kw{constructor(e){super(e||{})}call(e,t){return ro((()=>{const t=Yg(e);return Au(t,1)}))}}Cw.className="GlobalMaxPooling1D",Mi(Cw);class Sw extends oy{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,Tm(this.dataFormat),this.inputSpec=[new ny({ndim:4})]}computeOutputShape(e){return e=e,"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new jp}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Nw extends Sw{call(e,t){return ro((()=>{const t=Yg(e);return"channelsLast"===this.dataFormat?Xu(t,[1,2]):Xu(t,[2,3])}))}}Nw.className="GlobalAveragePooling2D",Mi(Nw);class Iw extends Sw{call(e,t){return ro((()=>{const t=Yg(e);return"channelsLast"===this.dataFormat?Au(t,[1,2]):Au(t,[2,3])}))}}Iw.className="GlobalMaxPooling2D",Mi(Iw);class Dw extends oy{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return null!=this.layer&&this.layer.trainable}set trainable(e){null!=this.layer&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){const r=xy(t.layer,n);delete t.layer;const a={layer:r};return Object.assign(a,t),new e(a)}}class Aw extends Dw{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=Jg(e)).length<3)throw new Vp(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){const t=[(e=Jg(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),r=e[1];return[n[0],r].concat(n.slice(1))}call(e,t){return ro((()=>Sv(((e,n)=>[Yg(this.layer.call(e,t)),[]]),e=Yg(e),[],!1,null,null,!1,!0)[1]))}}Aw.className="TimeDistributed",Mi(Aw);class Tw extends Dw{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=xy(n),t.goBackwards=!0!==t.goBackwards;const r={};var a;if(r.className=e.layer.getClassName(),r.config=t,this.backwardLayer=xy(r),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=void 0===e.mergeMode?"concat":e.mergeMode,a=this.mergeMode,im(Dm,"BidirectionalMergeMode",a),e.weights)throw new jp("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t,n,r,a=this.forwardLayer.computeOutputShape(e);return Array.isArray(a)&&Array.isArray(a[0])||(a=[a]),a=a,this.returnState?(r=a.slice(1),t=a[0]):t=a[0],t=t,"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(r).concat(r.slice()):[t].concat(r).concat(r.slice()):Xp(n)}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=Cv(e,n,r,this.numConstants);if(e=a.inputs,n=a.initialState,r=a.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(null==n||0===n.length)&&null==r)return super.apply(e,t);const s=[],i=[];if(null!=n){const e=n.length;if(e%2>0)throw new Vp("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);const r=n.map((e=>new ny({shape:e.shape})));this.forwardLayer.stateSpec=r.slice(0,e/2),this.backwardLayer.stateSpec=r.slice(e/2),i.push(...r)}if(null!=r)throw new jp("Support for constants in Bidirectional layers is not implemented yet.");const o=s[0]instanceof ry;for(const e of s)if(e instanceof ry!==o)throw new Vp("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return ro((()=>{const n=t.initialState;let r,a,s,i;if(null==n)r=this.forwardLayer.call(e,t),a=this.backwardLayer.call(e,t);else{const s=n.slice(0,n.length/2),i=n.slice(n.length/2);r=this.forwardLayer.call(e,Object.assign(t,{initialState:s})),a=this.backwardLayer.call(e,Object.assign(t,{initialState:i}))}return this.returnState&&(Array.isArray(r)&&(s=r.slice(1).concat(a.slice(1))),r=r[0],a=a[0]),this.returnSequences&&(a=Ac(a,1)),"concat"===this.mergeMode?i=Ym([r,a]):"sum"===this.mergeMode?i=yo(r,a):"ave"===this.mergeMode?i=wo(.5,yo(r,a)):"mul"===this.mergeMode?i=wo(r,a):null==this.mergeMode&&(i=[r,a]),this.returnState?null==this.mergeMode?i.concat(s):[i].concat(s):i}))}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Bm(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Bm(this.backwardLayer.name,(()=>{this.backwardLayer.build(e)})),this.built=!0}computeMask(e,t){let n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){const e=this.forwardLayer.states.map((e=>null));return Array.isArray(n)?n.concat(e).concat(e):[n].concat(e).concat(e)}return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const n=xy(t.layer);if(delete t.layer,null!=t.numConstants)throw new jp("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const r=t;return r.layer=n,new e(r)}}function Rw(e){return new uy(e)}function Fw(e){return new sv(e)}function Ow(e){return new nv(e)}function Bw(e){return new rv(e)}function Mw(e){return new av(e)}function $w(e){return new ov(e)}function Pw(e){return new iv(e)}function Lw(e){return new _v(e)}function zw(e){return new gv(e)}function Ww(e){return new bv(e)}function Uw(e){return new yv(e)}function Vw(e){return new wv(e)}function jw(e){return new xv(e)}function Hw(e){return new kv(e)}function Gw(e){return new Ev(e)}function qw(e){return new jv(e)}function Kw(e){return new Uv(e)}function Xw(e){return new zv(e)}function Yw(e){return new Wv(e)}function Jw(e){return new Vv(e)}function Zw(e){return new Hv(e)}function Qw(e){return new Gv(e)}function e_(e){return new qv(e)}function t_(e){return new Xv(e)}function n_(e){return new Jv(e)}function r_(e){return new Qv(e)}function a_(e){return new nw(e)}function s_(e){return new ew(e)}function i_(e){return new tw(e)}function o_(e){return new Zv(e)}function l_(e){return new aw(e)}function u_(e){return new uw(e)}function c_(e){return new cw(e)}function h_(e){return new hw(e)}function f_(e){return new gw(e)}function d_(e){return f_(e)}function p_(e){return f_(e)}function m_(e){return new vw(e)}function g_(e){return m_(e)}function y_(e){return m_(e)}function b_(e){return new xw(e)}function v_(e){return b_(e)}function w_(e){return b_(e)}function __(e){return new Ew(e)}function x_(e){return new Nw(e)}function k_(e){return new Cw(e)}function E_(e){return new Iw(e)}function C_(e){return new mw(e)}function S_(e){return new bw(e)}function N_(e){return new _w(e)}function I_(e){return new Rv(e)}function D_(e){return new Tv(e)}function A_(e){return new Ov(e)}function T_(e){return new Fv(e)}function R_(e){return new Av(e)}function F_(e){return new Dv(e)}function O_(e){return new Lv(e)}function B_(e){return new Pv(e)}function M_(e){return new Nv(e)}function $_(e){return new Bv(e)}function P_(e){return new Tw(e)}function L_(e){return new Aw(e)}Tw.className="Bidirectional",Mi(Tw);const z_=k_,W_=E_,U_=C_,V_=S_;function j_(e){return new sw(e)}function H_(e){return new iw(e)}function G_(e){return new ow(e)}function q_(e){return new Kv(e)}function K_(e,t){return Fy(e,t)}function X_(e,t){return $y(e,t)}function Y_(e,t){return Py(e,t)}function J_(e,t){return Oy(e,t)}function Z_(e,t){return Ly(e,t)}function Q_(e,t){return My(e,t)}function ex(e,t){return function(e,t){return ro((()=>{const n=By(e,t),r=function(e,t){return ro((()=>Uu(e.equal(1),t.equal(0)).sum().cast("float32")))}(e,t),a=n.add(r);return nu(pu(a,0),n.div(a),0).cast("float32")}))}(e,t)}function tx(e,t){return Ay(e,t)}function nx(e,t){return Cy(e,t)}function rx(e,t){return Sy(e,t)}function ax(e,t){return Sy(e,t)}function sx(e,t){return Sy(e,t)}function ix(e,t){return Ey(e,t)}function ox(e,t){return Ey(e,t)}function lx(e,t){return Ey(e,t)}function ux(e){return new Jb(e)}function cx(e){return Xb(t=e),new Jb({l1:null!=t?t.l1:null,l2:0});var t}function hx(e){return Xb(t=e),new Jb({l2:null!=t?t.l2:null,l1:0});var t}class fx extends py{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof kb))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function dx(e,t){return et}class mx extends fx{constructor(e){if(super(),null==e&&(e={}),e.restoreBestWeights)throw new jp("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,-1===["auto","min","max"].indexOf(this.mode)&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),"min"===this.mode?this.monitorFunc=dx:"max"===this.mode||-1!==this.monitor.indexOf("acc")?this.monitorFunc=px:this.monitorFunc=dx,this.monitorFunc===dx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===dx?1/0:-1/0}async onEpochEnd(e,t){await hy(t);const n=this.getMonitorValue(t);null!=n&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){null==e&&(e={});const t=e[this.monitor];return null==t&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}const gx={earlyStopping:function(e){return new mx(e)}};var yx,bx;!function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"}(yx||(yx={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(bx||(bx={}));const vx={};function wx(e,t){const n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};vx[e]=n}function _x(e){return vx[e]}function xx(e){delete vx[e]}function kx(e,t,n,r,a){const s=t.inputParams[e];if(s&&void 0!==s.inputIndexStart){const e=s.inputIndexStart,i=0===s.inputIndexEnd?void 0:void 0===s.inputIndexEnd?e+1:s.inputIndexEnd;if("tensor"===s.type)return Ex(t.inputNames[s.inputIndexStart],n,r,a);if("tensors"===s.type)return t.inputNames.slice(e,i).map((e=>Ex(e,n,r,a)));const o=Ex(t.inputNames.slice(e)[0],n,r,a),l=o.dataSync();return"number"===s.type?l[0]:Ae(o.shape,l)}const i=t.attrParams[e];return i&&i.value}function Ex(e,t,n,r){const[a,s]=Nx(e);if(null!=r){const e=r.getHashTableHandleByName(a);if(null!=e)return e}const i=n.currentContextIds.find((e=>!!t[Sx(a,e)]));return void 0!==i?t[Sx(a,i)][s]:void 0}function Cx(e,t){const[n,r]=Nx(e);return[Sx(n,t&&t.currentContextId),r]}function Sx(e,t){return t?`${e}-${t}`:e}function Nx(e){const t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function Ix(e,t,n){let r=kx("pad",e,t,n);if("explicit"===r){r=kx("explicitPaddings",e,t,n);const a=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)a[e][0]=r[2*e],a[e][1]=r[2*e+1];return a}return r}function Dx(e){return e.kept?e:Ws(e)}const Ax=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Tx=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Rx=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],Fx=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],Ox=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],Bx=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Mx=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],$x=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],Px=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],Lx=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],zx=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Wx=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Ux=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],Vx=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],jx=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],Hx=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],Gx=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class qx{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[E,C,S,N,I,D,A,O,F,T,B,M,$,P,L,z,R].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const n=e.node,r=[],a=[],s=[],i=n.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?r.push(e[t.name]):"Const"===t.op?a.push(e[t.name]):null!=t.input&&0!==t.input.length||s.push(e[t.name]),e)),{});let o=[];const l=[];let u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const h=Object.keys(i);h.forEach((e=>{const t=i[e];t.inputNames.forEach((e=>{const[n]=Cx(e);t.inputs.push(i[n]),i[n].children.push(t)}))})),0===Object.keys(c).length?h.forEach((e=>{const t=i[e];0===t.children.length&&l.push(t)})):Object.keys(c).forEach((e=>{const[t]=Cx(e),n=i[t];null!=n&&(n.signatureKey=c[e],l.push(n))})),Object.keys(u).length>0?Object.keys(u).forEach((e=>{const[t]=Cx(e),n=i[t];n&&(n.signatureKey=u[e],o.push(n))})):o=r;let f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const d={nodes:i,inputs:o,outputs:l,weights:a,placeholders:r,signature:t,functions:f};return s.length>0&&(d.initNodes=s),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,n)=>(t[e[n].name]=n,t)),{})}mapNode(e){const t=_x(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.substr(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return null!=t.inputs&&(n.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce(((t,n)=>{const r=n.type;let a;switch(n.type){case"string":a=Xx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Xx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":a=sk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=sk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":a=Jx(e.attr,n.tfName,n.defaultValue||0),void 0===a&&n.tfDeprecatedName&&(a=Jx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":a=ak(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ak(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":a=Yx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Yx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":a=ok(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ok(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":a=rk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=rk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":a=ik(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ik(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":a=ek(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=ek(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":a=tk(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=tk(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":a=Qx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Qx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${n.type} for op: ${e.op}`)}return t[n.name]={value:a,type:r},t}),{})),n}mapFunction(e){const t=e.nodeDef,n=[];let r={};null!=t&&(r=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&n.push(e[t.name]),e)),{}));const a=[],s=[];e.signature.inputArg.forEach((e=>{const[t]=Cx(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Zx(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,a.push(n),r[t]=n})),Object.keys(r).forEach((e=>{const t=r[e];t.inputNames.forEach((e=>{const[n]=Cx(e);t.inputs.push(r[n]),r[n].children.push(t)}))}));const i=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=Cx(i[e.name]),a=r[t];null!=a&&(a.defaultOutput=n,s.push(a))}));const o=this.mapArgsToSignature(e);return{nodes:r,inputs:a,outputs:s,weights:n,placeholders:[],signature:o}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}}}function Kx(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=Le().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?n:n.toLowerCase()}function Xx(e,t,n,r=!1){const a=e[t];return null!=a?Kx(a.s,r):n}function Yx(e,t,n){const r=e[t];return r?r.b:n}function Jx(e,t,n){const r=e[t]||{},a=null!=r.i?r.i:null!=r.f?r.f:n;return"number"==typeof a?a:parseInt(a,10)}function Zx(e){switch("string"==typeof e&&(e=yx[e]),e){case yx.DT_FLOAT:return"float32";case yx.DT_INT32:case yx.DT_INT64:case yx.DT_INT8:case yx.DT_UINT8:return"int32";case yx.DT_BOOL:return"bool";case yx.DT_DOUBLE:return"float32";case yx.DT_STRING:return"string";default:return null}}function Qx(e,t,n){const r=e[t];return r&&r.func?r.func.name:n}function ek(e,t,n){const r=e[t];return r&&r.type?Zx(r.type):n}function tk(e,t,n){const r=e[t];return r&&r.list&&r.list.type?r.list.type.map((e=>Zx(e))):n}function nk(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function rk(e,t,n){const r=e[t];return r&&r.shape?nk(r.shape):n}function ak(e,t,n){const r=e[t];return r?((r.list.f&&r.list.f.length?r.list.f:r.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):n}function sk(e,t,n,r=!1){const a=e[t];return a&&a.list&&a.list.s?a.list.s.map((e=>Kx(e,r))):n}function ik(e,t,n){const r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((e=>nk(e))):n}function ok(e,t,n){const r=e[t];return r&&r.list&&r.list.b?r.list.b:n}class lk{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return Ex(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return Ex(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return Jx(this.node.rawAttrs,e,t);if(null!=n.s)return Xx(this.node.rawAttrs,e,t);if(null!=n.b)return Yx(this.node.rawAttrs,e,t);if(null!=n.shape)return rk(this.node.rawAttrs,e,t);if(null!=n.type)return ek(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return ak(this.node.rawAttrs,e,t);if(null!=n.list.s)return sk(this.node.rawAttrs,e,t);if(null!=n.list.shape)return ik(this.node.rawAttrs,e,t);if(null!=n.list.b)return ok(this.node.rawAttrs,e,t);if(null!=n.list.type)return tk(this.node.rawAttrs,e,t)}return t}}function uk(e,t,n=""){Z(function(e,t){if(e.length!==t.length)return!1;for(let n=0;nn+` Shapes ${e} and ${t} must match`))}class ck{constructor(e,t,n,r,a,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=r,this.identicalElementShapes=a,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=To(0),so(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),uk(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,so(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,n)=>this.write(e,t[n])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ph(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0;const r=e.map((e=>(n+=e,n)));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const a=0===n?0:t.size/n,s=[];ro((()=>{t=vl(t,[1,n,a]);for(let n=0;n{if(n!==e.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${e.dtype}`);uk(t,e.shape,"TensorList shape mismatch: "),so(e)})),this.idTensor=To(0),this.maxNumElements=r,so(this.idTensor)}get id(){return this.idTensor.id}copy(){return new hk([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==n&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);return uk(e,this.elementShape,"TensorList shape mismatch: "),ro((()=>{const t=this.tensors.map((t=>vl(t,e)));return th(t,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const n=this.tensors.pop();return uk(n.shape,e,"TensorList shape mismatch: "),vl(n,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(uk(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");so(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);return uk(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);uk(this.elementShape,t.shape,"TensorList shape mismatch: "),so(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return uk(this.elementShape,n,"TensorList shape mismatch: "),0===(e=e.slice(0,this.size())).length?qa([],[0].concat(this.elementShape)):ro((()=>{const t=e.map((e=>vl(this.tensors[e],n)));return th(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return uk(this.elementShape,t,"TensorList shape mismatch: "),0===this.size()?qa([],[0].concat(this.elementShape)):ro((()=>{const e=this.tensors.map((e=>vl(e,t)));return xl(e,0)}))}}function fk(e,t,n){const[r,a]=kx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o="fusedbatchnorm"===r,l=kx("numArgs",e,t,n);if(s){if(i&&2!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const u=kx("strides",e,t,n),c=Ix(e,t,n),h=kx("dataFormat",e,t,n).toUpperCase(),f=kx("dilations",e,t,n),[d,p]=kx("args",e,t,n);return{stride:u,pad:c,dataFormat:h,dilations:f,biasArg:d,preluArg:p,activationFunc:a,leakyreluAlpha:kx("leakyreluAlpha",e,t,n)}}function dk(e,t,n){return{boxes:kx("boxes",e,t,n),scores:kx("scores",e,t,n),maxOutputSize:kx("maxOutputSize",e,t,n),iouThreshold:kx("iouThreshold",e,t,n),scoreThreshold:kx("scoreThreshold",e,t,n),softNmsSigma:kx("softNmsSigma",e,t,n)}}class pk{constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=To(0),this.tensorMap=new Map,so(this.handle)}get id(){return this.handle.id}clearAndClose(){this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),ro((()=>{const e=ph(t),r=n.length,a=e.length;Z(r===a,(()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${a} elements.`));for(let t=0;t{const e=[];for(let r=0;r{switch(e.category){case"arithmetic":return ro((()=>((e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[yo(kx("a",e,t,n),kx("b",e,t,n))];case"AddN":return[Yo(kx("tensors",e,t,n))];case"FloorMod":case"Mod":return[Qu(kx("a",e,t,n),kx("b",e,t,n))];case"Mul":return[wo(kx("a",e,t,n),kx("b",e,t,n))];case"RealDiv":case"Div":return[vo(kx("a",e,t,n),kx("b",e,t,n))];case"DivNoNan":return[ru(kx("a",e,t,n),kx("b",e,t,n))];case"FloorDiv":return[bo(kx("a",e,t,n),kx("b",e,t,n))];case"Sub":return[$o(kx("a",e,t,n),kx("b",e,t,n))];case"Minimum":return[Ju(kx("a",e,t,n),kx("b",e,t,n))];case"Maximum":return[Vo(kx("a",e,t,n),kx("b",e,t,n))];case"Pow":return[Mo(kx("a",e,t,n),kx("b",e,t,n))];case"SquaredDifference":return[Qc(kx("a",e,t,n),kx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return ro((()=>((e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lo(kx("x",e,t,n))];case"Acos":return[Ko(kx("x",e,t,n))];case"Acosh":return[Xo(kx("x",e,t,n))];case"Asin":return[tl(kx("x",e,t,n))];case"Asinh":return[nl(kx("x",e,t,n))];case"Atan":return[rl(kx("x",e,t,n))];case"Atan2":return[al(kx("x",e,t,n),kx("y",e,t,n))];case"Atanh":return[sl(kx("x",e,t,n))];case"Ceil":return[Ol(kx("x",e,t,n))];case"Complex":return[Ha(kx("real",e,t,n),kx("imag",e,t,n))];case"Cos":return[ql(kx("x",e,t,n))];case"Cosh":return[Kl(kx("x",e,t,n))];case"Elu":return[su(kx("x",e,t,n))];case"Erf":return[iu(kx("x",e,t,n))];case"Exp":return[ou(kx("x",e,t,n))];case"Expm1":return[uu(kx("x",e,t,n))];case"Floor":return[fu(kx("x",e,t,n))];case"Log":return[Cu(kx("x",e,t,n))];case"Log1p":return[Su(kx("x",e,t,n))];case"Imag":return[gu(kx("x",e,t,n))];case"Neg":return[Nu(kx("x",e,t,n))];case"Reciprocal":return[Nc(kx("x",e,t,n))];case"Real":return[Sc(kx("x",e,t,n))];case"Relu":return[Ic(kx("x",e,t,n))];case"Round":return[Bc(kx("x",e,t,n))];case"Selu":return[$c(kx("x",e,t,n))];case"Sigmoid":return[kl(kx("x",e,t,n))];case"Sin":return[Wc(kx("x",e,t,n))];case"Sign":return[zc(kx("x",e,t,n))];case"Sinh":return[Uc(kx("x",e,t,n))];case"Softplus":return[Iu(kx("x",e,t,n))];case"Sqrt":return[_o(kx("x",e,t,n))];case"Square":return[xo(kx("x",e,t,n))];case"Tanh":return[Cl(kx("x",e,t,n))];case"Tan":return[ah(kx("x",e,t,n))];case"ClipByValue":return[Bl(kx("x",e,t,n),kx("clipValueMin",e,t,n),kx("clipValueMax",e,t,n))];case"Relu6":return[Dc(kx("x",e,t,n))];case"Rsqrt":return[Mc(Ex(e.inputNames[0],t,n))];case"Prod":return[gc(kx("x",e,t,n),kx("axes",e,t,n))];case"LeakyRelu":return[wu(kx("x",e,t,n),kx("alpha",e,t,n))];case"Prelu":return[mc(kx("x",e,t,n),kx("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"control":return(async(e,t,n)=>{switch(e.op){case"If":case"StatelessIf":{const r=kx("thenBranch",e,t,n),a=kx("elseBranch",e,t,n),s=kx("cond",e,t,n),i=kx("args",e,t,n);return(await s.data())[0]?n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{const r=kx("body",e,t,n),a=kx("cond",e,t,n),s=kx("args",e,t,n),i=await n.functionMap[a].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map((e=>e.id));let l=await i[0].data();i.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||e.dispose()}));let u=s;for(;l[0];){const e=u;u=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);const t=u.map((e=>e.id));e.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const s=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await s[0].data(),s.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return u}case"LoopCond":return[Dx(kx("pred",e,t,n))];case"Switch":{const r=kx("pred",e,t,n);let a=kx("data",e,t,n);return a.kept||(a=Dx(a)),(await r.data())[0]?[void 0,a]:[a,void 0]}case"Merge":{const r=e.inputNames.find((e=>void 0!==Ex(e,t,n)));return r?[Dx(Ex(r,t,n))]:void 0}case"Enter":{const r=kx("frameName",e,t,n),a=kx("tensor",e,t,n);return n.enterFrame(r),[Dx(a)]}case"Exit":{const r=kx("tensor",e,t,n);return n.exitFrame(),[Dx(r)]}case"NextIteration":{const r=kx("tensor",e,t,n);return n.nextIteration(),[Dx(r)]}case"TensorArrayV3":{const r=kx("size",e,t,n),a=kx("dtype",e,t,n),s=kx("elementShape",e,t,n),i=kx("dynamicSize",e,t,n),o=kx("clearAfterRead",e,t,n),l=kx("identicalElementShapes",e,t,n),u=kx("name",e,t,n),c=new ck(u,a,r,s,l,i,o);return n.addTensorArray(c),[c.idTensor,To(1)]}case"TensorArrayWriteV3":{const r=kx("tensorArrayId",e,t,n),a=kx("index",e,t,n),s=kx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.write(a,s),[i.idTensor]}case"TensorArrayReadV3":{const r=kx("tensorArrayId",e,t,n),a=kx("index",e,t,n);return[n.getTensorArray(r.id).read(a)]}case"TensorArrayGatherV3":{const r=kx("tensorArrayId",e,t,n),a=kx("indices",e,t,n),s=kx("dtype",e,t,n);return[n.getTensorArray(r.id).gather(a,s)]}case"TensorArrayScatterV3":{const r=kx("tensorArrayId",e,t,n),a=kx("indices",e,t,n),s=kx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.scatter(a,s),[i.idTensor]}case"TensorArrayConcatV3":{const r=kx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id),s=kx("dtype",e,t,n);return[a.concat(s)]}case"TensorArraySplitV3":{const r=kx("tensorArrayId",e,t,n),a=kx("tensor",e,t,n),s=kx("lengths",e,t,n),i=n.getTensorArray(r.id);return i.split(s,a),[i.idTensor]}case"TensorArraySizeV3":{const r=kx("tensorArrayId",e,t,n);return[To(n.getTensorArray(r.id).size(),"int32")]}case"TensorArrayCloseV3":{const r=kx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id);return a.clearAndClose(),[a.idTensor]}case"TensorListSetItem":{const r=kx("tensorListId",e,t,n),a=kx("index",e,t,n),s=kx("tensor",e,t,n),i=n.getTensorList(r.id);return i.setItem(a,s),[i.idTensor]}case"TensorListGetItem":{const r=kx("tensorListId",e,t,n),a=kx("index",e,t,n),s=kx("elementShape",e,t,n),i=kx("elementDType",e,t,n);return[n.getTensorList(r.id).getItem(a,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{const r=kx("indices",e,t,n),a=function(e,t,n,r){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const a=Math.max(...t);if(null!=r&&-1!==r&&a>=r)throw new Error(`Max index must be < array size (${a} vs. ${r})`);const s=new hk([],n,e.dtype,r),i=ph(e,0);return t.forEach(((e,t)=>{s.setItem(e,i[t])})),s}(kx("tensor",e,t,n),r,kx("elementShape",e,t,n),kx("numElements",e,t,n));return n.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const r=kx("elementShape",e,t,n),a=kx("elementDType",e,t,n);let s;s="TensorListReserve"===e.op?"numElements":"maxNumElements";const i=function(e,t,n){return new hk([],e,t,n)}(r,a,kx(s,e,t,n));return n.addTensorList(i),[i.idTensor]}case"TensorListGather":{const r=kx("tensorListId",e,t,n),a=kx("indices",e,t,n),s=kx("elementShape",e,t,n),i=kx("elementDType",e,t,n);return[n.getTensorList(r.id).gather(a,i,s)]}case"TensorListStack":{const r=kx("tensorListId",e,t,n),a=kx("elementShape",e,t,n),s=kx("elementDType",e,t,n),i=kx("numElements",e,t,n);return[n.getTensorList(r.id).stack(a,s,i)]}case"TensorListFromTensor":{const r=function(e,t,n){const r=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);uk(e.shape.slice(1),t,"TensorList shape mismatch: ");const a=ph(e);return new hk(a,t,r)}(kx("tensor",e,t,n),kx("elementShape",e,t,n),kx("elementDType",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListConcat":{const r=kx("tensorListId",e,t,n),a=n.getTensorList(r.id),s=kx("dtype",e,t,n),i=kx("elementShape",e,t,n);return[a.concat(s,i)]}case"TensorListPushBack":{const r=kx("tensorListId",e,t,n),a=kx("tensor",e,t,n),s=n.getTensorList(r.id);return s.pushBack(a),[s.idTensor]}case"TensorListPopBack":{const r=kx("tensorListId",e,t,n),a=kx("elementShape",e,t,n),s=kx("elementDType",e,t,n);return[n.getTensorList(r.id).popBack(a,s)]}case"TensorListSplit":{const r=kx("tensor",e,t,n),a=kx("elementShape",e,t,n),s=function(e,t,n){let r=0;const a=t.map((e=>(r+=e,r)));if(r!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${r}, and tensor's shape is: ${e.shape}`);const s=0===r?0:e.size/r,i=ro((()=>{const i=[];e=vl(e,[1,r,s]);for(let r=0;r((e,t,n)=>{switch(e.op){case"Conv1D":{const r=kx("stride",e,t,n),a=kx("pad",e,t,n),s=kx("dataFormat",e,t,n).toUpperCase(),i=kx("dilation",e,t,n);return[Wl(kx("x",e,t,n),kx("filter",e,t,n),r,a,s,i)]}case"Conv2D":{const r=kx("strides",e,t,n),a=Ix(e,t,n),s=kx("dataFormat",e,t,n).toUpperCase(),i=kx("dilations",e,t,n);return[zl(kx("x",e,t,n),kx("filter",e,t,n),[r[1],r[2]],a,s,[i[1],i[2]])]}case"_FusedConv2D":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=fk(e,t,n);return[Xh({x:kx("x",e,t,n),filter:kx("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=fk(e,t,n);return[Zh({x:kx("x",e,t,n),filter:kx("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=kx("outputShape",e,t,n),a=kx("strides",e,t,n),s=Ix(e,t,n);return[Vl(kx("x",e,t,n),kx("filter",e,t,n),r,[a[1],a[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=kx("strides",e,t,n),a=Ix(e,t,n),s=kx("dilations",e,t,n),i=kx("dataFormat",e,t,n).toUpperCase();return[Zl(kx("input",e,t,n),kx("filter",e,t,n),[r[1],r[2]],a,i,[s[1],s[2]])]}case"Conv3D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("dataFormat",e,t,n).toUpperCase(),i=kx("dilations",e,t,n);return[jl(kx("x",e,t,n),kx("filter",e,t,n),[r[1],r[2],r[3]],a,s,[i[1],i[2],i[3]])]}case"AvgPool":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[wl(kx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPool":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[Gu(kx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPoolWithArgmax":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n),i=kx("includeBatchInIndex",e,t,n),{result:o,indexes:l}=Ku(kx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a,i);return[o,l]}case"AvgPool3D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[_l(kx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"MaxPool3D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("kernelSize",e,t,n);return[qu(kx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"Dilation2D":{const r=kx("strides",e,t,n),a=kx("pad",e,t,n),s=kx("dilations",e,t,n),i=r[1],o=r[2],l=s[1],u=s[2];return[eu(kx("x",e,t,n),kx("filter",e,t,n),[i,o],a,[l,u],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"creation":return ro((()=>((e,t,n)=>{switch(e.op){case"Fill":{const r=kx("shape",e,t,n),a=kx("dtype",e,t,n);return[Oo(r,kx("value",e,t,n),a)]}case"LinSpace":return[ku(kx("start",e,t,n),kx("stop",e,t,n),kx("num",e,t,n))];case"Multinomial":{const r=kx("logits",e,t,n),a=kx("numSamples",e,t,n),s=kx("seed",e,t,n);return[nc(r,a,s)]}case"OneHot":{const r=kx("indices",e,t,n),a=kx("depth",e,t,n),s=kx("onValue",e,t,n),i=kx("offValue",e,t,n);return[oi(r,a,s,i)]}case"Ones":return[sc(kx("shape",e,t,n),kx("dtype",e,t,n))];case"OnesLike":return[ic(kx("x",e,t,n))];case"RandomUniform":return[Ec(kx("shape",e,t,n),kx("minval",e,t,n),kx("maxval",e,t,n),kx("dtype",e,t,n))];case"Range":return[Cc(kx("start",e,t,n),kx("stop",e,t,n),kx("step",e,t,n),kx("dtype",e,t,n))];case"TruncatedNormal":{const r=kx("shape",e,t,n),a=kx("mean",e,t,n),s=kx("stdDev",e,t,n),i=kx("seed",e,t,n);return[hh(r,a,s,kx("dtype",e,t,n),i)]}case"Zeros":return[ac(kx("shape",e,t,n),kx("dtype",e,t,n))];case"ZerosLike":return[ko(kx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"dynamic":return(async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=dk(e,t,n),u=await Lf.nonMaxSuppressionWithScoreAsync(r,a,s,i,o,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=dk(e,t,n),l=kx("padToMaxOutputSize",e,t,n),u=await Lf.nonMaxSuppressionPaddedAsync(r,a,s,i,o,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=dk(e,t,n);return[await Lf.nonMaxSuppressionAsync(r,a,s,i,o)]}case"Where":{const r=zs(kx("condition",e,t,n),"bool"),a=[await yh(r)];return r.dispose(),a}case"ListDiff":return Lc(kx("x",e,t,n),kx("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return ro((()=>((e,t,n)=>{switch(e.op){case"TopKV2":{const r=kx("x",e,t,n),a=kx("k",e,t,n),s=kx("sorted",e,t,n),i=ch(r,a,s);return[i.values,i.indices]}case"Unique":{const r=kx("x",e,t,n),a=fh(r);return[a.values,a.indices]}case"UniqueV2":{const r=kx("x",e,t,n),a=kx("axis",e,t,n),s=fh(r,a);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return ro((()=>((e,t,n)=>{switch(e.op){case"ResizeBilinear":{const r=kx("images",e,t,n),a=kx("size",e,t,n),s=kx("alignCorners",e,t,n),i=kx("halfPixelCenters",e,t,n);return[Lf.resizeBilinear(r,[a[0],a[1]],s,i)]}case"ResizeNearestNeighbor":{const r=kx("images",e,t,n),a=kx("size",e,t,n),s=kx("alignCorners",e,t,n),i=kx("halfPixelCenters",e,t,n);return[Lf.resizeNearestNeighbor(r,[a[0],a[1]],s,i)]}case"CropAndResize":{const r=kx("image",e,t,n),a=kx("boxes",e,t,n),s=kx("boxInd",e,t,n),i=kx("cropSize",e,t,n),o=kx("method",e,t,n),l=kx("extrapolationValue",e,t,n);return[Lf.cropAndResize(r,a,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return ro((()=>((e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=kx("default",e,t,n);return[Ex(e.name,t,n)||r];case"Placeholder":return[Ex(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[Dx(kx("x",e,t,n))];case"IdentityN":return kx("x",e,t,n).map((e=>Dx(e)));case"Snapshot":return[Dx(kx("x",e,t,n))];case"Shape":return[sh(kx("x",e,t,n).shape,"int32")];case"ShapeN":return kx("x",e,t,n).map((e=>sh(e.shape)));case"Size":return[To(kx("x",e,t,n).size,"int32")];case"Rank":return[To(kx("x",e,t,n).rank,"int32")];case"NoOp":return[To(1)];case"Print":const a=kx("x",e,t,n),s=kx("data",e,t,n),i=kx("message",e,t,n),o=kx("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let e=0;e((e,t,n)=>{switch(e.op){case"Equal":return[tu(kx("a",e,t,n),kx("b",e,t,n))];case"NotEqual":return[rc(kx("a",e,t,n),kx("b",e,t,n))];case"Greater":return[pu(kx("a",e,t,n),kx("b",e,t,n))];case"GreaterEqual":return[mu(kx("a",e,t,n),kx("b",e,t,n))];case"Less":return[_u(kx("a",e,t,n),kx("b",e,t,n))];case"LessEqual":return[xu(kx("a",e,t,n),kx("b",e,t,n))];case"LogicalAnd":return[Uu(kx("a",e,t,n),kx("b",e,t,n))];case"LogicalNot":return[Vu(kx("a",e,t,n))];case"LogicalOr":return[ju(kx("a",e,t,n),kx("b",e,t,n))];case"Select":case"SelectV2":return[nu(kx("condition",e,t,n),kx("a",e,t,n),kx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return ro((()=>((e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ii(kx("a",e,t,n),kx("b",e,t,n),kx("transposeA",e,t,n),kx("transposeB",e,t,n))];case"Transpose":return[li(kx("x",e,t,n),kx("perm",e,t,n))];case"_FusedMatMul":const[r,a]=kx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o=kx("numArgs",e,t,n),l=kx("leakyreluAlpha",e,t,n);if(s){if(i&&2!==o)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==o)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[u,c]=kx("args",e,t,n);return[Qh({a:kx("a",e,t,n),b:kx("b",e,t,n),transposeA:kx("transposeA",e,t,n),transposeB:kx("transposeB",e,t,n),bias:u,activation:a,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"normalization":return ro((()=>((e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[Il(kx("x",e,t,n),kx("mean",e,t,n),kx("variance",e,t,n),kx("offset",e,t,n),kx("scale",e,t,n),kx("epsilon",e,t,n))];case"LRN":return[Eu(kx("x",e,t,n),kx("radius",e,t,n),kx("bias",e,t,n),kx("alpha",e,t,n),kx("beta",e,t,n))];case"Softmax":return[qc(kx("x",e,t,n))];case"LogSoftmax":return[Ru(kx("x",e,t,n))];case"SparseToDense":return[Ph(kx("sparseIndices",e,t,n),kx("outputShape",e,t,n),kx("sparseValues",e,t,n),kx("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return ro((()=>((e,t,n)=>{switch(e.op){case"Max":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Au(kx("x",e,t,n),r,a)]}case"Mean":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Xu(kx("x",e,t,n),r,a)]}case"Min":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Yu(kx("x",e,t,n),r,a)]}case"Sum":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Tu(kx("x",e,t,n),r,a)]}case"All":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Jo(kx("x",e,t,n),r,a)]}case"Any":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[Zo(kx("x",e,t,n),r,a)]}case"ArgMax":{const r=kx("axis",e,t,n);return[Qo(kx("x",e,t,n),r)]}case"ArgMin":{const r=kx("axis",e,t,n);return[el(kx("x",e,t,n),r)]}case"Prod":{const r=kx("axis",e,t,n),a=kx("keepDims",e,t,n);return[gc(kx("x",e,t,n),r,a)]}case"Cumsum":{const r=kx("axis",e,t,n),a=kx("exclusive",e,t,n),s=kx("reverse",e,t,n);return[Xl(kx("x",e,t,n),r,a,s)]}case"Bincount":const r=kx("x",e,t,n),a=kx("weights",e,t,n),s=kx("size",e,t,n);return[Rl(r,a,s)];case"DenseBincount":{const r=kx("x",e,t,n),a=kx("weights",e,t,n),s=kx("size",e,t,n),i=kx("binaryOutput",e,t,n);return[Yl(r,a,s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return ro((()=>((e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=kx("n",e,t,n),a=kx("axis",e,t,n);let s=kx("tensors",e,t,n);return s=s.slice(0,r),[xl(s,a)]}case"Gather":{const r=kx("x",e,t,n),a=kx("indices",e,t,n);return[du(r,zs(a,"int32"),0)]}case"GatherV2":{const r=kx("axis",e,t,n),a=kx("batchDims",e,t,n),s=kx("x",e,t,n),i=kx("indices",e,t,n);return[du(s,zs(i,"int32"),r,a)]}case"Reverse":{const r=kx("dims",e,t,n),a=[];for(let e=0;e{const r=kx("axis",e,t,n),a=kx("tensors",e,t,n),s=a[0].shape,i=eh(a[0]).shape,o=a.map((e=>{const t=ae(e.shape,s);if(!t&&!ae(eh(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:vl(e,s)}));return[th(o,r)]}));case"Unpack":{const r=kx("axis",e,t,n),a=kx("tensor",e,t,n);return ph(a,r)}case"Tile":{const r=kx("reps",e,t,n);return[cu(kx("x",e,t,n),r)]}case"Split":case"SplitV":{const r=kx("axis",e,t,n),a=kx("numOrSizeSplits",e,t,n),s=kx("x",e,t,n);return Jc(s,a,r)}case"ScatterNd":{const r=kx("indices",e,t,n),a=kx("values",e,t,n),s=kx("shape",e,t,n);return[$h(r,a,s)]}case"GatherNd":{const r=kx("x",e,t,n),a=kx("indices",e,t,n);return[Lh(r,a)]}case"SparseToDense":{const r=kx("sparseIndices",e,t,n),a=kx("outputShape",e,t,n),s=kx("sparseValues",e,t,n),i=kx("defaultValue",e,t,n);return[Ph(r,s,a,s.dtype===i.dtype?i:zs(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return ro((()=>((e,t,n)=>{switch(e.op){case"FFT":return[Kc(kx("x",e,t,n))];case"IFFT":return[Xc(kx("x",e,t,n))];case"RFFT":return[Zc(kx("x",e,t,n))];case"IRFFT":return[Yc(kx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return ro((()=>((e,t,n)=>{switch(e.op){case"Cast":return[zs(kx("x",e,t,n),kx("dtype",e,t,n))];case"ExpandDims":{const r=kx("axis",e,t,n);return[lu(kx("x",e,t,n),r)]}case"Squeeze":{const r=kx("axis",e,t,n);return[eh(kx("x",e,t,n),r)]}case"Reshape":return[vl(kx("x",e,t,n),kx("shape",e,t,n))];case"MirrorPad":return[Zu(kx("x",e,t,n),kx("padding",e,t,n),kx("mode",e,t,n))];case"PadV2":case"Pad":return[lc(kx("x",e,t,n),kx("padding",e,t,n),kx("constantValue",e,t,n))];case"SpaceToBatchND":{const r=kx("blockShape",e,t,n),a=kx("paddings",e,t,n);return[dc(kx("x",e,t,n),r,a)]}case"BatchToSpaceND":{const r=kx("blockShape",e,t,n),a=kx("crops",e,t,n);return[Nl(kx("x",e,t,n),r,a)]}case"DepthToSpace":{const r=kx("blockSize",e,t,n),a=kx("dataFormat",e,t,n).toUpperCase();return[Jl(kx("x",e,t,n),r,a)]}case"BroadcastTo":return[Fl(kx("x",e,t,n),kx("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"hash_table":return(async(e,t,n,r)=>{switch(e.op){case"HashTable":case"HashTableV2":{const a=kx("keyDType",e,t,n),s=kx("valueDType",e,t,n),i=new pk(a,s);return r.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{const a=kx("tableHandle",e,t,n,r),s=kx("keys",e,t,n),i=kx("values",e,t,n),o=r.getHashTableById(a.id);return[await o.import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{const a=kx("tableHandle",e,t,n,r),s=kx("keys",e,t,n),i=kx("defaultValue",e,t,n),o=r.getHashTableById(a.id);return[await o.find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,r);case"custom":const a=_x(e.op);if(a&&a.customExecutor)return a.customExecutor(new lk(e,t,n));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return $e(a)?a.then((e=>[].concat(e))):[].concat(a)}class gk{constructor(e={},t={},n={},r={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function yk(e,t,n,r){const a=new Set,s=[];let i=null,o=null;const l=new Set,u=Object.keys(e).map((e=>Nx(e)[0]));let c=[];null!=r&&(c=r.map((e=>Nx(e.name)[0])));const h=[...t];for(;h.length>0;){const e=h.pop();(_k(e)||xk(e)||kk(e))&&null==i&&(i=e,o=i.children.map((e=>e.name)).filter((e=>a.has(e)))),a.add(e.name),null==n[e.name]&&-1===u.indexOf(e.name)&&-1===c.indexOf(e.name)&&(0!==e.inputs.length?e.inputs.forEach((e=>{l.has(e.name)||(l.add(e.name),h.push(e))})):s.push(e.name))}return{inputs:e,outputs:t,usedNodes:a,missingInputs:s,dynamicNode:i,syncInputs:o}}const bk=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],vk=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],wk=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function _k(e){return bk.indexOf(e.op)>=0}function xk(e){return vk.indexOf(e.op)>=0}function kk(e){return wk.indexOf(e.op)>=0}class Ek{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new Ek(e.functions[t],this)}))}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}getCompilationKey(e,t){const n=e.map((e=>e.name)).sort(),r=t.map((e=>e.name)).sort();return n.join(this.SEPERATOR)+"--"+r.join(this.SEPERATOR)}compile(e,t){const n=yk(e,t,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:a,syncInputs:s}=n;if(null!=a)throw new Error(`This execution contains the node '${a.name}', which has the dynamic op '${a.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(r.length>0){const n=t.map((e=>e.name)),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${n}] from the provided inputs [${a}]. Missing the following inputs: [${r}]`)}return function(e,t,n){const{usedNodes:r,inputs:a}=n,s=[],i=Object.keys(a).map((e=>Nx(e)[0])).map((t=>e.nodes[t])),o=e.initNodes;i.forEach((e=>{r.has(e.name)&&s.push(e)})),e.weights.forEach((e=>{r.has(e.name)&&s.push(e)})),null!=o&&o.forEach((e=>{r.has(e.name)&&s.push(e)}));const l=new Set,u=[];for(;s.length>0;){const e=s.pop();l.add(e.name),t[e.name]||u.push(e),e.children.forEach((e=>{!l.has(e.name)&&r.has(e.name)&&e.inputs.every((e=>l.has(e.name)))&&s.push(e)}))}return u}(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);const n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const r=n.map((e=>this.graph.nodes[Nx(e)[0]])),a=t.map((e=>Nx(e)[0]));let s=a.map((e=>this.graph.nodes[e]));0===s.length&&(s=this._outputs);const i=this.getCompilationKey(r,s);let o=this.compiledMap.get(i);null==o&&(o=this.compile(e,s),this.compiledMap.set(i,o));const l={},u={};return ro((()=>{const n=new gk(this.weightMap,l,u,this.functionExecutorMap),r=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,a]=Nx(t),s=[];s[a]=e[t],r[n]=s}));const s=this.getFrozenTensorIds(r),i={};for(let e=0;eEx(e,r,n)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,n,r,a,s,i){"control"!==t.category&&-1===s.indexOf(e)&&(n[e].forEach((e=>{null!=e&&(i[e.id]=(i[e.id]||0)+t.children.length)})),t.inputs.forEach((e=>{if("control"!==e.category){const t=function(e,t,n){return t[Sx(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((e=>{if(e&&!a.has(e.id)){const t=i[e.id];1===t?(e.dispose(),delete i[e.id]):null!=t&&i[e.id]--}}))}})))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,r={},a={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const s=new gk(this.weightMap,r,a,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map((e=>Ex(e,i,s))),l=o.map((e=>e.id)),u=Object.keys(e).map((t=>e[t].id)),c=new Set([...l,...u,...this.weightIds]);return Object.keys(i).forEach((e=>{i[e].forEach((e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()}))})),null==this.parent&&s.dispose(c),o}async executeFunctionAsync(e,t,n){const r=e.reduce(((e,t,n)=>(e[this.inputs[n].name]=t,e)),{});return this._executeAsync(r,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,r){const a=Object.keys(e),s=a.map((e=>this.graph.nodes[Nx(e)[0]])),i=n.map((e=>Nx(e)[0]));let o=i.map((e=>this.graph.nodes[e]));0===o.length&&(o=this._outputs);const{usedNodes:l,missingInputs:u,dynamicNode:c,syncInputs:h}=yk(e,o,this.weightMap,this._initNodes),f=[...s,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),d=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,r]=Nx(t),a=[];a[r]=e[t],d[n]=a}));const p={},m=this.getFrozenTensorIds(d),g={};for(;f.length>0;){const e=this.processStack(s,f,t,d,g,m,i,p,l);await Promise.all(e)}null!=c||r||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=o.filter((e=>!_k(e)&&!Ex(e.name,d,t))).map((e=>e.name));if(y.length>0){let e="";throw null!=c&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${a}]. Consider providing the following inputs: [${u}]. ${e}`)}return d}processStack(e,t,n,r,a,s,i,o,l){const u=[];for(;t.length>0;){const e=t.pop();n.currentContext=e.contexts;let c="";if("Enter"===e.node.op&&kx("isConstant",e.node,r,n)&&([c]=Cx(e.node.name,n)),null==r[e.node.name]){const h=mk(e.node,r,n,this._resourceManager);c||([c]=Cx(e.node.name,n));const f=n.currentContext;$e(h)?u.push(h.then((u=>(r[c]=u,n.currentContext=f,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l),u)))):(r[c]=h,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l))}else this.processChildNodes(e.node,t,n,r,a,l)}return u}processChildNodes(e,t,n,r,a,s){e.children.forEach((e=>{const[i]=Cx(e.name,n);!a[i]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!Ex(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!Ex(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const n=e[t],[r]=Nx(t),a=this.graph.nodes[r];if(a.attrParams.shape&&a.attrParams.shape.value){const e=a.attrParams.shape.value;Z(e.length===n.shape.length&&n.shape.every(((t,n)=>-1===e[n]||e[n]===t)),(()=>`The shape of dict['${a.name}'] provided in model.execute(dict) must be [${e}], but was [${n.shape}]`))}a.attrParams.dtype&&a.attrParams.dtype.value&&Z(n.dtype===a.attrParams.dtype.value,(()=>`The dtype of dict['${a.name}'] provided in model.execute(dict) must be ${a.attrParams.dtype.value}, but was ${n.dtype}`))}))}mapInputs(e){const t={};for(const n in e)null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[n]?t[this._signature.inputs[n].name]=e[n]:t[n]=e[n];return t}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=Nx(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>null!=this._signature&&null!=this._signature.outputs&&null!=this._signature.outputs[e]?this._signature.outputs[e].name:e),{})}checkOutputs(e){e.forEach((e=>{const[t]=Nx(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class Ck{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}class Sk{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",null==t&&(this.loadOptions={}),this.resourceManager=new Ck}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=ti(e,this.loadOptions);else{const t=ls(e,this.loadOptions);if(0===t.length)t.push(ti(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let n;n=null!=this.artifacts.userDefinedMetadata&&null!=this.artifacts.userDefinedMetadata.signature?this.artifacts.userDefinedMetadata.signature:this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const r=Ya(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Ek(qx.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(r),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=qx.Instance.transformGraph(e.modelInitializer);this.initializer=new Ek(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if("string"==typeof e){const t=os(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof ma||Array.isArray(e)))return e;if((e=Array.isArray(e)?e:[e]).length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce(((t,n,r)=>(t[n]=e[r],t)),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,n)=>(t[n]=[e[n]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}}async function Nk(e,t={}){if(null==e)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&null==e.load&&(e.endsWith("/")||(e+="/"),e=`${e}model.json?tfjs-format=file`);const n=new Sk(e,t);return await n.load(),n}const Ik="2.8.5";function Dk(e,t,n=new Map,r=new Set){if(null==e)return null;if(r.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(a.recurse){if(Ok(e)){const a=Array.isArray(e)?[]:{};r.add(e);for(const s in e){const i=Dk(e[s],t,n,r);a[s]=i}return r.delete(e),a}throw new Error(`Can't recurse into non-iterable type: ${e}`)}return n.set(e,a.value),a.value}function Ak(e,t=Rk){return Tk(e,t)}function Tk(e,t,n=new Set){const r=e[0];if(n.has(r))throw new Error("Circular references are not supported.");const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(a.recurse){if(Ok(r)){const a=Array.isArray(r)?[]:{};n.add(r);for(const s in r){const r=Tk(e.map((e=>e[s])),t,n);a[s]=r}return n.delete(r),a}throw new Error(`Can't recurse into non-iterable type: ${r}`)}return a.value}function Rk(e){return null===e?null:Ok(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Fk(e,t){const n=new Map;Dk(e,t,n);for(const e of Array.from(n.keys())){const t=n.get(e);if($e(t)){const r=await t;n.set(e,r)}}return Dk(e,t,n)}function Ok(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof ma))}function Bk(e){return e instanceof ma?{value:e.clone(),recurse:!1}:Ok(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Mk{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return 0===this.length()}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}}class $k extends Mk{constructor(){super($k.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=2*this.capacity,t=new Array(e),n=this.length();for(let e=0;e!0===e))}rowMajorBatch(e,t=!0){return new Gk(this,e,t)}columnMajorBatch(e,t=!0,n=Rk){return this.rowMajorBatch(e,t).map((e=>Ak(e,n)))}concatenate(e,t){return new Qk(Pk([this,e]),t)}take(e){return e<0||null==e?this:new Hk(this,e)}skip(e){return e<0||null==e?this:new jk(this,e)}prefetch(e){return new nE(this,e)}shuffle(e,t){return new rE(this,e,t)}serial(){return new Vk(this)}}class Wk extends zk{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:(t=e,function(e,t){return Dk(e,t)}(t,Bk)),done:!1};var t}}class Uk extends zk{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class Vk extends zk{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){return this.upstream.next()}}class jk extends zk{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class Gk extends zk{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class qk extends zk{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;ao(e.value)}}}class Kk extends zk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Ia(e.value),n=this.transform(e.value),r=Ia(n);for(const e of t)Na(e,r)||e.dispose();return{value:n,done:!1}}}class Xk extends zk{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class Yk extends zk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Ia(e.value),n=await this.transform(e.value),r=Ia(n);for(const e of t)Na(e,r)||e.dispose();return{value:n,done:!1}}}class Jk extends zk{constructor(){super(),this.outputQueue=new $k,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;0===this.outputQueue.length();)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class Zk extends Jk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=Ia(e.value),n=this.transform(e.value),r=Ia(n);this.outputQueue.pushAll(n);for(const e of t)Na(e,r)||e.dispose();return!0}}class Qk extends zk{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,null==this.iterator){const e=await this.moreIterators.next();if(e.done)return{value:null,done:!0};this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var eE;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(eE||(eE={}));class tE extends zk{constructor(e,t=eE.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;const r=await Fk(this.iterators,(function(e){return e instanceof zk?{value:e.next().then((e=>(t++,e.done&&n++,e.value))),recurse:!1}:{value:null,recurse:!0}}));if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case eE.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case eE.SHORTEST:return{value:null,done:!0};case eE.LONGEST:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class nE extends zk{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new Mk(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class rE extends nE{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=bc.alea(n||oa().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(!t.done)return this.refill(),t;this.upstreamExhausted=!0}return{value:null,done:!0}}}class aE{constructor(){this.size=null}batch(e,t=!0){const n=this;let r;return Z(e>0,(()=>`batchSize needs to be positive, but it is\n ${e}`)),r=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),sE((async()=>(await n.iterator()).columnMajorBatch(e,t,lE)),r)}concatenate(e){const t=this;let n;return n=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,sE((async()=>(await t.iterator()).concatenate(await e.iterator())),n)}filter(e){const t=this;let n;return n=this.size===1/0?1/0:null,sE((async()=>(await t.iterator()).filter((t=>ro((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return sE((async()=>(await t.iterator()).map((t=>ro((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return sE((async()=>(await t.iterator()).mapAsync(e)),this.size)}prefetch(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return sE((async()=>(await t.iterator()).prefetch(e)),this.size)}repeat(e){const t=this;let n;return n=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,sE((async()=>{return n=Lk((async()=>({value:await t.iterator(),done:!1}))).take(e),new Qk(n,r);var n,r}),n)}skip(e){const t=this;let n;return n=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size(await t.iterator()).skip(e)),n)}shuffle(e,t,n=!0){if(null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const r=this,a=bc.alea(t||oa().toString());return sE((async()=>{let t=a.int32();return n&&(t+=a.int32()),(await r.iterator()).shuffle(e,t.toString())}),this.size)}take(e){const t=this;let n;return n=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,sE((async()=>(await t.iterator()).take(e)),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}function sE(e,t=null){return new class extends aE{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function iE(e){return sE((async()=>Pk(e)),e.length)}function oE(e){if(!Ok(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;nfunction(e,t=eE.FAIL){return new tE(e,t)}(await Fk(e,(e=>{if(e instanceof aE)return{value:e.iterator(),recurse:!1};if(Ok(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})),eE.SHORTEST)),t)}function lE(e){if(null===e)return null;return null==(t=e[0])||null===(n=t)||"object"!=typeof n&&"function"!=typeof n||Array.isArray(t)||"object"==typeof t&&t instanceof ma||ve(t)?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof ma?th(e):qa(e)}(e),recurse:!1}:{value:null,recurse:!0};var t,n}aE.MAX_BUFFER_SIZE=1e4;class uE extends aE{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split("\n").map((e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e)))}}const cE='"',hE=Symbol("out"),fE=Symbol("field"),dE=Symbol("quote"),pE=Symbol("quoteafterquote"),mE=Symbol("quoteinquote");class gE extends aE{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new uE(e),t||(t={}),this.hasHeader=!1!==t.hasHeader,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(Z(null==t.delimiter,(()=>"Delimiter should not be provided when delimWhitespace is true.")),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&Z(e.length===this.fullColumnNames.length,(()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+").")),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce(((e,t)=>(e[t]=e[t]+1||1,e)),{}),n=Object.keys(t).filter((e=>t[e]>1));if(Z(0===n.length,(()=>"Duplicate column names found: "+n.toString())),this.columnConfigs)for(const e of Object.keys(this.columnConfigs))if(-1===this.fullColumnNames.indexOf(e))throw new Error('The key "'+e+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").");this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const n=t.value;return this.parseRow(n,!1)}return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map((e=>this.makeDataElement(e)))}makeDataElement(e){const t=this.parseRow(e),n={},r={};for(let a=0;a14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!1!==e.includeSpectrogram,this.includeWaveform=!0===e.includeWaveform,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(Le().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new yE(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:null==this.audioTrackConstraints||this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,this.sampleRateHz){if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`)}else this.sampleRateHz=this.audioContext.sampleRate;const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const n=await this.getAudioData();if(this.includeSpectrogram){const t=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(t,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const e=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(e,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let n=0;return new Promise((r=>{const a=setInterval((()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(a),r({freqDataQueue:e,timeDataQueue:t}))}),this.fftSize/this.sampleRateHz*1e3)}))}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),null!=this.stream&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,n=new Float32Array(e.length*t);return e.forEach(((e,r)=>n.set(e,r*t))),n}getTensorFromAudioDataArray(e,t){const n=new Float32Array(ne(t));return n.set(e,n.length-e.length),qa(n,t)}}class bE extends zk{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=sh([0],"int32"),this.webcamConfig.centerCrop){const e=1*this.webcamConfig.resizeWidth/this.webcamVideoElement.width,t=1*this.webcamConfig.resizeHeight/this.webcamVideoElement.height,n=(1-e)/2,r=(1-t)/2,a=n+e,s=t+r;this.cropBox=ih([r,n,s,a],[1,4])}else this.cropBox=ih([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(Le().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const n=new bE(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&Z("user"===this.webcamConfig.facingMode||"environment"===this.webcamConfig.facingMode,(()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`));try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise((e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}}))}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=di(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(!this.resize)return{value:e,done:!1};try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{e.dispose()}}needToResize(){return!(!this.webcamConfig.resizeWidth||!this.webcamConfig.resizeHeight||this.webcamVideoElement.width===this.webcamConfig.resizeWidth&&this.webcamVideoElement.height===this.webcamConfig.resizeHeight)}cropAndResizeFrame(e){return ro((()=>{const t=e.toFloat().expandDims(0);let n;n=Lf.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const r=n.shape;return n.reshape(r.slice(1))}))}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach((e=>e.stop()));try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class vE{}class wE extends zk{split(e){return new _E(this,e)}}class _E extends wE{constructor(e,t){super(),this.upstream=e,this.impl=new xE(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class xE extends Jk{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return""!==this.carryover&&(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const e of t.slice(0,-1))this.outputQueue.push(e);return this.carryover=t[t.length-1],!0}}class kE extends zk{decodeUTF8(){return new EE(this)}}class EE extends wE{constructor(e){super(),this.upstream=e,this.impl=new CE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class CE extends Jk{constructor(e){if(super(),this.upstream=e,Le().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:e}=n(4589);this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t,n;return!e.done&&(t=e.value,n=Le().get("IS_BROWSER")?this.decoder.decode(t,{stream:!0}):this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0)}}class SE extends kE{constructor(e,t={}){super(),this.file=e,this.options=t,Z(e instanceof Uint8Array||!!Le().get("IS_BROWSER")&&(e instanceof File||e instanceof Blob),(()=>"FileChunkIterator only supports File, Blob and Uint8Array right now.")),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1048576}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise(((e,t)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{const r=new FileReader;r.onload=n=>{let a=r.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(a)},r.onabort=e=>t(new Error("Aborted")),r.onerror=e=>t(new Error(e.type));const a=this.file.slice(this.offset,n);r.readAsArrayBuffer(a)}this.offset=n}));return{value:await e,done:!1}}}function NE(e){return"string"==typeof e&&"file://"===e.substr(0,7)}class IE extends vE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(NE(this.input)&&Le().get("IS_NODE")){const e=n(2993);this.input=e.readFileSync(this.input.substr(7))}return new SE(this.input,this.options)}}class DE extends vE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return NE(this.url)?new IE(this.url,this.fileOptions).iterator():async function(e,t={}){let n,r;var a;"string"==typeof e?n=e:(n=e.url,r={method:(a=e).method,headers:a.headers,body:a.body,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,referrer:a.referrer,integrity:a.integrity});const s=await la(n,r);if(s.ok){const e=new Uint8Array(await s.arrayBuffer());return new SE(e,t)}throw new Error(s.statusText)}(this.url,this.fileOptions)}}function AE(e,t={}){return new gE(new DE(e),t)}function TE(e){const t=Lk(e);return sE((async()=>t))}function RE(e){return sE((async()=>{const t=await e();return Lk((()=>t.next()))}))}async function FE(e,t){return bE.create(e,t)}async function OE(e){return yE.create(e)}const BE="2.8.5";function ME(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Z("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const $E=gh;class PE extends j{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new V(this,eo())}write(e,t,n){this.firstUse&&(this.firstUse=!1,Le().get("IS_NODE")&&cd("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================"));const r={};return this.data.set(r,{values:e,dtype:n,refCount:1}),r}makeTensorInfo(e,t,n){let r;if("string"===t&&null!=n&&n.length>0&&xe(n[0])){const a=n.map((e=>ua(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return{dataId:r,shape:e,dtype:t}}incRef(e){this.data.get(e).refCount++}decRef(e){this.data.has(e)&&this.data.get(e).refCount--}move(e,t,n,r){this.data.set(e,{values:t,dtype:r,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:n}=this.data.get(e);return"complex64"===t?fd(this.readSync(n.real.dataId),this.readSync(n.imag.dataId)):this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>ca(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ls(e.shape,e.dtype,n)}makeOutput(e,t,n){const r=this.write(e,t,n);return eo().makeTensorFromDataId(r,t,n,this)}disposeData(e){if(this.data.has(e)){const{complexTensorInfos:t}=this.data.get(e);null!=t&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.data.has(t)){const e=this.data.get(t);e.refCount--,e.refCount<1&&this.disposeData(t)}}async time(e){const t=oa();return e(),{kernelMs:oa()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ME([e],"where");const t=this.readSync(e.dataId);return $E(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function LE(e,t,n){return({inputs:r,attrs:a,backend:s})=>{const{x:i}=r;if(ME(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=ne(i.shape),c=n||i.dtype,h=me(c,u);for(let e=0;e{const{x:i}=r;if(ME(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,c=t(l,u,a);return o.makeTensorInfo(i.shape,u,c)}}po("cpu",(()=>new PE),1);const WE=LE(Pt,(e=>e>=0?e:Math.exp(e)-1)),UE={kernelName:Pt,backendName:"cpu",kernelFunc:WE};function VE(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const jE={kernelName:tn,backendName:"cpu",kernelFunc:VE};function HE(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r;ME([a],"leakyRelu");const i=ne(a.shape),o=n.data.get(a.dataId).values,l=pe("float32",i);for(let e=0;e{const i=Uo(t,n),o=i.length,l=Ie(i),u=pe(s,ne(i)),c=t.length,h=n.length,f=Ie(t),d=Ie(n),p=zo(t,i),m=zo(n,i);if(p.length+m.length===0)for(let t=0;ts[e]=0));const i=Be(s,c,f),g=n.slice(-h);m.forEach((e=>g[e]=0));const y=Be(g,h,d);u[t]=e(r[i],a[y])}return[u,i]}}const KE=qE(((e,t)=>e<0?t*e:e));function XE(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t;ME([r,a],"prelu");const s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,[o,l]=KE(r.shape,a.shape,s,i,r.dtype);return n.makeTensorInfo(l,r.dtype,o)}const YE={kernelName:Hn,backendName:"cpu",kernelFunc:XE},JE=LE(Yn,(e=>Math.max(0,e))),ZE={kernelName:Yn,backendName:"cpu",kernelFunc:JE},QE=LE(nr,(e=>Math.min(Math.max(0,e),6))),eC={kernelName:nr,backendName:"cpu",kernelFunc:QE};function tC(e,t,n,r,a){if("linear"===n)return VE({inputs:{x:t},backend:e});if("relu"===n)return JE({inputs:{x:t},backend:e});if("elu"===n)return WE({inputs:{x:t},backend:e});if("relu6"===n)return QE({inputs:{x:t},backend:e});if("prelu"===n)return XE({inputs:{x:t,alpha:r},backend:e});if("leakyrelu"===n)return HE({inputs:{x:t},backend:e,attrs:{alpha:a}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function nC(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,o=n.makeTensorInfo(r.shape,"complex64");return n.data.get(o.dataId).complexTensorInfos={real:n.makeTensorInfo(r.shape,"float32",s),imag:n.makeTensorInfo(a.shape,"float32",i)},o}const rC={kernelName:mt,backendName:"cpu",kernelFunc:nC};function aC(e,t,n="float32"){if("complex64"===n)return nC({inputs:{real:aC(e,t,"float32"),imag:aC(e,t,"float32")},backend:e});const r=Re(ne(t),n);return e.makeTensorInfo(t,n,r)}function sC(e){const{inputs:t,backend:n}=e,{input:r}=t,a=n.data.get(r.dataId).complexTensorInfos.real,s=n.data.get(a.dataId).values;return n.makeTensorInfo(a.shape,a.dtype,s)}const iC={kernelName:Kn,backendName:"cpu",kernelFunc:sC};function oC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dtype:s}=r;if("complex64"===s){if("complex64"===a.dtype)return VE({inputs:{x:a},backend:n});const e=aC(n,a.shape,a.dtype),t=oC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),r=nC({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),r}if("complex64"===a.dtype){const e=sC({inputs:{input:a},backend:n}),t=oC({inputs:{x:e},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(e),t}if(!be(a.dtype,s)){const e=VE({inputs:{x:a},backend:n});return{dataId:e.dataId,shape:e.shape,dtype:s}}if("int32"===s){const e=n.data.get(a.dataId).values,t=Int32Array.from(e);return n.makeTensorInfo(a.shape,"int32",t)}if("bool"===s){const e=n.data.get(a.dataId).values,t=ia([0],a.dtype),[r,s]=qE(((e,t)=>e!==t?1:0))(a.shape,[],e,t,"bool");return n.makeTensorInfo(s,"bool",r)}throw new Error(`Error in Cast: failed to cast ${a.dtype} to ${s}`)}const lC={kernelName:ft,backendName:"cpu",kernelFunc:oC};function uC(e,t,n,r){return null==n?({inputs:n,backend:a})=>{const{a:s,b:i}=n,o=a;ME([s,i],e);const l=o.data.get(s.dataId).values,u=o.data.get(i.dataId).values,c=r||s.dtype,[h,f]=t(s.shape,i.shape,l,u,c);return o.makeTensorInfo(f,c,h)}:({inputs:e,backend:a})=>{const{a:s,b:i}=e,o=a;if("complex64"===s.dtype||"complex64"===i.dtype){const e=oC({inputs:{x:s},backend:o,attrs:{dtype:"complex64"}}),t=o.data.get(e.dataId),r=t.complexTensorInfos.real,a=t.complexTensorInfos.imag,l=o.data.get(r.dataId).values,u=o.data.get(a.dataId).values,c=oC({inputs:{x:i},backend:o,attrs:{dtype:"complex64"}}),h=o.data.get(c.dataId),f=h.complexTensorInfos.real,d=h.complexTensorInfos.imag,p=o.data.get(f.dataId).values,m=o.data.get(d.dataId).values,[g,y,b]=n(s.shape,i.shape,l,u,p,m),v=o.makeTensorInfo(b,"float32",g),w=o.makeTensorInfo(b,"float32",y),_=nC({inputs:{real:v,imag:w},backend:o});return o.disposeIntermediateTensorInfo(e),o.disposeIntermediateTensorInfo(c),o.disposeIntermediateTensorInfo(v),o.disposeIntermediateTensorInfo(w),_}{const e=o.data.get(s.dataId).values,n=o.data.get(i.dataId).values,a=r||s.dtype,[l,u]=t(s.shape,i.shape,e,n,a);return o.makeTensorInfo(u,a,l)}}}function cC(e){return(t,n,r,a,s,i)=>{const o=Uo(t,n),l=ne(o),u=o.length,c=Ie(o),h=pe("float32",l),f=pe("float32",l),d=zo(t,o),p=zo(n,o),m=fd(r,a),g=fd(s,i),y=t.length,b=Ie(t),v=n.length,w=Ie(n);if(d.length+p.length===0)for(let t=0;tr[e]=0));const a=Be(r,y,b),s=n.slice(-v);p.forEach((e=>s[e]=0));const i=Be(s,v,w),o=e(m[2*a],m[2*a+1],g[2*i],g[2*i+1]);h[t]=o.real,f[t]=o.imag}return[h,f,o]}}const hC=qE(((e,t)=>e+t)),fC=cC(((e,t,n,r)=>({real:e+n,imag:t+r}))),dC=uC(qe,hC,fC),pC={kernelName:qe,backendName:"cpu",kernelFunc:dC};function mC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{shape:s}=r,i=ne(a.shape),o=he(s,i),l=ne(o);Z(i===l,(()=>`The new shape (${o}) has ${l} elements and the old shape (${a.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`)),n.incRef(a.dataId);const u=n.data.get(a.dataId);if(null!=u.complexTensorInfos){const e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:a.dataId,shape:o,dtype:a.dtype}}const gC={kernelName:Jn,backendName:"cpu",kernelFunc:mC};function yC(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;ME([a,s],"matMul");const l=a.shape.length,u=s.shape.length,c=i?a.shape[l-2]:a.shape[l-1],h=o?s.shape[u-1]:s.shape[u-2],f=i?a.shape[l-1]:a.shape[l-2],d=o?s.shape[u-2]:s.shape[u-1],p=a.shape.slice(0,-2),m=s.shape.slice(0,-2),g=ne(p),y=ne(m);Z(l>=2&&u>=2&&(g===y||1===g||1===y),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${p}) and (${m}).`));const b=(g>y?a.shape.slice(0,-2):s.shape.slice(0,-2)).concat([f,d]);Z(c===h,(()=>`Error in matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${a.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`));const v=o?[y,d,h]:[y,h,d],w=mC({inputs:{x:a},backend:n,attrs:{shape:i?[g,c,f]:[g,f,c]}}),_=mC({inputs:{x:s},backend:n,attrs:{shape:v}}),x=i?w.shape[1]:w.shape[2],k=i?w.shape[2]:w.shape[1],E=o?_.shape[1]:_.shape[2],C=Math.max(g,y),S=n.data.get(w.dataId).values,N=n.data.get(_.dataId).values,I=Ie(w.shape),D=Ie(_.shape),[A,T,R]=i?[I[0],1,I[1]]:[I[0],I[1],1],[F,O,B]=o?[1,D[1],D[0]]:[D[1],1,D[0]],M=k*E,$=Ls([C,k,E],w.dtype),P=$.values,L=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;ME(t,"abs");let r=new Float32Array(ne(t.shape));return r=wC(n.data.get(t.dataId).values),n.makeOutput(r,t.shape,"float32")}},xC=LE(He,(e=>Math.acos(e))),kC={kernelName:He,backendName:"cpu",kernelFunc:xC},EC=LE(Ge,(e=>Math.acosh(e))),CC={kernelName:Ge,backendName:"cpu",kernelFunc:EC},SC={kernelName:Ke,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,r=t;ME(t,"addN");const a=r.map((e=>n.data.get(e.dataId).values)),s=Ls(r[0].shape,r[0].dtype),i=s.values;for(let e=0;en&&(n=a,r=e)}f[e]=r}return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},FC={kernelName:Ze,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;ME(a,"argMin");let i=fe(s,a.shape);const o=Pu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=IC({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=zu(i.length,l.shape.length)),i=[i[0]],$u("argMin",i,l.shape.length);const[c,h]=Bu(l.shape,i),f=Re(ne(c),"int32"),d=ne(h),p=n.data.get(l.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},OC=LE(Qe,(e=>Math.asin(e))),BC={kernelName:Qe,backendName:"cpu",kernelFunc:OC},MC=LE(et,(e=>Math.asinh(e))),$C={kernelName:et,backendName:"cpu",kernelFunc:MC},PC=LE(tt,(e=>Math.atan(e))),LC={kernelName:tt,backendName:"cpu",kernelFunc:PC},zC=qE(((e,t)=>Math.atan2(e,t))),WC=uC(rt,zC),UC={kernelName:rt,backendName:"cpu",kernelFunc:WC},VC=LE(nt,(e=>Math.atanh(e))),jC={kernelName:nt,backendName:"cpu",kernelFunc:VC};function HC(e,t,n,r,a,s){const i=a.strideHeight,o=a.strideWidth,l=a.dilationHeight,u=a.dilationWidth,c=a.effectiveFilterHeight,h=a.effectiveFilterWidth,f=a.padInfo.top,d=a.padInfo.left,p="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Ls(a.outShape,n),g=m.values,y=a.outShape[1]*a.outShape[2]*a.outShape[3],b=a.outShape[2]*a.outShape[3],v=a.outShape[3];for(let t=0;ty?y=i:"avg"===s&&(b+=i,w++)}if(isNaN(y))break}g[k+n*v+t]="avg"===s?b/w:y}}}return m}function GC(e,t,n,r,a=!1,s=!1){const i=Ls(r.outShape,"int32"),o=r.strideHeight,l=r.strideWidth,u=r.dilationHeight,c=r.dilationWidth,h=r.effectiveFilterHeight,f=r.effectiveFilterWidth,d=r.padInfo.top,p=r.padInfo.left,m=Ls(t,n,e);for(let e=0;ew&&(w=u,_=a?s?((e*r.inHeight+n)*r.inWidth+o)*r.inChannels+t:(n*r.inWidth+o)*r.inChannels+t:i*f+l)}}i.set(_,e,n,o,t)}}return i}function qC(e,t,n,r,a,s){const i=a.strideDepth,o=a.strideHeight,l=a.strideWidth,u=a.dilationDepth,c=a.dilationHeight,h=a.dilationWidth,f=a.effectiveFilterDepth,d=a.effectiveFilterHeight,p=a.effectiveFilterWidth,m=a.padInfo.front,g=a.padInfo.top,y=a.padInfo.left,b="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Ls(a.outShape,n),w=v.values,_=a.outShape[1]*a.outShape[2]*a.outShape[3]*a.outShape[4],x=a.outShape[2]*a.outShape[3]*a.outShape[4],k=a.outShape[3]*a.outShape[4],E=a.outShape[4];for(let t=0;tx?x=a:"avg"===s&&(k+=a,C++),isNaN(x))break}if(isNaN(x))break}if(isNaN(x))break}w[g+t]="avg"===s?k/C:x}}}}return v}const KC={kernelName:at,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;ME(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))c=VE({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ie(a.shape),r=HC(e,a.shape,a.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},XC={kernelName:it,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u,dilations:c}=r;ME(a,"avgPool3d");let h=c;null==h&&(h=[1,1,1]);const f=ll(a.shape,s,i,h,o,l,u),d=qC(n.data.get(a.dataId).values,a.shape,a.dtype,Ie(a.shape),f,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}},YC={kernelName:ot,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dilations:u,dimRoundingMode:c}=r;ME([a,s],"avgPool3DGrad");const h=ll(s.shape,i,o,u,l,c),f=h.strideDepth,d=h.strideHeight,p=h.strideWidth,m=h.filterDepth,g=h.filterHeight,y=h.filterWidth,b=h.dilationDepth,v=h.dilationHeight,w=h.dilationWidth,_=h.effectiveFilterDepth,x=h.effectiveFilterHeight,k=h.effectiveFilterWidth,E=_-1-h.padInfo.front,C=k-1-h.padInfo.left,S=x-1-h.padInfo.top,N=Ls(s.shape,"float32"),I=1/(m*g*y),D=n.bufferSync(a);for(let e=0;e=h.outDepth||Math.floor(r)!==r))for(let n=0;n=h.outHeight||Math.floor(a)!==a))for(let n=0;n=h.outWidth||Math.floor(s)!==s||(l+=D.get(e,r,a,s,t))}}}N.set(l*I,e,n,r,a,t)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}},JC={kernelName:st,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;ME([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=ol(i.shape,o,l,1,u),h=c.strideHeight,f=c.strideWidth,d=c.filterHeight,p=c.filterWidth,m=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,v=b-1-c.padInfo.left,w=y-1-c.padInfo.top,_=Ls(i.shape,"float32"),x=1/(d*p),k=n.data.get(a.dataId).values,E=Ls(a.shape,"float32",k);for(let e=0;e=c.outHeight||Math.floor(r)!==r))for(let n=0;n=c.outWidth||Math.floor(a)!==a||(i+=E.get(e,r,a,t))}}_.set(i*x,e,n,r,t)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}},ZC={kernelName:Yt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,scale:s,offset:i,mean:o,variance:l}=t;Z(o.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Z(null==i||o.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Z(null==s||o.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),ME([a,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=r;null==u&&(u=.001);const c=n.data.get(a.dataId).values,h=n.data.get(o.dataId).values,f=n.data.get(l.dataId).values,d=s?n.data.get(s.dataId).values:new Float32Array([1]),p=i?n.data.get(i.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),g=p.length,y=d.length,b=f.length,v=h.length;let w=0,_=0,x=0,k=0;for(let e=0;e=g&&(w=0),_>=v&&(_=0),x>=y&&(x=0),k>=b&&(k=0);return n.makeTensorInfo(a.shape,a.dtype,m)}};function QC(e,t,n,r,a){const s=Ai(r,t,n),i=ne(n),o=Ie(r);if(s){const n=Ti(t,o);return"string"===a?e.slice(n,n+i):e.subarray(n,n+i)}const l=Ls(r,a,"string"===a?Sd(e):e),u=Ls(n,a);for(let e=0;ee+t[n]));u.set(l.get(...r),...n)}return"string"===a?Nd(u.values):u.values}function eS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r;ME(a,"slice");const[o,l]=Ri(a,s,i);bi(a,o,l);const u=QC(n.data.get(a.dataId).values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,u)}const tS={kernelName:ur,backendName:"cpu",kernelFunc:eS},nS={kernelName:ut,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;ME([a],"batchToSpaceND");const o=s.reduce(((e,t)=>e*t)),l=Jf(a.shape,s,o),u=Zf(l.length,s.length),c=Qf(a.shape,s,o),h=ed(i,s.length),f=td(c,i,s.length),d=mC({inputs:{x:a},backend:n,attrs:{shape:l}}),p=IC({inputs:{x:d},backend:n,attrs:{perm:u}}),m=mC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=eS({inputs:{x:m},backend:n,attrs:{begin:h,size:f}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};function rS(e,t,n,r,a){const s=ne(r),i=Re(a,n);for(let n=0;n=a||(i[r]+=s>0?t[n]:1)}return i}function aS(e,t,n,r=!1){const a=e.shape[0],s=e.shape[1],i=Ls([a,n],t.dtype);for(let o=0;o=n||(r?i.set(1,o,s):t.size>0?i.set(i.get(o,s)+t.get(o,a),o,s):i.set(i.get(o,s)+1,o,s))}return i}const sS={kernelName:ct,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=rS(n.data.get(a.dataId).values,n.data.get(s.dataId).values,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,o)}};function iS(e){return(t,n,r)=>{const a=pe(n,t.length);for(let n=0;nMath.ceil(e))),lS=zE(dt,oS),uS={kernelName:dt,backendName:"cpu",kernelFunc:lS},cS=LE(pt,((e,t)=>{const n=t;return e>n.clipValueMax?n.clipValueMax:e{const{x:t}=e.inputs,n=e.backend,r=new Float32Array(ne(t.shape)),a=n.data.get(t.dataId),s=a.complexTensorInfos.real,i=a.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let e=0;e{const n=ne(e.shape);a.set(e.vals,t),t+=n}))}else{let r=0;e.forEach((e=>{const s="string"===n?Sd(e.vals):e.vals;let i=0;for(let n=0;ne.shape)),s);if(0===ne(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>ne(e.shape)>0));if(1===o.length)return VE({inputs:{x:o[0]},backend:n});if(Gf(o.map((e=>e.shape)),s),"complex64"===o[0].dtype){const e=o.map((e=>sC({inputs:{input:e},backend:n}))),t=o.map((e=>pS({inputs:{input:e},backend:n}))),r=gS({inputs:e,backend:n,attrs:{axis:s}}),a=gS({inputs:t,backend:n,attrs:{axis:s}}),i=nC({inputs:{real:r,imag:a},backend:n});return e.forEach((e=>n.disposeIntermediateTensorInfo(e))),t.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(a),i}const l=o.map((e=>{const t=ne(e.shape.slice(s));return mC({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:n.data.get(e.dataId).values,shape:e.shape})));i=qf(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],h=dS(u,i,t[0].dtype,c),f=qf(o.map((e=>e.shape)),s),d=n.makeTensorInfo(f,t[0].dtype,h);return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}const yS={kernelName:yt,backendName:"cpu",kernelFunc:gS};function bS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r;ME([a,s],"conv2d");const h=bl(l),f=ul(a.shape,s.shape,i,u,o,c,!1,h),d=f.filterHeight,p=f.filterWidth,m=f.dilationHeight,g=f.dilationWidth,y=f.padInfo.left,b=f.padInfo.top,v="channelsLast"===f.dataFormat,w=new ha(f.outShape,a.dtype),_=Ie(a.shape),x=Ie(s.shape),k=_[0],E=v?_[1]:_[2],C=v?_[2]:1,S=v?1:_[1],N=w.strides[0],I=v?w.strides[1]:w.strides[2],D=v?w.strides[2]:1,A=v?1:w.strides[1],T=n.data.get(a.dataId).values,R=n.data.get(s.dataId).values,F=w.values;for(let e=0;e=f.inHeight)continue;const s=e*x[0],i=t+n*E;for(let e=0;e=f.inWidth)continue;const a=i+r*C;let o=s+e*x[1];for(let e=0;e=u.inDepth)continue;const s=e*C[0],i=t+n*E[1];for(let e=0;e=u.inHeight)continue;const a=s+e*C[1],o=i+r*E[2];for(let e=0;e=u.inWidth)continue;const s=a+e*C[2],i=o+t*u.inChannels;let l=s;for(let e=0;eMath.cos(e))),SS={kernelName:Et,backendName:"cpu",kernelFunc:CS},NS=LE(Ct,(e=>Math.cosh(e))),IS={kernelName:Ct,backendName:"cpu",kernelFunc:NS},DS={kernelName:Nt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,[c,h,f,d]=a.shape,p=s.shape[0],[m,g]=o,y=Ls([p,m,g,d],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,w=n.data.get(a.dataId).values,_=Ie(a.shape),x=Ie(y.shape);for(let e=0;e=c)continue;const o=m>1?(a-n)*(h-1)/(m-1):0,p=g>1?(s-r)*(f-1)/(g-1):0;for(let t=0;t1?n*(h-1)+t*o:.5*(n+a)*(h-1);if(c<0||c>h-1)for(let n=0;n1?r*(f-1)+l*p:.5*(r+s)*(f-1);if(c<0||c>f-1){for(let n=0;n1?r*(f-1)+n*p:.5*(r+s)*(f-1);if(a<0||a>f-1){for(let r=0;re+p-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`)),Z(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l=a.shape[1],u=a.shape[2],c=a.shape[3],h=l*s,f=u*s,d=c/(s*s),p=n.data.get(a.dataId).values,m=new Float32Array(o*h*f*d);let g=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${f}'`));const d=ul(a.shape,s.shape,i,f,o,u,!0),{filterHeight:p,filterWidth:m,dilationHeight:g,dilationWidth:y,padInfo:b}=d,v=b.left,w=b.top,_=d.outChannels/d.inChannels,x=new ha(d.outShape,a.dtype),k=n.data.get(a.dataId).values,E=n.data.get(s.dataId).values,C=x.values;for(let e=0;e=d.inHeight)continue;const s=e*h[0],i=t+n*c[1];for(let e=0;e=d.inWidth)continue;const a=s+e*h[1],o=i+r*d.inChannels;let l=t,u=a;for(let e=0;e{const{x:r,filter:a}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(r.dataId).values,c=r.shape.length,h=l.data.get(a.dataId).values,f=a.shape.length,{batchSize:d,inHeight:p,inWidth:m,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:w,strideWidth:_,filterHeight:x,filterWidth:k,dilationHeight:E,dilationWidth:C,outShape:S}=il(r.shape,a.shape,s,i,"NHWC",o),N=ne(S),I=S.length,D=me(r.dtype,N);for(let e=0;e=0&&s=0&&dl&&(l=m)}}}D[Be([e,t,s,o],I,Ie(S))]=l}}}return{dataId:l.write(ia(D,r.dtype),S,r.dtype),shape:S,dtype:r.dtype}}},LS={kernelName:Mt,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Ae(r.shape,u.data.get(r.dataId).values),h=Ae(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=il(r.shape,a.shape,i,o,"NHWC",l);Z(s.rank===C.length,(()=>`Error in ${Mt}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Ae(C,u.data.get(s.dataId).values),N=Fe(a.shape,a.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=t,l=n)}}}N[o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(ia(N,r.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},zS={kernelName:Bt,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Ae(r.shape,u.data.get(r.dataId).values),h=Ae(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=il(r.shape,a.shape,i,o,"NHWC",l);Z(s.rank===C.length,(()=>`Error in ${Bt}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Ae(C,u.data.get(s.dataId).values),N=Fe(r.shape,r.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=r,l=u)}}}N[e][o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(ia(N,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},WS={kernelName:Lt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:r,y:a}=t;ME([r,a],"eluGrad");const s=new Float32Array(ne(a.shape)),i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values;for(let e=0;e=1?o[e]:o[e]*(t+1)}return n.makeTensorInfo(a.shape,"float32",s)}},US=qE(((e,t)=>e===t?1:0)),VS=uC(Wt,US,null,"bool"),jS={kernelName:Wt,backendName:"cpu",kernelFunc:VS},HS=ad,GS=sd,qS=id,KS=od,XS=ld,YS=ud,JS=LE(zt,(e=>{const t=Math.sign(e),n=Math.abs(e),r=1/(1+HS*n);return t*(1-((((YS*r+XS)*r+KS)*r+qS)*r+GS)*r*Math.exp(-n*n))})),ZS={kernelName:zt,backendName:"cpu",kernelFunc:JS},QS=iS((e=>Math.exp(e))),eN=zE(Ut,QS),tN={kernelName:Ut,backendName:"cpu",kernelFunc:eN};function nN(e){const{inputs:t,backend:n,attrs:r}=e,{input:a}=t,{dim:s}=r,i=a.shape.length,o=a.shape.slice();let l=s;return s<0&&(Z(-(i+1)<=s,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+s+1),o.splice(l,0,1),mC({inputs:{x:a},backend:n,attrs:{shape:o}})}const rN={kernelName:Vt,backendName:"cpu",kernelFunc:nN},aN=iS((e=>Math.expm1(e))),sN=zE(jt,aN),iN={kernelName:jt,backendName:"cpu",kernelFunc:sN},oN=qE(((e,t)=>e*t)),lN=cC(((e,t,n,r)=>({real:e*n-t*r,imag:e*r+t*n}))),uN=uC(Fn,oN,lN),cN={kernelName:Fn,backendName:"cpu",kernelFunc:uN},hN=qE(((e,t)=>e/t)),fN=uC($t,hN),dN={kernelName:$t,backendName:"cpu",kernelFunc:fN},pN=qE(((e,t)=>e-t)),mN=cC(((e,t,n,r)=>({real:e-n,imag:t-r}))),gN=uC(xr,pN,mN),yN={kernelName:xr,backendName:"cpu",kernelFunc:gN};function bN(e,t,n){const r=e.shape,a=r[0],s=r[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[a,s],c=ne(u),h=pe("float32",c),f=pe("float32",c);for(let e=0;e{const{image:r}=e,a=n,s=pe(r.dtype,ne(r.shape)),[i,o,l,u]=r.shape,c=a.data.get(r.dataId).values;for(let e=0;e=0&&fMath.floor(e))),SN=zE(Kt,CN),NN={kernelName:Kt,backendName:"cpu",kernelFunc:SN},IN=qE(((e,t)=>Math.floor(e/t))),DN=uC(Xt,IN,null,"int32"),AN={kernelName:Xt,backendName:"cpu",kernelFunc:DN},TN={kernelName:Pr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=bS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=dC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=tC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},RN={kernelName:Lr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=FS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=dC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=tC(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},FN={kernelName:Zt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=ne(r.shape),i=a.shape,o=i[i.length-1],[l,u,c,h]=pi(r,a);if(0===u)return n.makeTensorInfo(l,r.dtype,[]);const f=Ls([u,c],r.dtype),d=n.data.get(a.dataId).values,p=n.data.get(r.dataId).values;for(let e=0;e=s/c)throw new Error(`Invalid indices: ${t} does not index into ${r.shape}`);for(let t=0;te>t?1:0)),$N=uC(Qt,MN,null,"bool"),PN={kernelName:Qt,backendName:"cpu",kernelFunc:$N},LN=qE(((e,t)=>e>=t?1:0)),zN=uC(en,LN,null,"bool"),WN={kernelName:en,backendName:"cpu",kernelFunc:zN},UN={kernelName:nn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t,a=ne(r.shape),s=r.shape[r.shape.length-1],i=mC({inputs:{x:r},backend:n,attrs:{shape:[a/s,s]}}),o=bN(i,!0,n),l=mC({inputs:{x:o},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}},VN=LE(an,(e=>Number.isFinite(e)?1:0),"bool"),jN={kernelName:an,backendName:"cpu",kernelFunc:VN},HN=LE(sn,(e=>Math.abs(e)===1/0?1:0),"bool"),GN={kernelName:sn,backendName:"cpu",kernelFunc:HN},qN=LE(on,(e=>Number.isNaN(e)?1:0),"bool"),KN={kernelName:on,backendName:"cpu",kernelFunc:qN},XN=qE(((e,t)=>ee<=t?1:0)),QN=uC(cn,ZN,null,"bool"),eI={kernelName:cn,backendName:"cpu",kernelFunc:QN};function tI(e,t,n){const r=(t-e)/(n-1),a=Re(n,"float32");a[0]=e;for(let e=1;eMath.log(e))),aI=zE(fn,rI),sI={kernelName:fn,backendName:"cpu",kernelFunc:aI},iI=LE(dn,(e=>Math.log1p(e))),oI={kernelName:dn,backendName:"cpu",kernelFunc:iI},lI=qE(((e,t)=>e&&t)),uI=uC(pn,lI,null,"bool"),cI={kernelName:pn,backendName:"cpu",kernelFunc:uI},hI=LE(mn,(e=>e?0:1),"bool"),fI={kernelName:mn,backendName:"cpu",kernelFunc:hI},dI=qE(((e,t)=>e||t)),pI=uC(gn,dI,null,"bool"),mI={kernelName:gn,backendName:"cpu",kernelFunc:pI},gI={kernelName:bn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r;ME(a,"LRN");const u=a.shape[3],c=u-1,h=n.data.get(a.dataId).values,f=ne(a.shape),d=new Float32Array(f);function p(e){const t=e%u;let n=e-t+Math.max(0,t-s);const r=e-t+Math.min(t+s,c);let a=0;for(;n<=r;n++){const e=h[n];a+=e*e}return a}for(let e=0;es&&(s=t)}a[n]=s}return a}function vI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=n;let l=a.shape;const u=l.length,c=fe(s,l);let h=c;const f=Pu(h,u);let d=o.data.get(a.dataId).values;if(null!=f){const e=new Array(u);for(let t=0;tMath.max(e,t))),xI=uC(_n,_I),kI={kernelName:_n,backendName:"cpu",kernelFunc:xI},EI={kernelName:xn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;ME(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))c=VE({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ie(a.shape),r=HC(e,a.shape,a.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},CI={kernelName:En,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u,dilations:c}=r;ME(a,"maxPool3d");let h=c;null==h&&(h=[1,1,1]);const f=ll(a.shape,s,i,h,o,l,u),d=qC(n.data.get(a.dataId).values,a.shape,a.dtype,Ie(a.shape),f,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}},SI={kernelName:Cn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dilations:u,dimRoundingMode:c}=r;ME([a,s],"maxPool3DGrad");const h=ll(s.shape,i,o,u,l,c),f=function(e,t){const n=Ls(t.outShape,"int32"),r=t.strideDepth,a=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,h=t.effectiveFilterWidth,f=t.padInfo.front,d=t.padInfo.top,p=t.padInfo.left;for(let m=0;m=E&&(E=o,C=n*c*h+a*c+i)}}}n.set(C,m,y,r,a,g)}}}return n}(n.bufferSync(s),h),d=h.strideDepth,p=h.strideHeight,m=h.strideWidth,g=h.dilationDepth,y=h.dilationHeight,b=h.dilationWidth,v=h.effectiveFilterDepth,w=h.effectiveFilterHeight,_=h.effectiveFilterWidth,x=v-1-h.padInfo.front,k=_-1-h.padInfo.left,E=w-1-h.padInfo.top,C=Ls(s.shape,"float32"),S=n.bufferSync(a);for(let e=0;e=h.outDepth||Math.floor(r)!==r))for(let a=0;a=h.outHeight||Math.floor(s)!==s))for(let i=0;i<_;i+=b){const u=(o+i)/m;if(u<0||u>=h.outWidth||Math.floor(u)!==u)continue;const c=v*w*_-1-f.get(e,r,s,u,t)===n*w*_+a*_+i?1:0;0!==c&&(l+=S.get(e,r,s,u,t)*c)}}}C.set(l,e,n,r,a,t)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}},NI={kernelName:kn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;ME([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=ol(o.shape,l,u,1,c,h),d=n.data.get(o.dataId).values,p=Ls(f.outShape,o.dtype,GC(d,o.shape,o.dtype,f).values),m=f.strideHeight,g=f.strideWidth,y=f.dilationHeight,b=f.dilationWidth,v=f.effectiveFilterHeight,w=f.effectiveFilterWidth,_=w-1-f.padInfo.left,x=v-1-f.padInfo.top,k=Ls(o.shape,"float32"),E=n.data.get(a.dataId).values,C=Ls(a.shape,"float32",E);for(let e=0;e=f.outHeight||Math.floor(r)!==r))for(let a=0;a=f.outWidth||Math.floor(o)!==o)continue;const l=v*w-1-p.get(e,r,o,t)===n*w+a?1:0;0!==l&&(i+=C.get(e,r,o,t)*l)}}k.set(i,e,n,r,t)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}},II={kernelName:Sn,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ME(r,"MaxPoolWithArgmax");const u=l.data.get(r.dataId).values,c=ol(r.shape,a,s,[1,1],i),[h,f]=function(e,t,n,r,a){const s=HC(e,0,n,Ie(t),a,"max"),i=GC(e,t,n,a,!0,r);return[s.values,i.values]}(u,r.shape,r.dtype,o,c),d=l.write(h,c.outShape,r.dtype),p=l.write(f,c.outShape,r.dtype);return[{dataId:d,shape:c.outShape,dtype:r.dtype},{dataId:p,shape:c.outShape,dtype:"int32"}]}};function DI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;let o;ME(a,"sum"),o="bool"===a.dtype?oC({inputs:{x:a},backend:n,attrs:{dtype:"int32"}}):VE({inputs:{x:a},backend:n});const l=o.shape.length,u=fe(s,o.shape),c=Pu(u,l);let h=u,f=o;null!=c&&(f=IC({inputs:{x:o},backend:n,attrs:{perm:c}}),h=zu(h.length,l)),$u("sum",h,f.shape.length);const[d,p]=Bu(f.shape,h);let m=aC(n,d,ka(f.dtype,"int32"));const g=ne(p),y=n.data.get(m.dataId).values,b=n.data.get(f.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),d}},RI={kernelName:In,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;ME(a,"min");const o=fe(s,a.shape);let l=o;const u=Pu(l,a.shape.length);let c=a;null!=u&&(c=IC({inputs:{x:a},backend:n,attrs:{perm:u}}),l=zu(l.length,a.shape.length)),$u("min",l,c.shape.length);const[h,f]=Bu(c.shape,l),d=ne(f),p=Re(ne(h),c.dtype),m=n.data.get(c.dataId).values;for(let e=0;eMath.min(e,t))),OI=uC(Dn,FI),BI={kernelName:Dn,backendName:"cpu",kernelFunc:OI},MI={kernelName:An,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,mode:i}=r;ME(a,"mirrorPad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=s.map(((e,t)=>e[0]+a.shape[t])),c="reflect"===i?0:1,h=n.data.get(a.dataId).values,f=a.shape.length,d=Ie(a.shape),p=ne(o),m=o.length,g=Ie(o),y=pe(a.dtype,p);for(let e=0;e=u[e]&&(t[e]=2*(u[e]-1)-t[e]+c);t=t.map(((e,t)=>e-l[t]));const n=Be(t,f,d);y[e]=h[n]}return{dataId:n.write(y,o,a.dtype),shape:o,dtype:a.dtype}}},$I=qE(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),PI=uC(Tn,$I),LI={kernelName:Tn,backendName:"cpu",kernelFunc:PI};function zI(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=a.shape.length;let o=s;if(-1===o&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);const l=fe([o],a.shape),u=vI({inputs:{x:a},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=Mu(u.shape,l),h=mC({inputs:{x:u},backend:n,attrs:{shape:c}}),f=gN({inputs:{a,b:h},backend:n}),d=eN({inputs:{x:f},backend:n}),p=DI({inputs:{x:d},backend:n,attrs:{axis:l,keepDims:!1}}),m=mC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=fN({inputs:{a:d,b:m},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}const WI={kernelName:vr,backendName:"cpu",kernelFunc:zI},UI={kernelName:Rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r;ME(a,"multinomial");const l=o?a:zI({inputs:{logits:a},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],h=n.data.get(l.dataId).values,f=[u,s],d=Re(ne(f),"int32");for(let e=0;ee!==t?1:0)),ZI=uC(Bn,JI,null,"bool"),QI={kernelName:Bn,backendName:"cpu",kernelFunc:ZI},eD={kernelName:zn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r;ME(a,"oneHot");const l=ne(a.shape),u=new Float32Array(l*s);u.fill(o);const c=n.data.get(a.dataId).values;for(let e=0;e=0&&c[e]{Q(s,e.shape,"All tensors passed to stack must have matching shapes"),Z(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=gS({inputs:t.map((e=>{const t=nN({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}const sD={kernelName:Wn,backendName:"cpu",kernelFunc:aD},iD={kernelName:Un,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r;ME(a,"pad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=n.data.get(a.dataId).values,c=ne(a.shape),h=a.shape.length,f=Ie(a.shape),d=ne(o),p=o.length,m=Ie(o),g=pe(a.dtype,d);0!==i&&g.fill(i);for(let e=0;ee+l[t])),p,m)]=u[e];return{dataId:n.write(g,o,a.dtype),shape:o,dtype:a.dtype}}},oD=qE(((e,t)=>Math.pow(e,t))),lD=uC(jn,oD),uD={kernelName:jn,backendName:"cpu",kernelFunc:lD};function cD(e,t,n,r){const[a,s]=Bu(e,r),i=ka(t,"int32"),o=Re(ne(a),i),l=ne(s);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,p)}};function fD(e,t,n,r){if(e===t||e1)return Re(0,r);const a=Re(Math.abs(Math.ceil((t-e)/n)),r);t1/e)),mD={kernelName:Xn,backendName:"cpu",kernelFunc:pD},gD={kernelName:er,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r;ME(a,"resizeBilinear");const l=Ie(a.shape),[u,c]=o,[h,f,d,p]=a.shape,m=n.data.get(a.dataId).values,g=new Float32Array(ne([h,u,c,p])),y=[s&&u>1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c];let v=0;const w=y[0]/b[0],_=y[1]/b[1];for(let e=0;e1?u-1:u,i&&d>1?c-1:c],g=[i&&f>1?f-1:f,i&&d>1?d-1:d],y=m[0]/g[0],b=m[1]/g[1],v=n.data.get(s.dataId).values;let w=0;for(let e=0;e1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],v=y[0]/b[0],w=y[1]/b[1];let _=0;for(let e=0;e1?c-1:c,i&&p>1?h-1:h],b=[i&&d>1?d-1:d,i&&p>1?p-1:p],v=y[0]/b[0],w=y[1]/b[1],_=1/v,x=1/w,k=2*Math.ceil(_)+2,E=2*Math.ceil(x)+2;for(let e=0;e=d)continue;const f=t+u*l[1],m=u*v;if(e===Math.min(c-1,i?Math.round(m):Math.floor(m)))for(let e=0;e=p)continue;const a=f+t*l[2],s=t*w;r===Math.min(h-1,i?Math.round(s):Math.floor(s))&&(o+=g[a+n])}}m[s+n]=o}}}}return n.makeTensorInfo(a.shape,a.dtype,m)}},wD={kernelName:rr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r;ME(a,"reverse");const i=a.shape.length,o=fe(s,a.shape);if(0===i)return VE({inputs:{x:a},backend:n});const l=new ha(a.shape,a.dtype),u=n.bufferSync(a);for(let e=0;en[e]=a.shape[e]-1-n[e])),l.set(u.get(...n),...t)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}},_D={kernelName:Mr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=pe(r.dtype,ne(r.shape)),[u,c,h,f]=r.shape,[d,p]=Yf(i,c,h),m=Math.sin(a),g=Math.cos(a),y=o.data.get(r.dataId).values;for(let e=0;e=0&&w=0&&_{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),kD={kernelName:ar,backendName:"cpu",kernelFunc:xD},ED=iS((e=>1/Math.sqrt(e))),CD=zE(sr,ED),SD={kernelName:sr,backendName:"cpu",kernelFunc:CD};function ND(e,t,n,r,a,s,i,o,l,u){const c=[r/a,a],h=e.values,f=t.values;if(0===r)return Ls(n,t.dtype);const d=Ls(c,t.dtype);d.values.fill(l);for(let e=0;e=r/a)throw new Error(`Invalid indices: ${s} does not index into ${n}`);for(let n=0;n1||1===a.shape.length?1:ne(a.shape.slice(1));for(let e=0;ee>=0?TD*e:AD*(Math.exp(e)-1))),FD={kernelName:lr,backendName:"cpu",kernelFunc:RD},OD=LE(dr,(e=>1/(1+Math.exp(-e)))),BD={kernelName:dr,backendName:"cpu",kernelFunc:OD},MD=LE(fr,(e=>e<0?-1:e>0?1:0)),$D={kernelName:fr,backendName:"cpu",kernelFunc:MD},PD=LE(cr,(e=>Math.sin(e))),LD={kernelName:cr,backendName:"cpu",kernelFunc:PD},zD=LE(hr,(e=>Math.sinh(e))),WD={kernelName:hr,backendName:"cpu",kernelFunc:zD},UD=Math.log(1.1920928955078125e-7)+2,VD=LE(pr,(e=>{const t=e>-UD,n=e{const t=[...c];t[o]=e;const r=eS({inputs:{x:a},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,r}))}},KD=LE(mr,(e=>Math.sqrt(e))),XD={kernelName:mr,backendName:"cpu",kernelFunc:KD},YD={kernelName:_r,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,r=t;ME(n,"square");const a=r.data.get(n.dataId).values,s=new Float32Array(a.length);for(let e=0;e{const n=e-t;return n*n})),ZD=uC(wr,JD),QD={kernelName:wr,backendName:"cpu",kernelFunc:ZD},eA=LE(Or,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),tA={kernelName:Or,backendName:"cpu",kernelFunc:eA};function nA(e,t,n,r){const a=Ls(e,t.dtype);for(let e=0;e0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else{const e=nA(b,n.bufferSync(v),m,p);w=n.makeTensorInfo(e.shape,e.dtype,e.values)}const _=mC({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},aA=LE(Cr,(e=>Math.tan(e))),sA={kernelName:Cr,backendName:"cpu",kernelFunc:aA},iA=LE(Sr,(e=>Math.tanh(e)));function oA(e,t){const n=new Array(e.rank);for(let r=0;rt.value-e.value));const i=t*r,c=l.subarray(i,i+r),h=u.subarray(i,i+r);for(let e=0;e{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},nD];for(const e of cA)Hr(e);const hA={},fA={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function dA(e){if(!(e in hA)){const t=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);return t.addEventListener("webglcontextlost",(t=>{t.preventDefault(),delete hA[e]}),!1),1===e?t.getContext("webgl",fA)||t.getContext("experimental-webgl",fA):t.getContext("webgl2",fA)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;hA[e]=t}const t=hA[e];return t.isContextLost()?(delete hA[e],dA(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),hA[e])}var pA,mA,gA;function yA(e,t){return[t,e]}function bA(e){const t=ne(e);return oe(Math.ceil(t/4))}function vA(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function wA(e,t){const n=e;let r,a,s,i,o,l,u,c,h,f;return 2===Le().getNumber("WEBGL_VERSION")?(r=n.R32F,a=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,c=1,h=n.HALF_FLOAT,f=n.FLOAT):(r=e.RGBA,a=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,c=4,h=null!=t?t.HALF_FLOAT_OES:null,f=e.FLOAT),l=e.RGBA,{internalFormatFloat:r,internalFormatHalfFloat:a,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:h,textureTypeFloat:f}}function _A(e,t){const n=t();return Le().getBool("DEBUG")&&function(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}(e,t))}(e),n}function xA(e){return!!(Le().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8e.getExtension(t)),'Extension "'+t+'" not supported on this browser.')}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(pA||(pA={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(mA||(mA={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(gA||(gA={}));const EA=/ERROR: [0-9]+:([0-9]+):/g;function CA(e,t){if(_A(e,(()=>e.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function SA(e,t,n,r,a,s,i){const o=e.getAttribLocation(t,n);return-1!==o&&(_A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,r))),_A(e,(()=>e.vertexAttribPointer(o,a,e.FLOAT,!1,s,i))),_A(e,(()=>e.enableVertexAttribArray(o))),!0)}function NA(e,t,n,r){_A(e,(()=>function(e,t,n){(function(e,t){const n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(rn)throw new Error(`textureUnit must be in [gl.TEXTURE0, gl.TEXTURE${n}].`)})(e,n),_A(e,(()=>e.activeTexture(e.TEXTURE0+n))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,r))),_A(e,(()=>e.uniform1i(n,r)))}function IA(e,t,n){_A(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),_A(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function DA(e,t){_A(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),_A(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function AA(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}(e,t))}function TA(e,t,n){const r=_A(e,(()=>t()));if(null==r)throw new Error(n);return r}function RA(e,t=2){return ne(e.slice(0,e.length-t))}function FA(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function OA(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[RA(e),...FA(e)]),t}function BA(e){return e%2==0}function MA(e,t){if(ae(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){const n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(BA(n)&&BA(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&BA(e[0])&&BA(t[0])}let $A,PA;function LA(e,t){return null!=e.getExtension(t)}function zA(e){try{if(null!=dA(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function WA(e){const t=wA(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),a}function UA(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Z("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the WebGL backend.`))}))}const VA=Le();function jA(){let e,t,n,r,a,s,i,o,l,u;return 2===Le().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",a="texture",s="outputColor",i="out vec4 outputColor;",o="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",l="",u="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(e="",t="attribute",n="varying",r="varying",a="texture2D",s="gl_FragColor",i="",o="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",l="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",u="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:a,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function HA(e,t,n="index"){const r=Ie(t);return r.map(((t,a)=>`int ${e[a]} = ${n} / ${t}; ${a===r.length-1?`int ${e[a+1]} = ${n} - ${e[a]} * ${t}`:`index -= ${e[a]} * ${t}`};`)).join("")}function GA(e){const t=Ie(e).map((e=>e.toString()));return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}VA.registerFlag("HAS_WEBGL",(()=>VA.getNumber("WEBGL_VERSION")>0)),VA.registerFlag("WEBGL_VERSION",(()=>zA(2)?2:zA(1)?1:0)),VA.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),VA.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===VA.get("WEBGL_VERSION"))),VA.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),VA.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),VA.registerFlag("WEBGL_PACK",(()=>VA.getBool("HAS_WEBGL"))),VA.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_CLIP",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>!1)),VA.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_PACK_REDUCE",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_LAZILY_UNPACK",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_CONV_IM2COL",(()=>VA.getBool("WEBGL_PACK"))),VA.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==$A){const t=dA(e);$A=t.getParameter(t.MAX_TEXTURE_SIZE)}return $A}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==PA){const t=dA(e);PA=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,PA)}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=VA.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=dA(e);return t=LA(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:LA(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),VA.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>VA.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Ba())),VA.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=dA(e);if(1===e){if(!LA(t,"OES_texture_float"))return!1}else if(!LA(t,"EXT_color_buffer_float"))return!1;return WA(t)}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!VA.getBool("WEBGL_FORCE_F16_TEXTURES")&&VA.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),VA.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>function(e){if(0===e)return!1;const t=dA(e);if(1!==e){if(LA(t,"EXT_color_buffer_float"))return WA(t);const e="EXT_color_buffer_half_float";if(LA(t,e)){const n=t.getExtension(e);return function(e,t){const n=wA(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);const a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);const s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(a),s}(t,n)}return!1}return!!LA(t,"OES_texture_float")&&!!LA(t,"WEBGL_color_buffer_float")&&WA(t)}(VA.getNumber("WEBGL_VERSION")))),VA.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=VA.getNumber("WEBGL_VERSION"))&&null!=dA(e).fenceSync;var e})),VA.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>VA.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),VA.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(()=>-1),(e=>{if(e<0&&-1!==e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)}));const qA="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";class KA{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=pA.DENSE;const t=bA(e),n=jA();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${HA(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${n.output} = result;\n }\n `}}class XA{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=pA.DENSE;const t=bA(e),n=jA();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${HA(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${n.output} = result;\n }\n `}}class YA{constructor(e){this.variableNames=["A"],this.outTexUsage=mA.DOWNLOAD;const t=jA();this.outputShape=e,this.userCode=`\n ${qA}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class JA{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=mA.DOWNLOAD;const t=jA();this.outputShape=e,this.userCode=`\n ${qA}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${t.output} = encode_float(x);\n }\n `}}class ZA{constructor(e,t,n=!1){this.variableNames=["A"];const r=jA(),[a,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=`\n ${GA(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / ${s};\n int c = imod(flatIndex, ${s});\n vec2 uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n vec4 values = ${r.texture2D}(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n ${r.output} = vec4(${i}, 0., 0., 0.);\n }\n `}}class QA{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const r=jA(),[a,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let n=0;n<=1;n++){const o=2*t+n;i+=`\n localCoords = coords;\n if(localCoords[2] + ${n} < ${e[2]}) {\n localCoords[2] += ${n};\n if(localCoords[1] + ${t} < ${e[1]}) {\n localCoords[1] += ${t};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / ${s};\n c = imod(flatIndex, ${s});\n uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n values = ${r.texture2D}(A, uv);\n\n if(offset == 0) {\n result[${o}] = values[0];\n } else if(offset == 1) {\n result[${o}] = values[1];\n } else if(offset == 2) {\n result[${o}] = values[2];\n } else {\n result[${o}] = values[3];\n }\n }\n }\n `}this.userCode=`\n ${GA(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${i}\n\n ${r.output} = ${o};\n }\n `}}function eT(e,t,n,r,a,s){!function(e,t){const n=Le().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>n||t>n)throw new Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${n}x${n}].`)}(t,n);const i=function(e){return TA(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return _A(e,(()=>e.bindTexture(o,i))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),_A(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),_A(e,(()=>e.texImage2D(o,0,r,t,n,0,a,s,null))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),i}function tT(e){return e.internalFormatFloat}function nT(e){return e.internalFormatHalfFloat}function rT(e){return e.downloadTextureFormat}function aT(e){return e.internalFormatPackedFloat}function sT(e){return e.internalFormatPackedHalfFloat}class iT{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=Le().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){hA[e]=t}(t,e)):this.gl=dA(t);let n="WEBGL_color_buffer_float";const r="EXT_color_buffer_half_float";if(1===Le().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=kA(this.gl,e),LA(this.gl,t))this.textureHalfFloatExtension=kA(this.gl,t);else if(Le().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),LA(this.gl,r))this.colorBufferHalfFloatExtension=kA(this.gl,r);else if(Le().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",LA(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!LA(this.gl,r))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension(r)}this.vertexBuffer=function(e){return function(e,t){const n=TA(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return _A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),_A(e,(()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}(this.gl),this.indexBuffer=function(e){return function(e,t){const n=TA(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return _A(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),_A(e,(()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Uint16Array([0,1,2,2,1,3]))}(this.gl),this.framebuffer=function(e){return TA(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=wA(this.gl,this.textureHalfFloatExtension)}get debug(){return Le().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;_A(e,(()=>e.finish())),_A(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),_A(e,(()=>e.deleteFramebuffer(this.framebuffer))),_A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),_A(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),_A(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=yA(t,n);return eT(e,a,s,tT(r),r.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=yA(t,n);return eT(e,a,s,nT(r),r.textureFormatFloat,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=yA(t,n);return eT(e,a,s,rT(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){_A(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?_A(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):_A(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,r){this.throwIfDisposed(),function(e,t,n,r,a,s){let i,o,l;_A(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),a instanceof Uint8Array?(i=new Uint8Array(n*r*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*r*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(a),_A(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,r,0,e.RGBA,o,i))),_A(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t,n,r,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=vA(t,n);return eT(e,a,s,sT(r),e.RGBA,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=vA(t,n);return eT(e,a,s,aT(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(DA(this.gl,this.framebuffer),this.outputTexture=null),_A(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,r){const[a,s]=yA(t,n),i=new Uint8Array(t*n*4);return _A(e,(()=>e.readPixels(0,0,a,s,r.downloadTextureFormat,e.UNSIGNED_BYTE,i))),new Float32Array(i.buffer)}(this.gl,t,n,this.textureConfig)))}downloadPackedMatrixFromBuffer(e,t,n,r,a,s){return function(e,t,n,r,a,s,i,o){const l=e,u=new Float32Array(function(e,t){const[n,r]=vA(e,t);return n*r*4}(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}(this.gl,e,0,0,0,a,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return function(e,t,n){const r=e,a=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,a),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),a}(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);const r=function(e,t,n,r){const a=e.createBuffer();_A(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,a)));const s=16*t*n;return _A(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ))),_A(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),_A(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null))),a}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(Le().getBool("WEBGL_FENCE_API_ENABLED")){const r=e,a=r.fenceSync(r.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{const e=r.clientWaitSync(a,0,0);return e===r.ALREADY_SIGNALED||e===r.CONDITION_SATISFIED},t=a}else Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n){const r=new Float32Array(t*n*4);return _A(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,r))),r}(this.gl,t,n)))}createProgram(e){this.throwIfDisposed();const t=this.gl,n=function(e,t){const n=TA(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(_A(e,(()=>e.shaderSource(n,t))),_A(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){const n=EA.exec(t);if(null==n)return console.log(`Couldn't parse line number in error: ${t}`),void console.log(e);const r=+n[1],a=e.split("\n"),s=a.length.toString().length+2,i=a.map(((e,t)=>ue((t+1).toString(),s)+e));let o=0;for(let e=0;ee.createShader(e.VERTEX_SHADER)),"Unable to create vertex WebGLShader.");if(_A(e,(()=>e.shaderSource(n,t))),_A(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}(e,`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`)}(t),a=function(e){return TA(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);return _A(t,(()=>t.attachShader(a,r))),_A(t,(()=>t.attachShader(a,n))),function(e,t){if(_A(e,(()=>e.linkProgram(t))),!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}(t,a),this.debug&&CA(t,a),this.vertexAttrsAreBound||(this.setProgram(a),this.vertexAttrsAreBound=function(e,t,n){return _A(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),SA(e,t,"clipSpacePos",n,3,20,0)&&SA(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),a}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&_A(this.gl,(()=>this.gl.deleteProgram(e)))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&CA(this.gl,this.program),_A(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return TA(e,(()=>e.getUniformLocation(t,n)),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),_A(this.gl,(()=>this.gl.getAttribLocation(e,t)))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),NA(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[r,a]=vA(t,n);this.setOutputMatrixTextureDriver(e,r,a)}setOutputMatrixWriteRegion(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)}setOutputPackedMatrixWriteRegion(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&CA(this.gl,this.program),AA(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),_A(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),_A(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=kA(this.gl,2===Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2();return void e.endQuery(t.TIME_ELAPSED_EXT)}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await ce((()=>this.disposed||this.isQueryAvailable(e,Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){const t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{const t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){const t=this.gl,n=this.getQueryTimerExtensionWebGL2(),r=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),r&&!this.disjoint}{const t=this.getQueryTimerExtensionWebGL1(),n=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise((t=>{this.addItemToPoll((()=>e.isFencePassed()),(()=>t()))}))}pollItems(){const e=function(e){let t=0;for(;te.isDoneFn)));for(let t=0;t<=e;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||ce((()=>(this.pollItems(),0===this.itemsToPoll.length)))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),IA(this.gl,e,this.framebuffer),this.debug&&AA(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(IA(this.gl,this.outputTexture,this.framebuffer),this.debug&&AA(this.gl)):DA(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();const r=this.gl;IA(r,e,this.framebuffer),this.debug&&AA(r),this.outputTexture=e,_A(r,(()=>r.viewport(0,0,t,n))),_A(r,(()=>r.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,r){this.throwIfDisposed(),_A(this.gl,(()=>this.gl.scissor(e,t,n,r)))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw new Error("No GPU program is currently set.")}}const{getBroadcastDims:oT}=g;function lT(e,t,n,r){const a=[];e.forEach((e=>{const t=ne(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?a.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(a.push(`uniform sampler2D ${e.name};`),a.push(`uniform int offset${e.name};`))}));const s=a.join("\n"),i=e.map((e=>function(e,t,n=!1){let r="";r+=n?cT(e):uT(e);const a=e.shapeInfo.logicalShape,s=t.logicalShape;return a.length<=s.length&&(r+=n?function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=oT(e.shapeInfo.logicalShape,t.logicalShape),l=yT(i),u=i-s;let c;const h=["x","y","z","w","u","v"];c=0===s?"":i<2&&o.length>=1?"coords = 0;":o.map((e=>`coords.${h[e+u]} = 0;`)).join("\n");let f="";f=i<2&&s>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${h[t+u]}`)).join(", ");let d="return outputValue;";const p=1===ne(e.shapeInfo.logicalShape),m=1===ne(t.logicalShape);if(1!==s||p||m){if(p&&!m)d=1===i?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(o.length){const e=s-2,t=s-1;o.indexOf(e)>-1&&o.indexOf(t)>-1?d="return vec4(outputValue.x);":o.indexOf(e)>-1?d="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(t)>-1&&(d="return vec4(outputValue.xx, outputValue.zz);")}}else d="\n return vec4(outputValue.xy, outputValue.xy);\n ";return`\n vec4 ${a}() {\n ${l} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${r}(${f});\n ${d}\n }\n `}(e,t):function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&null==e.shapeInfo.flatOffset&&ae(i,s))return`\n float ${a}() {\n return sampleTexture(${n}, resultUV);\n }\n `;const u=yT(l),c=oT(e.shapeInfo.logicalShape,t.logicalShape),h=l-o;let f;const d=["x","y","z","w","u","v"];f=0===o?"":l<2&&c.length>=1?"coords = 0;":c.map((e=>`coords.${d[e+h]} = 0;`)).join("\n");let p="";return p=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${d[t+h]}`)).join(", "),`\n float ${a}() {\n ${u} coords = getOutputCoords();\n ${f}\n return get${r}(${p});\n }\n `}(e,t)),r}(e,t,r))).join("\n"),o=t.texShape,l=jA(),u=function(e){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${e.texture2D}(textureSampler, uv).r;\n }\n `}(l);let c,h,f=function(e){return`${e.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${e.varyingFs} vec2 resultUV;\n ${e.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${e.defineSpecialNaN}\n ${e.defineSpecialInf}\n ${e.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${hT}\n ${fT}\n ${dT}\n `}(l);return t.isPacked?(c=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===n[0]?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:1===n[1]?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}(0,t);case 2:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(ae(e,t))return`\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]}));\n }\n `;const r=Math.ceil(e[1]/2);return`\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec2(r, c);\n }\n `}(e,t);case 3:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),a=r*Math.ceil(e[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${a};\n index -= b * ${a};\n\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec3(b, r, c);\n }\n `}(e,t);default:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),a=r*Math.ceil(e[e.length-2]/2);let s=a,i="",o="b, r, c";for(let t=2;te[t])).join(", ")}function wT(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach(((e,n)=>{const r=e.logicalShape,a=t[n],s=a.shape;if(!ae(r,s))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${s} must match`);if(e.isUniform&&a.isUniform)return;const i=e.texShape,o=a.isUniform?null:a.texData.texShape;if(!ae(i,o))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${o} must match`)}))}const{addImpl:_T,bincountImpl:xT,bincountReduceImpl:kT,ceilImpl:ET,concatImpl:CT,expImpl:ST,expm1Impl:NT,floorImpl:IT,gatherV2Impl:DT,greaterImpl:AT,lessImpl:TT,linSpaceImpl:RT,logImpl:FT,maxImpl:OT,maximumImpl:BT,minimumImpl:MT,multiplyImpl:$T,negImpl:PT,prodImpl:LT,rangeImpl:zT,rsqrtImpl:WT,simpleAbsImpl:UT,sliceImpl:VT,stridedSliceImpl:jT,subImpl:HT,tileImpl:GT,topKImpl:qT,transposeImpl:KT,uniqueImpl:XT}=U;function YT(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function JT(e,t){return 1===t?[e]:YT(e,t)}class ZT{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(0===t)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{const n=JT("rc",t),r=yT(t),a=function(e,t,n){if(1===e)return`rc > ${t[0]}`;let r="";for(let a=e-2;a= ${t[a]}`,a= ${t};\n bool rEdge = rp1 >= ${n};\n `}(t,e[e.length-1],e[e.length-2],n),i=function(e,t){const n=e.length,r=function(e,t){const n=[];for(let r=0;r<=1;r++)for(let a=0;a<=1;a++){let s=`${0===r?"r":"rp1"}, ${0===a?"c":"cp1"}`;for(let n=2;n= ${e[0]} ? 0. : getA(rc + 1),\n 0, 0`:`getA(${r[0]}),\n cEdge ? 0. : getA(${r[1]}),\n rEdge ? 0. : getA(${r[2]}),\n rEdge || cEdge ? 0. : getA(${r[3]})`}(e,n);this.userCode=`\n void main() {\n ${r} rc = getOutputCoords();\n\n if(${a}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${i}));\n }\n }\n `}}}class QT{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),n+=`\n ${t}\n ${e>0?"if(thisRC.y < rows && thisRC.z < cols){":""}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${e}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${e>0?"}":""}\n `}var r;this.userCode=`\n ${r=t,`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${HA(["r","c","d"],r)}\n return ivec3(r, c, d);\n }\n `}\n ${GA(e)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${e[1]};\n int cols = ${e[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}}class eR{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){const r=nR(t,n),a=rR(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);const s=tR(e,r,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();const e=this.freeTextures[a].shift();return this.usedTextures[a].push(e),e}let i;return r===gA.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===gA.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===gA.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===gA.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===gA.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,r){if(null==this.freeTextures)return;const a=nR(n,r),s=rR(t,a,r);s in this.freeTextures||(this.freeTextures[s]=[]);const i=tR(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),o=Le().get("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==o&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;const l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(const e in this.freeTextures)this.freeTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));for(const e in this.usedTextures)this.usedTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function tR(e,t,n,r,a){const s=function(e,t){switch(e){case gA.PACKED_2X2_FLOAT32:return aT(t);case gA.PACKED_2X2_FLOAT16:return sT(t);case gA.UNPACKED_FLOAT32:return tT(t);case gA.UNPACKED_FLOAT16:return nT(t);case gA.PACKED_4X1_UNSIGNED_BYTE:return rT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,r);let i;if(a){const[t,n]=vA(e[0],e[1]);i=t*n}else{const[t,n]=yA(e[0],e[1]);i=t*n}return i*function(e,t){const n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}(n,s)}function nR(e,t){if(e===mA.UPLOAD)return gA.PACKED_2X2_FLOAT32;if(e===mA.RENDER||null==e)return function(e){return Le().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?gA.PACKED_2X2_FLOAT32:gA.UNPACKED_FLOAT32:e?gA.PACKED_2X2_FLOAT16:gA.UNPACKED_FLOAT16}(t);if(e===mA.DOWNLOAD||e===mA.PIXELS)return gA.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function rR(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class aR{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=`\n float unaryOperation(float x) {\n ${t}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}const sR="return abs(x);",iR="return x;";class oR{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${t}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}class lR{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,n=JT("rc",t),r=yT(t),a=function(e,t){if(1===e)return"rc";let n="";for(let r=0;r0&&t.refCount--}}move(e,t,n,r){if(Le().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===r)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:r,values:t,usage:mA.UPLOAD,refCount:1,complexParentRefCount:0})}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.texData.has(t)){const e=this.texData.get(t);e.refCount--,e.refCount<1&&this.disposeData(t)}}readSync(e){const t=this.texData.get(e),{values:n,dtype:r,complexTensorInfos:a,slice:s,shape:i,isPacked:o}=t;if(null!=s){let t;t=o?new oR(i,iR):new aR(i,iR);const n=this.runWebGLProgram(t,[{dataId:e,shape:i,dtype:r}],r),a=this.readSync(n.dataId);return this.disposeIntermediateTensorInfo(n),a}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===r)return n;const l=null!=this.activeTimers;let u,c;return l&&(u=oa()),c="complex64"===r?fd(this.readSync(a.real.dataId),this.readSync(a.imag.dataId)):this.getValuesFromTexture(e),l&&(this.downloadWaitMs+=oa()-u),this.convertAndCacheOnCPU(e,c)}async read(e){if(this.pendingRead.has(e)){const t=this.pendingRead.get(e);return new Promise((e=>t.push(e)))}const t=this.texData.get(e),{values:n,shape:r,slice:a,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(null!=a){let t;t=o?new oR(r,iR):new aR(r,iR);const n=this.runWebGLProgram(t,[{dataId:e,shape:r,dtype:s}],s),a=this.read(n.dataId);return this.disposeIntermediateTensorInfo(n),a}if(null!=n)return this.convertAndCacheOnCPU(e);if(!Le().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===Le().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l,u,c=null;if("complex64"!==s&&Le().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture,...bA(r))}if(this.pendingRead.set(e,[]),"complex64"!==s&&await this.gpgpu.createAndWaitForFence(),"complex64"===s){const e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]);u=fd(e[0],e[1])}else if(null==c)u=this.getValuesFromTexture(e);else{const e=ne(r);u=this.gpgpu.downloadFloat32MatrixFromBuffer(c,e)}null!=l&&this.disposeIntermediateTensorInfo(l);const h=this.convertAndCacheOnCPU(e,u),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach((e=>e(h))),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),h}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>ca(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ls(e.shape,e.dtype,n)}checkNumericalProblems(e){if(null!=e)for(let t=0;te.query))).filter((e=>null!=e)),s=te(this.activeTimers.map((e=>e.name))).filter((e=>null!=e));this.activeTimers=t,r&&(this.programTimersStack=null);const i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(a);i.kernelMs=X(e),i.getExtraProfileInfo=()=>e.map(((e,t)=>({name:s[t],ms:e}))).map((e=>`${e.name}: ${e.ms}`)).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:oa(),endMs:null}}endTimer(e){return Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=oa(),e)}async getQueryTime(e){if(Le().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),void this.pendingDeletes++;if(!this.texData.has(e))return;if(this.texData.get(e).complexParentRefCount>0)return void this.texData.get(e).refCount--;this.releaseGPUData(e);const{complexTensorInfos:t}=this.texData.get(e);null!=t&&(this.texData.get(t.real.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.real),this.texData.get(t.imag.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.imag)),this.texData.delete(e)}releaseGPUData(e){const{texture:t,dtype:n,texShape:r,usage:a,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),null!=t&&(this.numBytesInGPU-=this.computeBytes(r,n),this.textureManager.releaseTexture(t,r,a,s)));const u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return Le().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=eo().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=128){const n=this.getCPUBackend();return Le().getBool("IS_TEST")||this.warnedAboutCPUBackend||null!=n||(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),null!=n&&e.every((e=>null==this.texData.get(e.dataId).texture&&ne(e.shape)0&&xe(n[0])){const a=n.map((e=>ua(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return this.texData.get(r).usage=null,{dataId:r,shape:e,dtype:t}}makeOutput(e,t,n){const{dataId:r}=this.makeTensorInfo(e,t,n);return eo().makeTensorFromDataId(r,e,t,this)}unpackTensor(e){const t=new lR(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new ZT(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[RA(e.shape),...FA(e.shape)],r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[RA(t),...FA(t)],s=new QT(a,n),i=this.runWebGLProgram(s,[r],e.dtype,null,!0);return{dataId:i.dataId,shape:t,dtype:i.dtype}}decode(e){const t=this.texData.get(e),{isPacked:n,shape:r,dtype:a}=t,s=OA(r);let i;return i=n?new XA(s):new KA(s),{dtype:a,shape:r,dataId:this.runWebGLProgram(i,[{shape:s,dtype:a,dataId:e}],a,null,!0).dataId}}runWebGLProgram(e,t,n,r,a=!1){const s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===pA.DENSE){const t=bA(e.outputShape);i.texShape=t.map((e=>2*e))}if(null!=e.outTexUsage&&(i.usage=e.outTexUsage),0===ne(s.shape))return i.values=pe(s.dtype,0),s;const o=[],l=t.map((t=>{if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let n=this.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&ne(t.shape)<=Le().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?this.unpackTensor(t):this.packTensor(t),o.push(t),n=this.texData.get(t.dataId);else if(n.isPacked&&!MA(n.shape,t.shape)){const e=t,r=t.shape;t.shape=n.shape,t=this.packedReshape(t,r),o.push(t),n=this.texData.get(t.dataId),e.shape=r}return this.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(s.dataId);const u={shape:s.shape,texData:i,isUniform:!1},c=function(e,t,n){let r="";t.concat(n).forEach((e=>{const t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=`${e.shape}_${n}_${t}`}));const a=e.userCode;let s=e.constructor.name;return s+="_"+r+"_"+a,s}(e,l,u),h=this.getAndSaveBinary(c,(()=>function(e,t,n,r){const a=t.userCode,s=n.map(((e,n)=>{const r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),i=s.map((e=>e.shapeInfo)),o={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},l=lT(s,o,a,t.packedInputs),u=e.createProgram(l);let c=null;const h=e.getUniformLocation(u,"NAN",!1);1===Le().getNumber("WEBGL_VERSION")&&(c=e.getUniformLocation(u,"INFINITY",!1));const f={};for(let n=0;n{const a=t.program.variableNames[r],s=t.uniformLocations[a],i=t.uniformLocations[`offset${a}`];if(null!=s)if(n.isUniform)if(ne(n.shape)<2)e.gl.uniform1f(s,n.uniformValues[0]);else{let t=n.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(s,t)}else null!=n.texData.slice&&null!=i&&e.gl.uniform1i(i,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,s,r)})),null!=a&&a(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,h,l,u,r),o.forEach((e=>this.disposeIntermediateTensorInfo(e))),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!Le().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&!1===a){const e=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),e}return s}compileAndRun(e,t,n,r,a=!1){n=n||t[0].dtype;const s=this.runWebGLProgram(e,t,n,r,a);return eo().makeTensorFromDataId(s.dataId,s.shape,s.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(Le().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach((e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]})),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=ro((()=>{if(!Le().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=Le().getBool("DEBUG");Le().set("DEBUG",!1);const t=this.abs(To(1e-8)).dataSync()[0];if(Le().set("DEBUG",e),t>0)return 32}return 16}))),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}uploadToGPU(e){const t=this.texData.get(e),{shape:n,dtype:r,values:a,texture:s,usage:i,isPacked:o}=t;if(null!=s)return;const l=null!=this.activeTimers;let u;l&&(u=oa());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=Le().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map(((t,n)=>n>=e.length-2?K(e[n]):e[n]))).length&&(e=[2,e[0]])),2!==e.length){const t=de(e);e=t.newShape}let r=ne(e);if(e.length<=1&&r<=n)return[1,r];if(2===e.length&&e[0]<=n&&e[1]<=n)return e;if(3===e.length&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){const t=RA(e);let n=2,a=2;return e.length&&([n,a]=FA(e)),r=t*(n/2)*(a/2),oe(r).map((e=>2*e))}return oe(r)}(n,o),t.texShape=c),null!=a){const e=OA(n);let s,i=c[1],h=c[0];const f=a instanceof Uint8Array;o?([i,h]=vA(c[0],c[1]),s=new QA(e,[h,i],f)):s=new ZA(e,[h,i],f);const d=this.makeTensorInfo([h,i],r);this.texData.get(d.dataId).usage=f?mA.PIXELS:mA.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(d.dataId),i,h,a);const p=!0,m=this.runWebGLProgram(s,[d],r,null,p),g=this.texData.get(m.dataId);t.texture=g.texture,t.texShape=g.texShape,t.isPacked=g.isPacked,t.usage=g.usage,this.disposeIntermediateTensorInfo(d),this.texData.delete(m.dataId),t.values=null,l&&(this.uploadWaitMs+=oa()-u)}else{const e=this.acquireTexture(c,i,r,o);t.texture=e}}convertAndCacheOnCPU(e,t){const n=this.texData.get(e),{dtype:r}=n;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){const n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1024*this.numMBBeforeWarning*1024){const e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,r)}computeBytes(e,t){return e[0]*e[1]*we(t)}}Ma()&&po("webgl",(()=>new hR),2);class fR{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=Uo(t,n),this.userCode=`\n float binaryOperation(float a, float b) {\n ${e}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}}class dR{constructor(e,t,n,r=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Uo(t,n);const a=this.outputShape.length;let s="";if(r)if(0===a||1===ne(this.outputShape))s="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(s=`\n ${yT(a)} coords = getOutputCoords();\n `,1===a)s+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{const e=JT("coords",a);s+=`\n bool nextRowOutOfBounds =\n (${e[a-2]} + 1) >= ${this.outputShape[a-2]};\n bool nextColOutOfBounds =\n (${e[a-1]} + 1) >= ${this.outputShape[a-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${e}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${s}\n\n setOutput(result);\n }\n `}}function pR(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const mR={kernelName:tn,backendName:"webgl",kernelFunc:pR};function gR(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.makeTensorInfo(r.shape,"complex64"),i=n.texData.get(s.dataId),o=pR({inputs:{x:r},backend:n});n.texData.get(o.dataId).complexParentRefCount++;const l=pR({inputs:{x:a},backend:n});return n.texData.get(l.dataId).complexParentRefCount++,i.complexTensorInfos={real:o,imag:l},s}const yR={kernelName:mt,backendName:"webgl",kernelFunc:gR},bR="return (a < 0.) ? b * a : a;",vR="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",wR={kernelName:ln,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r,i=n.makeTensorInfo([],"float32",sa(s,"float32")),o=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dR(vR,a.shape,i.shape):new fR(bR,a.shape,i.shape),l=n.runWebGLProgram(o,[a,i],a.dtype);return n.disposeIntermediateTensorInfo(i),l}},_R="return (a < 0.) ? b * a : a;",xR="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",kR={kernelName:Hn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t,s=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dR(xR,r.shape,a.shape):new fR(_R,r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}};function ER({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:r}){return({inputs:a,backend:s})=>{const{x:i}=a,o=s,l=r||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=n){const e=o.texData.get(i.dataId),t=n(e.values,l);return o.makeTensorInfo(i.shape,l,t)}let u;return u=Le().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new oR(i.shape,t):new aR(i.shape,e),o.runWebGLProgram(u,[i],l)}}function CR({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:r=!1,cpuKernelImpl:a,dtype:s}){return({inputs:i,backend:o})=>{const{a:l,b:u}=i,c=o;if(r&&"complex64"===l.dtype){const t=c.texData.get(l.dataId),n=c.texData.get(u.dataId),[r,a]=[[t.complexTensorInfos.real,n.complexTensorInfos.real],[t.complexTensorInfos.imag,n.complexTensorInfos.imag]].map((t=>{const[n,r]=t,a={dataId:n.dataId,dtype:n.dtype,shape:l.shape},s={dataId:r.dataId,dtype:r.dtype,shape:u.shape},i=new fR(e,l.shape,u.shape);return c.runWebGLProgram(i,[a,s],ka(n.dtype,r.dtype))})),s=gR({inputs:{real:r,imag:a},backend:c});return c.disposeIntermediateTensorInfo(r),c.disposeIntermediateTensorInfo(a),s}const h=s||ka(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&null!=a){const e=c.texData.get(l.dataId),t=c.texData.get(u.dataId),[n,r]=a(l.shape,u.shape,e.values,t.values,h),s=c.makeTensorInfo(r,h);return c.texData.get(s.dataId).values=n,s}let f;return f=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new dR(t,l.shape,u.shape,n):new fR(e,l.shape,u.shape),c.runWebGLProgram(f,[l,u],h)}}function SR(e,t=!1){if("linear"===e)return"return x;";if("relu"===e)return t?"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n";if("elu"===e)return t?"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n":"return (x >= 0.0) ? x : (exp(x) - 1.0);";if("relu6"===e)return t?"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n";if("prelu"===e)return t?xR:_R;if("leakyrelu"===e)return t?vR:bR;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class NR{constructor(e,t,n,r=!1,a=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;const u=r?e[1]:e[2],c=Math.ceil(u/2),h=r?"i * 2, rc.y":"rc.y, i * 2",f=a?"rc.z, i * 2":"i * 2, rc.z",d=r?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],p=a?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let m="",g="";i&&(m=o?`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${i}\n }`:l?`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${i}\n }`:`vec4 activation(vec4 x) {\n ${i}\n }`,g="result = activation(result);");const y=s?"result += getBiasAtOutCoords();":"";s&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",v="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${a.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`));const c=i.texData.get(a.dataId);return!c.isPacked||MA(a.shape,l)||null!==c.texture&&MA(c.shape,l)?(i.incRef(a.dataId),{dataId:a.dataId,shape:l,dtype:a.dtype}):function(e,t,n){const r=[RA(e.shape),...FA(e.shape)],a={dtype:e.dtype,shape:r,dataId:e.dataId},s=[RA(t),...FA(t)],i=new QT(s,r),o=n.runWebGLProgram(i,[a],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}(a,l,i)}const FR={kernelName:Jn,backendName:"webgl",kernelFunc:RR};class OR{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];const i=4*Math.floor(n/4),o=n%4;let l="sumValue += dot(values, ones);";if(null!=t){const e=1/t;l=`sumValue += dot(values * ${se(e)?e.toPrecision(2):e}, ones);`}let u="";a%n>0&&(u=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${u}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${i}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${i};\n if (${1===o}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${2===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${3===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}}class BR{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];let i="0.0",o="";"prod"===t?i="1.0":"min"===t?(i="1.0 / 1e-20",o="min"):"max"===t&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?l="sumValue":"prod"===t?l="prodValue":"all"===t?l="allValue":"any"===t&&(l="anyValue");const u=4*Math.floor(n/4),c=n%4;let h=`\n if (${"sum"===t}) {\n sumValue += dot(values, ones);\n } else if (${"prod"===t}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${o}(values, minMaxValue);\n }\n `,f="vec4";"all"===t?(i="1.0",h="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",f="bvec4"):"any"===t&&(i="0.0",h="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",f="bvec4");let d="";a%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${i};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${i});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${u}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${h}\n }\n\n int inIdx = inOffset + ${u};\n if (${1===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${2===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${3===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${h}\n }\n setOutput(${l});\n }\n `}}function MR(e,t,n,r){const a=function(e){const t=[];for(;0===t.length||1!==t[t.length-1].outSize;){const n=t.length?t[t.length-1].outSize:e[1],r=Xf(n);t.push({inSize:n,windowSize:r,outSize:Math.ceil(n/r)})}return t}(e.shape);let s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t);for(let t=0;t6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const r=yT(this.rank),a=YT("rc",this.rank),s=new Array(this.rank);for(let e=0;e=2&&c>=2&&(y===b||1===y||1===b),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${g}).`));const v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([d,p]);Z(h===f,(()=>`Error in matMul: inner shapes (${h}) and (${f}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${r} must match.`));const w=n?[y,h,d]:[y,d,h],_=r?[b,p,f]:[b,f,p],x=RR({inputs:{x:e},backend:a,attrs:{shape:w}}),k=RR({inputs:{x:t},backend:a,attrs:{shape:_}}),E=[x,k],C=Math.max(y,b),S=n?x.shape[1]:x.shape[2],N=null!=s,I=null!=i,D="leakyrelu"===l,A=null!=l?SR(l,!0):null;let T;if((1===d||1===p)&&S>1e3&&!1===(N||I||D||null!=A)){let e=x,t=k;n&&(e=UR({inputs:{x},backend:a,attrs:{perm:[0,2,1]}}),E.push(e)),r&&(t=UR({inputs:{x:k},backend:a,attrs:{perm:[0,2,1]}}),E.push(t));const s=1===p;let i=e;1!==p&&(i=RR({inputs:{x:e},backend:a,attrs:{shape:[C,S,1]}}),E.push(i));const o=1===p?2:1;let l=t;s&&(l=RR({inputs:{x:t},backend:a,attrs:{shape:[C,1,S]}}),E.push(l));const u=AR({inputs:{a:i,b:l},backend:a});T=zR({inputs:{x:u},backend:a,attrs:{axis:o,keepDims:!0}}),E.push(u)}else{const l=ka(e.dtype,t.dtype),u=new NR(w,_,[C,d,p],n,r,N,A,I,D),c=[x,k];if(null!=s&&c.push(s),I&&c.push(i),D){const e=a.makeTensorInfo([],"float32",sa(o,"float32"));c.push(e),E.push(e)}T=a.runWebGLProgram(u,c,l)}const R=RR({inputs:{x:T},backend:a,attrs:{shape:v}});E.push(T);for(const e of E)a.disposeIntermediateTensorInfo(e);return R}const HR={kernelName:$r,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:h}=r;return jR({a,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},GR="return abs(x);",qR={kernelName:je,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])&&"complex64"!==r.dtype){const e=n.texData.get(r.dataId),t=UT(e.values);return n.makeTensorInfo(r.shape,r.dtype,t)}let a;return a=Le().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oR(r.shape,GR):new aR(r.shape,GR),n.runWebGLProgram(a,[r],r.dtype)}},KR=ER({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),XR={kernelName:He,backendName:"webgl",kernelFunc:KR},YR=ER({opSnippet:"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),JR={kernelName:Ge,backendName:"webgl",kernelFunc:YR},ZR="return a + b;",QR=CR({opSnippet:ZR,packedOpSnippet:ZR,supportsComplex:!0,cpuKernelImpl:_T}),eF={kernelName:qe,backendName:"webgl",kernelFunc:QR};class tF{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`float v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n float result = ${r};\n setOutput(result);\n }\n `}}class nF{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`vec4 v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n vec4 result = ${r};\n setOutput(result);\n }\n `}}const rF={kernelName:Ke,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,a=n;if(1===a.length)return pR({inputs:{x:a[0]},backend:r});if(a.length>Le().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const t=Math.floor(a.length/2),n=e({inputs:a.slice(0,t),backend:r}),s=e({inputs:a.slice(t),backend:r});return e({inputs:[n,s],backend:r})}const s=a.map((e=>e.dtype)).reduce(((e,t)=>ka(e,t))),i=a.map((e=>e.shape)),o=Le().getBool("WEBGL_PACK")?new nF(a[0].shape,i):new tF(a[0].shape,i);return r.runWebGLProgram(o,a,s)}},aF={kernelName:Xe,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=fe(s,a.shape);let u=l;const c=Pu(u,o);let h=a;null!=c&&(h=UR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=zu(u.length,o)),$u("all",u,o);const[f,d]=Bu(h.shape,u),p=RR({inputs:{x:h},backend:n,attrs:{shape:[-1,ne(d)]}}),m=MR(p,p.dtype,"all",n);let g;return g=RR(i?{inputs:{x:m},backend:n,attrs:{shape:Mu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}},sF={kernelName:Ye,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=fe(s,a.shape);let u=l;const c=Pu(u,o);let h=a;null!=c&&(h=UR({inputs:{x:a},backend:n,attrs:{perm:c}}),u=zu(u.length,o)),$u("any",u,o);const[f,d]=Bu(h.shape,u),p=RR({inputs:{x:h},backend:n,attrs:{shape:[-1,ne(d)]}}),m=MR(p,p.dtype,"any",n);let g;return g=RR(i?{inputs:{x:m},backend:n,attrs:{shape:Mu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class iF{constructor(e,t,n){this.variableNames=["A"];const{windowSize:r,batchSize:a,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[a,s];const i="max"===t?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${r};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${r}; i++) {\n int inIdx = ${o};\n float candidate = getA(batch, inIdx);\n if (candidate ${i} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}}class oF{constructor(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Z(e.length>2,(()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`));const a=e[e.length-1],s=Math.ceil(a/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),r||this.variableNames.push("bestIndicesA");const i=this.outputShape,o=i.length,l=yT(o),u=JT("coords",o);let c,h;if(1===s){h=o+1;const e=yT(h);c=`\n ${e} sourceLocR = ${e}(${u.join()}, 0);\n ++${u[o-1]};\n ${e} sourceLocG = ${e}(${u.join()}, 0);\n ++${u[o-2]};\n ${e} sourceLocA = ${e}(${u.join()}, 0);\n --${u[o-1]};\n ${e} sourceLocB = ${e}(${u.join()}, 0);\n --${u[o-2]};`}else h=o,c=`\n ${l} sourceLocR = coords;\n ++${u[o-1]};\n ${l} sourceLocG = coords;\n ++${u[o-2]};\n ${l} sourceLocA = coords;\n --${u[o-1]};\n ${l} sourceLocB = coords;\n --${u[o-2]};`;const f=["x","y","z","w","u","v"].slice(0,h),d="."+f[h-1],p=f.map((e=>"int "+e)),m=JT("sourceLocR",h-1).concat("inIdx.r"),g=JT("sourceLocG",h-1).concat("inIdx.g"),y=JT("sourceLocB",h-1).concat("inIdx.b"),b=JT("sourceLocA",h-1).concat("inIdx.a"),v="max"===n?"greaterThan":"lessThan",w=r?"":`\n inIdx = round(vec4(getBestIndicesAChannel(${m.join()}),\n getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${y.join()}),\n getBestIndicesAChannel(${b.join()})));`,_=`vec4(\n getAChannel(${m.join()}),\n hasNextCol ? getAChannel(${g.join()}) : 0.,\n hasNextRow ? getAChannel(${y.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,x=r?"":`\n float getBestIndicesAChannel(${p.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${p.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${x}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${u[o-1]} < ${i[o-1]-1};\n bool hasNextRow = ${u[o-2]} < ${i[o-2]-1};\n ${c}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${t};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${t}; i++) {\n inIdx = srcIdx;\n ${w}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${v}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}}function lF(e,t,n,r=null){let a=t.shape[0],s=t.shape[1];null!=r&&(a=r.shape[0],s=r.shape[1]);const i=Xf(s),o={windowSize:i,inSize:s,batchSize:a,outSize:Math.ceil(s/i)},l=new iF(o,n,null==r),u=[t];null!=r&&u.push(r);const c=e.runWebGLProgram(l,u,"int32");if(1===c.shape[1])return c;const h=lF(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function uF(e,t,n,r=null){const a=null!=r?r.shape:t.shape,s=Xf(a[a.length-1]),i=new oF(a,s,n,null==r),o=null==r?[t]:[t,r],l=e.runWebGLProgram(i,o,"int32");if(l.shape.length===t.shape.length){const r=uF(e,t,n,l);return e.disposeIntermediateTensorInfo(l),r}return l}function cF(e,t,n,r){const a=[n];if($u("arg"+r.charAt(0).toUpperCase()+r.slice(1),a,t.shape.length),!Le().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],[s,i]=Bu(t.shape,a),o=ne(i),l=RR({inputs:{x:t},backend:e,attrs:{shape:[-1,o]}});n.push(l);const u=lF(e,l,r);n.push(u);const c=RR({inputs:{x:u},backend:e,attrs:{shape:s}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),c}return uF(e,t,r)}const hF={kernelName:Je,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=fe(s,a.shape);const o=Pu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=UR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=zu(i.length,l.shape.length)),$u("argMax",[i[0]],l.shape.length);const c=cF(n,l,i[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},fF={kernelName:Ze,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=fe(s,a.shape);const o=Pu(i,a.shape.length);let l=a;const u=[];null!=o&&(l=UR({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=zu(i.length,l.shape.length)),$u("argMin",[i[0]],l.shape.length);const c=cF(n,l,i[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},dF=ER({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),pF={kernelName:Qe,backendName:"webgl",kernelFunc:dF},mF=ER({opSnippet:"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));"}),gF={kernelName:et,backendName:"webgl",kernelFunc:mF},yF=ER({opSnippet:"if (isnan(x)) return x;\n return atan(x);\n"}),bF={kernelName:tt,backendName:"webgl",kernelFunc:yF},vF=CR({opSnippet:"\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",packedOpSnippet:"\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),wF={kernelName:rt,backendName:"webgl",kernelFunc:vF},_F=ER({opSnippet:"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;"}),xF={kernelName:nt,backendName:"webgl",kernelFunc:_F};class kF{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,h=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;const p="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let y="0.0";if(p||(y="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${u}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?m:g:`wR * ${h} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / count");const v=4*Math.floor(s/4),w=s%4,_=`\n if (${p}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${y};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${y});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${v}; wC += 4) {\n int xC = xCCorner + wC * ${u};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n getValue(batch, xR, xC + 3 * ${u}, d)\n );\n\n ${_}\n }\n\n int xC = xCCorner + ${v};\n if (${1===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${_}\n } else if (${2===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n initializationValue,\n initializationValue\n );\n\n ${_}\n } else if (${3===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n initializationValue\n );\n\n ${_}\n }\n }\n setOutput(${b});\n }\n `}}class EF{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,h=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const b="avg"===t;let v="0.0";if(b||(v="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p};\n wC += ${h}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${p} +\n wR * ${p} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let w=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(w="avgValue / count");const _=4*Math.floor(s/4),x=s%4,k=`\n if (${b}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n const float initializationValue = ${v};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${v});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${_}; wC += 4) {\n int xC = xCCorner + wC * ${h};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n getValue(batch, xD, xR, xC + 3 * ${h}, ch)\n );\n\n ${k}\n }\n\n int xC = xCCorner + ${_};\n if (${1===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${2===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${3===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n initializationValue\n );\n\n ${k}\n }\n }\n setOutput(${w});\n }\n }\n `}}const CF={kernelName:at,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;UA(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))return pR({inputs:{x:a},backend:n});const c=new kF(u,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}},SF={kernelName:it,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r,c=ll(a.shape,s,i,[1,1,1],o,l,u),h=new EF(c,"avg",!1);return n.runWebGLProgram(h,[a],"float32")}};class NF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,h=1/(t*n);this.userCode=`\n const ivec2 pads = ivec2(${u}, ${c});\n const float avgMultiplier = float(${h});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${o};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${i}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}}class IF{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=c-1-e.padInfo.front,p=h-1-e.padInfo.top,m=f-1-e.padInfo.left,g=1/(t*n*r);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${p}, ${m});\n const float avgMultiplier = float(${g});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${c};\n wD += ${o}) {\n float dyD = float(dyDCorner + wD) / ${a}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${h};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${u}) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const DF={kernelName:ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=ll(i.shape,o,l,[1,1,1],u,c),f=new IF(h);return n.runWebGLProgram(f,[a],i.dtype)}},AF={kernelName:st,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;UA([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=ol(i.shape,o,l,1,u),h=new NF(c);return n.runWebGLProgram(h,[a],i.dtype)}},TF={kernelName:lt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;return jR({a,b:s,transposeA:i,transposeB:o,backend:n})}};class RF{constructor(e,t,n,r,a,s){this.outputShape=[],this.variableNames=["x","mean","variance"],Uo(e,t),Uo(e,n);let i="0.0";null!=r&&(Uo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";null!=a&&(Uo(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${i};\n float scale = ${o};\n float inv = scale * inversesqrt(variance + float(${s}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}}class FF{constructor(e,t,n,r,a,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Uo(e,t),Uo(e,n);let i="vec4(0.0)";null!=r&&(Uo(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=a&&(Uo(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n vec4 offset = ${i};\n vec4 scale = ${o};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${s}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}}const OF={kernelName:Yt,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,mean:a,variance:s,offset:i,scale:o}=e;Z(a.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Z(null==i||a.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Z(null==o||a.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));let{varianceEpsilon:l}=n;null==l&&(l=.001);const u=[r,a,s];let c=null;null!=i&&(c=i.shape,u.push(i));let h=null;null!=o&&(h=o.shape,u.push(o));const f=Le().getBool("WEBGL_PACK_NORMALIZATION")?new FF(r.shape,a.shape,s.shape,c,h,l):new RF(r.shape,a.shape,s.shape,c,h,l);return t.runWebGLProgram(f,u,u[0].dtype)}};class BF{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=yT(this.rank),n=`uniform int start[${this.rank}];`,r=function(e){if(1===e)return"sourceLoc";if(e<=6)return MF.slice(0,e).map((e=>"sourceLoc."+e)).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank);let a;a=`\n ${t} sourceLoc;\n ${t} coords = getOutputCoords();\n ${e.map(((e,t)=>`sourceLoc.${MF[t]} = start[${t}] + coords.${MF[t]};`)).join("\n")}\n `,this.userCode=`\n ${n}\n void main() {\n ${a}\n setOutput(getSource(${r}));\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}const MF=["x","y","z","w","u","v"];class $F{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=yT(this.rank),n=JT("coords",this.rank),r=JT("sourceLoc",this.rank),a=1===this.rank?"sourceLoc":`vec2(${r.slice(-2).join()})`,s=`getChannel(getSource(${r.join()}), ${a})`,i=`\n result.x = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.y = ${s};\n --${r[this.rank-1]};\n }\n `,o=1===this.rank?"":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${e[this.rank-2]}) {\n ++${r[this.rank-2]};\n result.z = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.w = ${s};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${t}(${e.map(((e,t)=>`start[${t}]`)).join()});`:e.map(((e,t)=>`${r[t]} = ${n[t]} + start[${t}];`)).join("\n");this.userCode=`\n uniform int start[${this.rank}];\n void main() {\n ${t} coords = getOutputCoords();\n ${t} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${i}\n ${o}\n setOutput(result);\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}function PF(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r,[o,l]=Ri(a,s,i);if(bi(a,o,l),0===ne(l))return n.makeTensorInfo(l,a.dtype,[]);if(n.shouldExecuteOnCPU([a])||"string"===a.dtype){const e=n.texData.get(a.dataId),t=VT(e.values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,t)}const{isPacked:u}=n.texData.get(a.dataId),c=Ai(a.shape,o,l);if(u||!c){const e=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new $F(l):new BF(l),t=e.getCustomSetupFunc(o);return n.runWebGLProgram(e,[a],a.dtype,t)}return n.uploadToGPU(a.dataId),function(e,t,n,r){const a=r.texData.get(e.dataId),s=r.makeTensorInfo(n,e.dtype),i=r.texData.get(s.dataId);Object.assign(i,a),i.complexParentRefCount=0,i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=Ti(t,Ie(e.shape));a.slice&&(o+=a.slice.flatOffset),i.slice={flatOffset:o,origDataId:a.slice&&a.slice.origDataId||e.dataId};const l=r.dataRefCount.get(i.slice.origDataId)||1;return r.dataRefCount.set(i.slice.origDataId,l+1),s}(a,o,l,n)}const LF={kernelName:ur,backendName:"webgl",kernelFunc:PF},zF={kernelName:ut,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;Z(a.shape.length<=4,(()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=Jf(a.shape,s,o),u=Zf(l.length,s.length),c=Qf(a.shape,s,o),h=ed(i,s.length),f=td(c,i,s.length),d=[],p=RR({inputs:{x:a},backend:n,attrs:{shape:l}}),m=UR({inputs:{x:p},backend:n,attrs:{perm:u}}),g=RR({inputs:{x:m},backend:n,attrs:{shape:c}}),y=PF({inputs:{x:g},backend:n,attrs:{begin:h,size:f}});return d.push(p),d.push(m),d.push(g),d.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}},WF={kernelName:ct,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=n.readSync(a.dataId),l=n.readSync(s.dataId),u=xT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}},UF=CR({opSnippet:"return float(a != b);",dtype:"bool"}),VF={kernelName:Bn,backendName:"webgl",kernelFunc:UF};function jF(e){const{inputs:t,backend:n}=e,{input:r}=t;return pR({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.real},backend:n})}const HF={kernelName:Kn,backendName:"webgl",kernelFunc:jF},GF={kernelName:ft,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r,attrs:a}=t,{x:s}=n,{dtype:i}=a;if("complex64"===i){if("complex64"===s.dtype)return pR({inputs:{x:s},backend:r});const t=ac(s.shape),n=e({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),a=gR({inputs:{real:n,imag:t},backend:r});return t.dispose(),r.disposeIntermediateTensorInfo(n),a}if("complex64"===s.dtype){const t=jF({inputs:{input:s},backend:r}),n=e({inputs:{x:t},backend:r,attrs:{dtype:i}});return r.disposeIntermediateTensorInfo(t),n}if(!be(s.dtype,i)){const e=pR({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:i}}if("int32"===i)return function(e,t){const n=new aR(e.shape,"return float(int(x));"),r=t.runWebGLProgram(n,[e],"int32");return{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}(s,r);if("bool"===i){const e=r.makeTensorInfo([],"bool",pe("bool",1)),t=UF({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw new Error(`Error in Cast: failed to cast ${s.dtype} to ${i}`)}},qF="return ceil(x);",KF=ER({opSnippet:qF,packedOpSnippet:qF,cpuKernelImpl:ET}),XF={kernelName:dt,backendName:"webgl",kernelFunc:KF};class YF{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}class JF{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}const ZF={kernelName:pt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{clipValueMin:s,clipValueMax:i}=r;let o;o=Le().getBool("WEBGL_PACK_CLIP")?new JF(a.shape):new YF(a.shape);const l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[a],a.dtype,l)}};class QF{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "}}function eO(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}const tO={kernelName:gt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=n.texData.get(r.dataId),s=new QF(r.shape),i=[eO(r,a.complexTensorInfos.real),eO(r,a.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}};class nO{constructor(e){this.outputShape=[],this.outputShape=qf(e,1),this.variableNames=e.map(((e,t)=>`T${t}`));const t=new Array(e.length-1);t[0]=e[0][1];for(let n=1;n`T${t}`));const o=new Array(e.length-1);o[0]=e[0][t];for(let n=1;n= ${o[e-1]}) {\n return getChannel(\n getT${e}(${aO(i,l,t)}),\n vec2(${aO(u,l,t)}));\n }`}const f=o.length,d=o[o.length-1];h+=`\n return getChannel(\n getT${f}(${aO(i,l,d)}),\n vec2(${aO(u,l,d)}));`,this.userCode=`\n float getValue(${i.map((e=>"int "+e))}) {\n ${h}\n }\n\n void main() {\n ${a} coords = getOutputCoords();\n vec4 result = vec4(getValue(${s}), 0., 0., 0.);\n\n ${s[r-1]} = ${s[r-1]} + 1;\n if (${s[r-1]} < ${n[r-1]}) {\n result.g = getValue(${s});\n }\n\n ${s[r-2]} = ${s[r-2]} + 1;\n if (${s[r-2]} < ${n[r-2]}) {\n result.a = getValue(${s});\n }\n\n ${s[r-1]} = ${s[r-1]} - 1;\n if (${s[r-2]} < ${n[r-2]} &&\n ${s[r-1]} < ${n[r-1]}) {\n result.b = getValue(${s});\n }\n setOutput(result);\n }\n `}}function aO(e,t,n){const r=e.indexOf(t);return e.map(((e,t)=>t===r?`${e} - ${n}`:e)).join()}function sO(e){const{inputs:t,backend:n}=e,{input:r}=t;return pR({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.imag},backend:n})}const iO={kernelName:rn,backendName:"webgl",kernelFunc:sO};function oO(e,t,n){const r=e[0].dtype;if("complex64"===r){const r=e.map((e=>jF({inputs:{input:e},backend:n}))),a=e.map((e=>sO({inputs:{input:e},backend:n}))),s=oO(r,t,n),i=oO(a,t,n),o=gR({inputs:{real:s,imag:i},backend:n});return r.forEach((e=>n.disposeIntermediateTensorInfo(e))),a.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),o}if("string"===r){const{tensors2D:a,outShape:s}=lO(e,t,n),i=a.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),o=1===a[0].shape[0],l=CT(i,s,r,o),u=qf(e.map((e=>e.shape)),t),c=n.makeTensorInfo(u,r,l);return a.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}if(e.length>Le().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),a=oO(e.slice(0,r),t,n),s=oO(e.slice(r),t,n),i=oO([a,s],t,n);return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}if(Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){const a=new rO(e.map((e=>e.shape)),t);return n.runWebGLProgram(a,e,r)}const{tensors2D:a,outShape:s}=lO(e,t,n),i=new nO(a.map((e=>e.shape))),o=n.runWebGLProgram(i,a,r);a.forEach((e=>n.disposeIntermediateTensorInfo(e)));const l=RR({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function lO(e,t,n){const r=qf(e.map((e=>e.shape)),t);return{tensors2D:e.map((e=>RR({inputs:{x:e},attrs:{shape:[-1,ne(e.shape.slice(t))]},backend:n}))),outShape:r}}function uO(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r,s=fe(a,t[0].shape)[0],i=qf(t.map((e=>e.shape)),s);if(0===ne(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>ne(e.shape)>0));return 1===o.length?pR({inputs:{x:o[0]},backend:n}):(Gf(o.map((e=>e.shape)),s),oO(o,s,n))}const cO={kernelName:yt,backendName:"webgl",kernelFunc:uO};class hO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4,m="channelsLast"===e.dataFormat,g=m?1:2,y=m?2:3,b=m?3:1;let v="",w="";n&&(v=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,w="result = activation(result);");const _=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${v}\n\n const ivec2 strides = ivec2(${o}, ${l});\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${b}];\n\n ivec2 xRCCorner =\n ivec2(coords[${g}], coords[${y}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${u};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${m}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${1===p}) {\n\n if (${m}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${2===p}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${m}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${3===p}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${m}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${_}\n ${w}\n setOutput(result);\n }\n `}}class fO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${a}, ${s}, ${i});\n const ivec3 pads = ivec3(${t}, ${n}, ${r});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${c}; wF++) {\n int xF = xFCorner + wF * ${o};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${u};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${1===p}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${2===p}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${3===p}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class dO{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:r,inChannels:a,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:u,dilationHeight:c,dataFormat:h}=n,{left:f,top:d}=o,p=a*r,m=jA(),g="channelsLast"===h,y=g?0:1,b=g?1:2;let v="";for(let n=0;n<=1;n++)for(let r=0;r<=1;r++)v+=`\n blockIndex = rc.y + ${r};\n pos = rc.x + ${n};\n\n if(blockIndex < ${e[1]} && pos < ${e[0]}) {\n offsetY = int(blockIndex / (${l})) * ${i} - ${d};\n d0 = offsetY + ${c} * (pos / ${p});\n\n if(d0 < ${t[y]} && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), ${l}.) * ${s}. - ${f}.);\n d1 = offsetX + ${u} * (int(mod(float(pos), ${p}.) / ${a}.));\n\n if(d1 < ${t[b]} && d1 >= 0) {\n\n ch = int(mod(float(pos), ${a}.));\n\n if (${g}) {\n innerDims = vec2(d1, ch);\n result[${2*n+r}] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${2*n+r}] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${v}\n\n ${m.output} = result;\n }\n `}}function pO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const l=e.shape,u=r.texData.get(e.dataId),c=n.inChannels,h=l[0]*l[1]*l[2],f=n.outChannels,d="channelsLast"===n.dataFormat;let p;const m=[],g=(1===h||1===f)&&c>1e3,y=l[2]%2!=0&&!!u.isPacked;if(!g&&Le().getBool("WEBGL_LAZILY_UNPACK")&&Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&y){const c=d?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),h={dataId:e.dataId,shape:[1,c,n.inChannels],dtype:e.dtype},f=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,Z(MA(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const g=RR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});m.push(g);const y=jR({a:h,b:g,backend:r,transposeA:!1,transposeB:!1,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),b=r.texData.get(y.dataId);Z(b.isPacked,(()=>"batchMatMul result is expected to be packed")),u.shape=f,b.shape=n.outShape,p=pR({inputs:{x:y},backend:r}),p.shape=n.outShape,m.push(y)}else{const u=RR({inputs:{x:e},backend:r,attrs:{shape:[1,d?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],n.inChannels]}}),c=RR({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=jR({a:u,b:c,transposeA:!1,transposeB:!1,backend:r,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i});p=RR({inputs:{x:h},backend:r,attrs:{shape:n.outShape}}),m.push(u),m.push(c),m.push(h)}for(const e of m)r.disposeIntermediateTensorInfo(e);return p}function mO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const{filterWidth:l,filterHeight:u,inChannels:c,outWidth:h,outHeight:f,dataFormat:d}=n,p="channelsLast"===d,m=l*u*c,g=f*h,y=[m,g],b=[],v=RR({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=RR({inputs:{x:t},backend:r,attrs:{shape:[1,m,ne(t.shape)/m]}});b.push(v),b.push(w);const _=new dO(y,v.shape,n),x=r.runWebGLProgram(_,[v],"float32"),k=RR({inputs:{x},backend:r,attrs:{shape:[1,y[0],y[1]]}});b.push(x),b.push(k);const E=null!=a,C=null!=s,S="leakyrelu"===o,N=o?SR(o,!0):null,I=new NR(k.shape,w.shape,[1,g,n.outChannels],!0,!1,E,N,C,S),D=[k,w];if(a&&D.push(a),C&&D.push(s),S){const e=r.makeTensorInfo([],"float32",sa(i,"float32"));D.push(e),b.push(e)}const A=r.runWebGLProgram(I,D,"float32"),T=RR({inputs:{x:A},backend:r,attrs:{shape:p?[1,f,h,n.outChannels]:[1,n.outChannels,f,h]}});b.push(A);for(const e of b)r.disposeIntermediateTensorInfo(e);return T}const gO={kernelName:bt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r,h=bl(l),f=ul(a.shape,s.shape,i,u,o,c,!1,h);let d;if(1!==f.filterHeight||1!==f.filterWidth||1!==f.dilationHeight||1!==f.dilationWidth||1!==f.strideHeight||1!==f.strideWidth||"SAME"!==f.padInfo.type&&"VALID"!==f.padInfo.type)if(Le().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])d=mO({x:a,filter:s,convInfo:f,backend:n});else{const e=new hO(f);d=n.runWebGLProgram(e,[a,s],"float32")}else d=pO({x:a,filter:s,convInfo:f,backend:n});const p=RR({inputs:{x:d},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(d),p}};class yO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s="channelsLast"===e.dataFormat;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n if (${s}) {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class bO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s="channelsLast"===e.dataFormat,i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,c=s?3:1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${c}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n\n if (${s}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class vO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yF = 0; yF < ${e.outDepth}; yF++) {\n int xF = wF + yF * ${t} - ${a};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${s};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${r} - ${i};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class wO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=r-1-e.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${o}, ${l}, ${u});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${t}; wF++) {\n float dyF = float(dyFCorner + wF) / ${a}.0;\n\n if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${t} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${r}; wC++) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${r} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const _O={kernelName:vt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=r,h=bl(l),f=ul(a.shape,c,i,1,o,u,!1,h),d=new yO(f);return n.runWebGLProgram(d,[a,s],"float32")}},xO={kernelName:wt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=r,h=bl(u),f=ul(i,s.shape,o,1,l,c,!1,h),d=new bO(f);return n.runWebGLProgram(d,[a,s],"float32")}},kO={kernelName:_t,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=cl(a.shape,s.shape,i,l,o),c=new fO(u);return n.runWebGLProgram(c,[a,s],"float32")}},EO={kernelName:xt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,filterShape:l}=r,u=cl(a.shape,l,i,1,o),c=new vO(u);return n.runWebGLProgram(c,[a,s],"float32")}},CO={kernelName:kt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{pad:i,strides:o,inputShape:l}=r,u=cl(l,s.shape,o,1,i),c=new wO(u);return n.runWebGLProgram(c,[a,s],"float32")}},SO=ER({opSnippet:"if (isnan(x)) return x;\n return cos(x);\n"}),NO={kernelName:Et,backendName:"webgl",kernelFunc:SO},IO=ER({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),DO={kernelName:Ct,backendName:"webgl",kernelFunc:IO};class AO{constructor(e,t,n,r,a){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[s,i,o,l]=e,[u]=t,[c,h]=n;this.outputShape=[u,c,h,l];const f="bilinear"===r?1:0,[d,p]=[i-1+".0",o-1+".0"],[m,g,y]=c>1?[""+(i-1)/(c-1),"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[b,v,w]=h>1?[""+(o-1)/(h-1),"(x2-x1) * width_ratio",`x1*${p} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${p}`];this.userCode=`\n const float height_ratio = float(${m});\n const float width_ratio = float(${b});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${s}) {\n return;\n }\n\n float height_scale = ${g};\n float width_scale = ${v};\n\n float in_y = ${y};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${a}));\n return;\n }\n float in_x = ${w};\n if( in_x < 0.0 || in_x > ${p} ) {\n setOutput(float(${a}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}}const TO={kernelName:Nt,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,c=new AO(a.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[a,s,i],"float32")}};class RO{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;const r=e.length,a=t?"0.0":`getX(${FO(r,"coords")})`,s=e[e.length-1];let i="",o="";t?(i=n?"end != "+(s-1):"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=`\n uniform float index;\n void main() {\n ${yT(r)} coords = getOutputCoords();\n int end = ${OO(r,"coords")};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${i}) {\n int idx = ${o};\n ${OO(r,"coords")} = idx;\n val += getX(${FO(r,"coords")});\n }\n setOutput(val);\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.index&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}}function FO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function OO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}const BO={kernelName:St,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,exclusive:i,reverse:o}=r,l=a.shape.length,u=Pu([s],l);let c=a;null!=u&&(c=UR({inputs:{x:a},backend:n,attrs:{perm:u}}));const h=zu(1,l)[0];if(h!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${a.shape.length-1} but got axis=${s}`);const f=a.shape[h];let d=pR({inputs:{x:c},backend:n});for(let e=0;e<=Math.ceil(Math.log2(f))-1;e++){const t=new RO(c.shape,!1,o),r=t.getCustomSetupFunc(e),a=d;d=n.runWebGLProgram(t,[d],d.dtype,r),n.disposeIntermediateTensorInfo(a)}if(i){const e=new RO(c.shape,i,o),t=d;d=n.runWebGLProgram(e,[d],d.dtype),n.disposeIntermediateTensorInfo(t)}if(null!=u){const e=UR({inputs:{x:d},backend:n,attrs:{perm:Lu(u)}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),e}return d}},MO={kernelName:It,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i,binaryOutput:o}=r;if(1===a.shape.length){const e=n.readSync(a.dataId),t=n.readSync(s.dataId),r=xT(e,t,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,r)}if(2===a.shape.length){const e=n.bufferSync(a),t=n.bufferSync(s),r=kT(e,t,i,o);return n.makeTensorInfo(r.shape,s.dtype,r.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${a.shape.length}.`)}};class $O{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${t};\n int offset_h = imod(h, ${t});\n int in_w = w / ${t};\n int offset_w = imod(w, ${t});\n int offset_d = (offset_h * ${t} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}const PO={kernelName:Dt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockSize:s,dataFormat:i}=r;Z(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l="NHWC"===i?a.shape[1]:a.shape[2],u="NHWC"===i?a.shape[2]:a.shape[3],c="NHWC"===i?a.shape[3]:a.shape[1],h=l*s,f=u*s,d=c/(s*s),p=new $O("NHWC"===i?[o,h,f,d]:[o,d,h,f],s,i);return n.runWebGLProgram(p,[a],a.dtype)}};class LO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=e.outChannels/e.inChannels;let g="",y="";n&&(g=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,y="result = activation(result);");const b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${g}\n\n const ivec2 strides = ivec2(${u}, ${c});\n const ivec2 pads = ivec2(${o}, ${l});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${m};\n int q = d2 - d1 * ${m};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${d}; wR++) {\n int xR = xRCorner + wR * ${h};\n\n if (xR < 0 || xR >= ${s}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p}; wC++) {\n int xC = xCCorner + wC * ${f};\n\n if (xC < 0 || xC >= ${i}) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${b}\n ${y}\n setOutput(result);\n }\n `}}class zO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=p;let g="int xR; int xC; int xCOffset;";for(let e=0;e= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n xTexelR${e}C${n}.zw = vec2(0.);\n }\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n previous.zw = vec2(0.);\n }\n\n xR${e}C${n} = vec4(previous.zw, xTexelR${e}C${n}.xy);\n } else {\n xR${e}C${n} = vec4(0, 0, xTexelR${e}C${n}.xy);\n }\n `:`\n if(xR >= 0 && xR < ${s} && xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xR${e}C${n} = xTexelR${e}C${n};\n `,n+1= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n `,f>1&&(g+=`\n xCOffset -= 2;\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n `),g+=`\n xR${e}C${n+1} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.xy);\n `):g+=`\n xCOffset = xC + ${t};\n\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n\n xR${e}C${n+1} = xTexelR${e}C${n+2};\n `}}else n= 0 && xR < ${s}) {\n `,l%2==1?(g+=`\n xCOffset = xC + 1 - ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.zw);\n `,n+1= 0 && xCOffset < ${i}) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR${e}C${n+1} = vec4(xTexelR${e}C${n+2}.xy, final.xy);\n `)):(g+=`\n if(xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.xy, xTexelR${e}C${n+2}.xy);\n `,n+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`));const h=ul(a.shape,s.shape,i,c,o,u,!0);let f;return f=Le().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new zO(h):new LO(h),n.runWebGLProgram(f,[a,s],"float32")}};class UO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${s} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class VO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${o}; dm++) {\n int d2 = d1 * ${o} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const jO={kernelName:Tt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=r,h=ul(a.shape,c,i,o,l,u,!0),f=new UO(h);return n.runWebGLProgram(f,[a,s],"float32")}},HO={kernelName:Rt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=r,h=ul(c,s.shape,i,o,l,u,!0),f=new VO(h);return n.runWebGLProgram(f,[a,s],"float32")}};class GO{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "}}const qO={kernelName:Ft,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=[...r.shape,...r.shape],s=ne(r.shape),i=RR({inputs:{x:r},backend:n,attrs:{shape:[s]}}),o=new GO(s),l=n.runWebGLProgram(o,[i],i.dtype),u=RR({inputs:{x:l},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}};class KO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:n,padInfo:r,strideHeight:a,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:h}=r;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${s});\n const ivec2 pads = ivec2(${c}, ${h});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${i}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${t}) {\n for (int w = 0; w < ${o}; w++) {\n int wIn = wBeg + w * ${u};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}}const XO={kernelName:Ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=il(a.shape,s.shape,i,o,"NHWC",l);let c;const h=new KO(u);c=n.runWebGLProgram(h,[a,s],"float32");const f=RR({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),f}},YO=ER({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n"}),JO={kernelName:Pt,backendName:"webgl",kernelFunc:YO},ZO={kernelName:Lt,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:r,y:a}=t,s=Le().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new dR("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",r.shape,a.shape):new fR("return (b >= 1.0) ? a : a * (b + 1.0);",r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}},QO=CR({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool"}),eB={kernelName:Wt,backendName:"webgl",kernelFunc:QO},tB=ER({opSnippet:`\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = ${ad};\n float a1 = ${sd};\n float a2 = ${id};\n float a3 = ${od};\n float a4 = ${ld};\n float a5 = ${ud};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`}),nB={kernelName:zt,backendName:"webgl",kernelFunc:tB},rB="return exp(x);",aB=ER({opSnippet:rB,packedOpSnippet:rB,cpuKernelImpl:ST}),sB={kernelName:Ut,backendName:"webgl",kernelFunc:aB};function iB(e){const{inputs:t,attrs:n,backend:r}=e,{dim:a}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice();let l=a;return a<0&&(Z(-(i+1)<=a,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+a+1),o.splice(l,0,1),RR({inputs:{x:s},backend:r,attrs:{shape:o}})}const oB={kernelName:Vt,backendName:"webgl",kernelFunc:iB},lB="return exp(x) - 1.0;",uB=ER({opSnippet:lB,packedOpSnippet:lB,cpuKernelImpl:NT}),cB={kernelName:jt,backendName:"webgl",kernelFunc:uB};class hB{constructor(e,t,n){this.variableNames=["real","imag"];const r=t[1];this.outputShape=t;const a=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${r}.0`:"1.0";let i;if("real"===e)i="return real * expR - imag * expI;";else{if("imag"!==e)throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);i="return real * expI + imag * expR;"}this.userCode=`\n const float exponentMultiplier = ${a};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${i}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${r});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${r}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${s};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}}function fB(e,t,n){const r=n.texData.get(e.dataId),a=ne(e.shape),s=e.shape[e.shape.length-1],i=RR({inputs:{x:e},backend:n,attrs:{shape:[a/s,s]}}),o=i.shape,l=new hB("real",o,t),u=new hB("imag",o,t),c=[{dataId:r.complexTensorInfos.real.dataId,dtype:r.complexTensorInfos.real.dtype,shape:o},{dataId:r.complexTensorInfos.imag.dataId,dtype:r.complexTensorInfos.imag.dtype,shape:o}],h=n.runWebGLProgram(l,c,"float32"),f=n.runWebGLProgram(u,c,"float32"),d=gR({inputs:{real:h,imag:f},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f);const p=RR({inputs:{x:d},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(d),p}const dB={kernelName:Ht,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return fB(r,!1,n)}};class pB{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}function mB(e){const{backend:t,attrs:n}=e,{shape:r,value:a}=n;let{dtype:s}=n;if(s=s||Ce(a),"string"===s){const e=me(s,ne(r));return e.fill(a),t.makeTensorInfo(r,s,e)}{const e=new pB(r,a),n=e.getCustomSetupFunc(a);return t.runWebGLProgram(e,[],s,n)}}const gB={kernelName:Gt,backendName:"webgl",kernelFunc:mB};class yB{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${t} - x;\n float outputValue;\n if(coordX >= 0 && coordX < ${t}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const bB={kernelName:qt,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,r=t,a=new yB(n.shape);return r.runWebGLProgram(a,[n],n.dtype)}},vB="return floor(x);",wB=ER({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:IT}),_B={kernelName:Kt,backendName:"webgl",kernelFunc:wB},xB=CR({opSnippet:"\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",packedOpSnippet:"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n",dtype:"int32"}),kB={kernelName:Xt,backendName:"webgl",kernelFunc:xB};class EB{constructor(e){this.variableNames=["A"];const t=jA(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${r}.0, ${n}.0);\n\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}}class CB{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=jA(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${r}.0, ${n}.0);\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${t.output} = result;\n }\n `}}const SB={kernelName:Br,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e;let{pixels:a}=t;const{numChannels:s}=r,i="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,o="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,l="undefined"!=typeof ImageBitmap&&a instanceof ImageBitmap,[u,c]=i?[a.videoWidth,a.videoHeight]:[a.width,a.height],h=[c,u],f=[c,u,s];(o||i||l)&&(null==NB&&(NB=document.createElement("canvas").getContext("2d")),NB.canvas.width=u,NB.canvas.height=c,NB.drawImage(a,0,0,u,c),a=NB.canvas);const d=n.makeTensorInfo(h,"int32");n.texData.get(d.dataId).usage=mA.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(d.dataId),a);const p=Le().getBool("WEBGL_PACK")?new CB(f):new EB(f),m=n.runWebGLProgram(p,[d],"int32");return n.disposeData(d.dataId),m}};let NB;const IB={kernelName:Pr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r,m=bl(c),g=ul(a.shape,s.shape,l,h,u,f,!1,m);let y;const b=[];if(1!==g.filterHeight||1!==g.filterWidth||1!==g.dilationHeight||1!==g.dilationWidth||1!==g.strideHeight||1!==g.strideWidth||"SAME"!==g.padInfo.type&&"VALID"!==g.padInfo.type)if(Le().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])y=mO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});else{const e=null!=i,t=null!=o,r="leakyrelu"===d,l=d?SR(d,!1):null,u=new hO(g,e,l,t,r),c=[a,s];if(i&&c.push(i),o&&c.push(o),r){const e=n.makeTensorInfo([],"float32",sa(p,"float32"));c.push(e),b.push(e)}y=n.runWebGLProgram(u,c,"float32")}else y=pO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});const v=RR({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),v}},DB={kernelName:Lr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:h,activation:f,leakyreluAlpha:d}=r,p=[];let m=c;null==m&&(m=[1,1]),Z(yl(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=ul(a.shape,s.shape,l,m,u,h,!0),y=Le().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=f?SR(f,y):null,v=[a,s],w=null!=i,_=null!=o,x="leakyrelu"===f;if(w&&v.push(i),_&&v.push(o),x){const e=n.makeTensorInfo([],"float32",sa(d,"float32"));v.push(e),p.push(e)}let k;k=y?new zO(g,w,b,_,x):new LO(g,w,b,_,x);const E=n.runWebGLProgram(k,v,"float32");return p.forEach((e=>n.disposeIntermediateTensorInfo(e))),E}};class AB{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;const r=yT(t.length),a=yT(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=`\n ${r} strides = ${r}(${this.strides});\n void main() {\n ${a} coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < ${this.sliceDim}; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * ${s};\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n `}}const TB={kernelName:Zt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=a.shape,i=s[s.length-1],[o,l,u,c]=pi(r,a),h=RR({inputs:{x:a},backend:n,attrs:{shape:[l,i]}}),f=RR({inputs:{x:r},backend:n,attrs:{shape:[ne(r.shape)/u,u]}}),d=new AB(i,c,[l,u]),p=n.runWebGLProgram(d,[f,h],f.dtype),m=RR({inputs:{x:p},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(p),m}};class RB{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=yT(this.rank),r=function(e,t){const n=["resRC.x","resRC.y","resRC.z","resRC.w"],r=[];for(let t=0;tn.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(l.outputShape,r.dtype,r.values)}const p=new RB(h.shape,d),m=n.runWebGLProgram(p,[h,f],h.dtype);c.push(m);const g=RR({inputs:{x:m},backend:n,attrs:{shape:l.outputShape}});return c.forEach((e=>n.disposeIntermediateTensorInfo(e))),g}},OB=CR({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:AT,dtype:"bool"}),BB={kernelName:Qt,backendName:"webgl",kernelFunc:OB},MB=CR({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool"}),$B={kernelName:en,backendName:"webgl",kernelFunc:MB},PB={kernelName:nn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return fB(r,!0,n)}},LB=ER({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),zB={kernelName:an,backendName:"webgl",kernelFunc:LB},WB=ER({opSnippet:"return float(isinf(x));",dtype:"bool"}),UB={kernelName:sn,backendName:"webgl",kernelFunc:WB},VB=ER({opSnippet:"return float(isnan(x));",dtype:"bool"}),jB={kernelName:on,backendName:"webgl",kernelFunc:VB},HB=CR({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:TT,dtype:"bool"}),GB={kernelName:un,backendName:"webgl",kernelFunc:HB},qB=CR({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",dtype:"bool"}),KB={kernelName:cn,backendName:"webgl",kernelFunc:qB},XB={kernelName:hn,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:r,stop:a,num:s}=n,i=RT(r,a,s);return t.makeTensorInfo([i.length],"float32",i)}},YB=ER({opSnippet:"if (x < 0.0) return NAN;\n return log(x);",packedOpSnippet:"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:FT}),JB={kernelName:fn,backendName:"webgl",kernelFunc:YB},ZB=ER({opSnippet:"return log(1.0 + x);"}),QB={kernelName:dn,backendName:"webgl",kernelFunc:ZB},eM=CR({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n",dtype:"bool"}),tM={kernelName:pn,backendName:"webgl",kernelFunc:eM},nM=ER({opSnippet:"return float(!(x >= 1.0));"}),rM={kernelName:mn,backendName:"webgl",kernelFunc:nM},aM=CR({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n",dtype:"bool"}),sM={kernelName:gn,backendName:"webgl",kernelFunc:aM};class iM{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[];const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${s}; j <= ${s}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${i}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${o};\n setOutput(val);\n }\n `}}class oM{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${s};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${s}; j <= ${s}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${i}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${o};\n setOutput(result);\n }\n `}}const lM={kernelName:bn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r,u=Le().getBool("WEBGL_PACK_NORMALIZATION")?new oM(a.shape,s,i,o,l):new iM(a.shape,s,i,o,l);return n.runWebGLProgram(u,[a],a.dtype)}};class uM{constructor(e,t,n,r,a){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=a,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${t})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${t} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${r}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${r})\n * float(${a})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${a});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}}const cM={kernelName:vn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=r,h=new uM(a.shape,o,l,u,c);return n.runWebGLProgram(h,[a,s,i],a.dtype)}};function hM(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=a.shape.length,l=fe(s,a.shape);let u=l;const c=Pu(u,o),h=null!=c,f=n.shouldExecuteOnCPU([a]);let d=a;if(h){if(f){const e=n.texData.get(d.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:BT}),pM={kernelName:_n,backendName:"webgl",kernelFunc:dM},mM={kernelName:xn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;UA(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Z(yl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=ol(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&ae(u.inShape,u.outShape))return pR({inputs:{x:a},backend:n});const c=new kF(u,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}},gM={kernelName:En,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=r,c=ll(a.shape,s,i,[1,1,1],o,u,l),h=new EF(c,"max",!1);return n.runWebGLProgram(h,[a],a.dtype)}};class yM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,a=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=a-1-e.padInfo.top,o=s-1-e.padInfo.left,l=a*s-1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${a};\n wR += ${r}) {\n float dyR = float(dyRCorner + wR) / ${t}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${s}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${s} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}}class bM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,h=l-1-e.padInfo.top,f=u-1-e.padInfo.left,d=o*l*u-1;this.userCode=`\n const ivec3 pads = ivec3(${c}, ${h}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${o};\n wD += ${a}) {\n float dyD = float(dyDCorner + wD) / ${t}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${u};\n wC += ${i}) {\n float dyC = float(dyCCorner + wC) / ${r}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${u} +\n wR * ${u} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const vM={kernelName:Cn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=ll(i.shape,o,l,[1,1,1],u,c),f=new EF(h,"max",!0),d=n.runWebGLProgram(f,[i],i.dtype),p=new bM(h),m=n.runWebGLProgram(p,[a,d],i.dtype);return n.disposeIntermediateTensorInfo(d),m}},wM={kernelName:kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;UA([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=ol(o.shape,l,u,1,c,h),d=new kF(f,"max",!0),p=n.runWebGLProgram(d,[o],o.dtype),m=new yM(f),g=n.runWebGLProgram(m,[a,p],o.dtype);return n.disposeIntermediateTensorInfo(p),g}},_M={kernelName:Sn,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;Z(4===r.shape.length,(()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`));const u=[1,1];Z(yl(s,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`));const c=ol(r.shape,a,s,u,i),[h,f]=function(e,t,n,r){let a=new kF(n,"max",!1);const s=r.runWebGLProgram(a,[e],"float32");return a=new kF(n,"max",!0,!0,t),[s,r.runWebGLProgram(a,[e],"float32")]}(r,o,c,l);return[h,f]}},xM={kernelName:Nn,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{keepDims:a,axis:s}=t,i=n,o=r.shape.length,l=fe(s,r.shape);let u=l;const c=Pu(u,o),h=null!=c,f=i.shouldExecuteOnCPU([r]),d=[];let p=r;if(h){if(f){const e=i.texData.get(p.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:MT}),CM={kernelName:Dn,backendName:"webgl",kernelFunc:EM};class SM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r),l="reflect"===n?0:1;this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n for (int i = 0; i < ${r}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `}}class NM{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=JT("rc",r),l=JT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h="reflect"===n?0:1;let f="";if(1===r){const e=`\n ${a} source = rc;\n if (source < start) {\n source = start * 2 - source - ${h};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${h};\n }\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n `}else{const e=`\n ${a} source = rc;\n ${a} lt = ${a}(lessThan(source, start));\n ${a} gte = ${a}(greaterThanEqual(source, end));\n ${a} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${h}) +\n gte * ((end - 1) * 2 - source + ${h});\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {\n ${e}\n result[2] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[3] = getChannel(getX(${l.join()}), ${c});\n }\n }\n `}this.userCode=`\n const ${a} start = ${a}(${s});\n const ${a} end = ${a}(${i});\n\n void main() {\n ${a} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}}const IM={kernelName:An,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r}=e,{paddings:a,mode:s}=n,i=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new NM(r.shape,a,s):new SM(r.shape,a,s);return t.runWebGLProgram(i,[r],r.dtype)}},DM=CR({opSnippet:"if (b == 0.0) return NAN;\n return mod(a, b);",packedOpSnippet:"\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),AM={kernelName:Tn,backendName:"webgl",kernelFunc:DM};class TM{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=`\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${t-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${t-1}));\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.seedLoc&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}const RM=CR({opSnippet:"\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",packedOpSnippet:"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n",checkOutOfBounds:!0}),FM={kernelName:$t,backendName:"webgl",kernelFunc:RM},OM="return a - b;",BM=CR({opSnippet:OM,packedOpSnippet:OM,supportsComplex:!0,cpuKernelImpl:HT}),MM={kernelName:xr,backendName:"webgl",kernelFunc:BM};function $M(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=fe([s],a.shape),o=hM({inputs:{x:a},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=Mu(o.shape,i),u=RR({inputs:{x:o},backend:n,attrs:{shape:l}}),c=BM({inputs:{a,b:u},backend:n}),h=aB({inputs:{x:c},backend:n}),f=zR({inputs:{x:h},backend:n,attrs:{axis:i,keepDims:!1}}),d=RR({inputs:{x:f},backend:n,attrs:{shape:l}}),p=RM({inputs:{a:h,b:d},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),p}const PM={kernelName:vr,backendName:"webgl",kernelFunc:$M},LM={kernelName:Rn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r,l=o?a:$M({inputs:{logits:a},backend:n,attrs:{dim:a.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new TM(u,c,s),f=h.getCustomSetupFunc(i),d=n.runWebGLProgram(h,[l],"int32",f);return o||n.disposeIntermediateTensorInfo(l),d}},zM="return -x;",WM={kernelName:On,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])){const e=n.texData.get(r.dataId),[t,a]=PT(e.values,r.shape,r.dtype);return n.makeTensorInfo(a,r.dtype,t)}let a;return a=Le().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new oR(r.shape,zM):new aR(r.shape,zM),n.runWebGLProgram(a,[r],r.dtype)}},UM=ff,VM={kernelName:Mn,backendName:"webgl",kernelFunc:function(e){cd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=r,u=n.readSync(a.dataId),c=n.readSync(s.dataId),{selectedIndices:h}=UM(u,c,i,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},jM=df,HM={kernelName:$n,backendName:"webgl",kernelFunc:function(e){cd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),{selectedIndices:f,validOutputs:d}=jM(c,h,i,o,l,u);return[n.makeTensorInfo([f.length],"int32",new Int32Array(f)),n.makeTensorInfo([],"int32",new Int32Array([d]))]}},GM=pf,qM={kernelName:Pn,backendName:"webgl",kernelFunc:function(e){cd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),f=i,d=o,p=l,m=u,{selectedIndices:g,selectedScores:y}=GM(c,h,f,d,p,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class KM{constructor(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${r}), float(${n}),\n float(index == coords.y)));\n }\n `}}const XM={kernelName:zn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r,l=ne(a.shape),u=new KM(l,s,i,o),c=RR({inputs:{x:a},backend:n,attrs:{shape:[l]}}),h=n.runWebGLProgram(u,[c],a.dtype);n.disposeIntermediateTensorInfo(c);const f=RR({inputs:{x:h},backend:n,attrs:{shape:[...a.shape,s]}});return n.disposeIntermediateTensorInfo(h),f}};function YM(e){const{inputs:t,backend:n}=e,{x:r}=t;if("complex64"===r.dtype){const e=jF({inputs:{input:r},backend:n}),t=YM({inputs:{x:e},backend:n}),a=sO({inputs:{input:r},backend:n}),s=YM({inputs:{x:a},backend:n}),i=gR({inputs:{real:t,imag:s},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}return mB({attrs:{shape:r.shape,dtype:r.dtype,value:"string"===r.dtype?"":0},backend:n})}const JM={kernelName:Fr,backendName:"webgl",kernelFunc:YM},ZM={kernelName:Ln,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,{x:a}=n;if("string"===a.dtype)throw new Error("onesLike is not supported under string dtype");if("complex64"===a.dtype){const t=jF({inputs:{input:a},backend:r}),n=e({inputs:{x:t},backend:r}),s=sO({inputs:{input:a},backend:r}),i=YM({inputs:{x:s},backend:r}),o=gR({inputs:{real:n,imag:i},backend:r});return r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i),o}return mB({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:r})}},QM={kernelName:Wn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r;if(1===t.length)return iB({inputs:{input:t[0]},backend:n,attrs:{dim:a}});const s=t[0].shape,i=t[0].dtype;t.forEach((e=>{Q(s,e.shape,"All tensors passed to stack must have matching shapes"),Z(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=uO({inputs:t.map((e=>{const t=iB({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}};class e${constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(float(${n}));\n } else {\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(float(${n}));\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}}class t${constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=yT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=JT("rc",r),l=JT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h=[`${a} rc = outputLoc;`,`${o[r-1]} += 1;\n if(${u}) {\n `,1===r?"":`}\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {`,1===r?"":` ${o[r-1]} += 1;\n if(${u}) {`],f=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let d="";for(let e=0,t=1===r?2:4;e{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r,o=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new t$(a.shape,s,i):new e$(a.shape,s,i);return n.runWebGLProgram(o,[a],a.dtype)},r$={kernelName:Un,backendName:"webgl",kernelFunc:n$},a$=CR({opSnippet:"\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",packedOpSnippet:"\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),s$={kernelName:jn,backendName:"webgl",kernelFunc:a$},i$={kernelName:Gn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=[],u=fe(s,a.shape);let c=u;const h=Pu(c,o);let f,d=a;if(null!=h&&(d=UR({inputs:{x:a},backend:n,attrs:{perm:h}}),c=zu(c.length,o),l.push(d)),$u("prod",c,o),n.shouldExecuteOnCPU([d])){const e=n.texData.get(d.dataId).values,{outVals:t,outShape:r,outDtype:a}=LT(d.shape,d.dtype,e,c);f=n.makeTensorInfo(r,a,t)}else{const[e,t]=Bu(d.shape,c),r=ne(t),s=RR({inputs:{x:d},backend:n,attrs:{shape:[-1,r]}}),i=MR(s,Ea(a.dtype),"prod",n);f=RR({inputs:{x:i},backend:n,attrs:{shape:e}}),l.push(s),l.push(i)}if(i){l.push(f);const e=Mu(f.shape,u);f=RR({inputs:{x:f},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),f}},o$=e=>{const{backend:t,attrs:n}=e,{start:r,stop:a,step:s,dtype:i}=n,o=zT(r,a,s,i);return t.makeTensorInfo([o.length],i,o)},l$={kernelName:qn,backendName:"webgl",kernelFunc:o$},u$=ER({opSnippet:"return 1.0 / x;"}),c$={kernelName:Xn,backendName:"webgl",kernelFunc:u$},h$=ER({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n",packedOpSnippet:"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),f$={kernelName:Yn,backendName:"webgl",kernelFunc:h$},d$=ER({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",packedOpSnippet:"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),p$={kernelName:nr,backendName:"webgl",kernelFunc:d$};class m${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}}class g${constructor(e,t,n,r,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${i}.0, ${o}.0,\n ${o}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}}const y$={kernelName:er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=Le().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new g$(a.shape,l,u,s,i):new m$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],"float32")}};class b${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${r-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${a-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const v$={kernelName:tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new b$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class w${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=r?"0.5":"0.0";let f;f=a?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}}const _$={kernelName:Zn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=new w$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],a.dtype)}};class x${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float sourceFracRow =\n float(${o[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${o[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${r}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${a}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const k$={kernelName:Qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new x$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class E${constructor(e,t){this.variableNames=["x"];const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,1===n)return void(this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${e[0]} - coord - 1));\n }\n `);const r=e.map(((n,r)=>(n=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`)(r))).join(","),a=yT(n);this.userCode=`\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${r}));\n }\n `}}class C${constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;const r=JT("rc",n),a=`${r[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${r[n-2]} + 1 < ${this.outputShape[n-2]}`,i=yT(n);function o(n){const r=e.map(((r,a)=>function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - ${r[n]} - 1`:`${r[n]}`}(a,n)));return`getChannel(getX(${r.join(",")}), vec2(${r.slice(-2).join(",")}))`}this.userCode=1===n?`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${e[0]} - rc - 1),\n ${e[0]} - rc - 1);\n if(${a}){\n result.g = getChannel(getX(${e[0]} - (rc + 1) - 1),\n ${e[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:`\n void main() {\n ${i} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${function(e){return o(e)}(r.slice())};\n if(${a}){\n result.g = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",o(e)}(r.slice())};\n }\n if(${s}) {\n result.b = ${function(e){return e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n if(${a}) {\n result.a = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n }\n }\n setOutput(result);\n }\n `}}const S$={kernelName:rr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r,i=a.shape.length,o=fe(s,a.shape);if(0===i)return pR({inputs:{x:a},backend:n});const l=Le().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new C$(a.shape,o):new E$(a.shape,o);return n.runWebGLProgram(l,[a],a.dtype)}};class N${constructor(e,t,n,r){this.variableNames=["Image"],this.outputShape=[];const a=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;const[l,u]=Yf(r,a,s),c=l.toFixed(3),h=u.toFixed(3);let f="";f="number"==typeof n?`float outputValue = ${n.toFixed(2)};`:`\n vec3 fill = vec3(${n.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - ${c}) * ${o} - (float(y) - ${h}) * ${i};\n float coordYFloat = (float(x) - ${c}) * ${i} + (float(y) - ${h}) * ${o};\n int coordX = int(round(coordXFloat + ${c}));\n int coordY = int(round(coordYFloat + ${h}));\n ${f}\n if(coordX >= 0 && coordX < ${s} && coordY >= 0 && coordY < ${a}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const I$={kernelName:Mr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=new N$(r.shape,a,s,i);return o.runWebGLProgram(l,[r],r.dtype)}},D$=ER({opSnippet:"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n"}),A$={kernelName:ar,backendName:"webgl",kernelFunc:D$},T$=ER({opSnippet:"return inversesqrt(x);",cpuKernelImpl:WT}),R$={kernelName:sr,backendName:"webgl",kernelFunc:T$};class F${constructor(e,t,n,r,a,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;const o=yT(a.length),l=yT(s.length);let u="";1===n?u="i":2===n&&(u="i, j");const c=`getIndices(${u})`;let h="";1===r?h="i":2===r&&(h="i, coords[1]");const f=`getUpdates(${h})`,d=t>1?"strides[j]":"strides";this.userCode=`\n ${o} strides = ${o}(${a});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${e}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${t}; j++) {\n int index = round(${c});\n flattenedIndex += index * ${d};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n `}}const O$={kernelName:ir,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a,updates:s}=t,{shape:i}=r,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=yi(0,a,i),f=[h/u,u];if(0===h)return n.makeTensorInfo(i,a.dtype);const d=RR({inputs:{x:a},backend:n,attrs:{shape:[l,o]}}),p=RR({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new F$(l,o,d.shape.length,p.shape.length,c,f),y=n.runWebGLProgram(g,[p,d,m],p.dtype),b=RR({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class B${constructor(e,t,n){let r,a;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error(`Where for rank ${n} is not yet supported`);if(1===n)a="resRC",r="resRC";else{const n=["resRC.x","resRC.y","resRC.z","resRC.w"],s=[],i=[];for(let r=0;r= 1.0) {\n setOutput(getA(${a}));\n } else {\n setOutput(getB(${a}));\n }\n }\n `}}const M$={kernelName:or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:r,t:a,e:s}=t,i=new B$(r.shape.length,a.shape,a.shape.length);return n.runWebGLProgram(i,[r,a,s],ka(a.dtype,s.dtype))}},$$=ER({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${nd};\n float scale = ${rd};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),P$={kernelName:lr,backendName:"webgl",kernelFunc:$$},L$=ER({opSnippet:"return 1.0 / (1.0 + exp(-1.0 * x));"}),z$={kernelName:dr,backendName:"webgl",kernelFunc:L$},W$=ER({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),U$={kernelName:fr,backendName:"webgl",kernelFunc:W$},V$=ER({opSnippet:"if (isnan(x)) return x;\n return sin(x);\n"}),j$={kernelName:cr,backendName:"webgl",kernelFunc:V$},H$=ER({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),G$={kernelName:hr,backendName:"webgl",kernelFunc:H$},q$=ER({opSnippet:"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n"}),K$={kernelName:pr,backendName:"webgl",kernelFunc:q$},X$={kernelName:yr,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,paddings:i}=r;Z(a.shape.length<=4,(()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=[[0,0]];l.push(...i);for(let e=1+s.length;en.disposeIntermediateTensorInfo(e))),g}},Y$={kernelName:kr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{sparseIndices:a,sparseValues:s,defaultValue:i}=t,{outputShape:o}=r,{sliceRank:l,numUpdates:u,strides:c,outputSize:h}=yi(0,a,o),f=new F$(u,l,a.shape.length,s.shape.length,c,[h,1],!1),d=n.runWebGLProgram(f,[s,a,i],s.dtype),p=RR({inputs:{x:d},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(d),p}},J$={kernelName:br,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{numOrSizeSplits:s,axis:i}=r,o=fe(i,a.shape)[0],l=wd(a,s,o),u=a.shape.length,c=new Array(u).fill(0),h=a.shape.slice();return l.map((e=>{const t=[...h];t[o]=e;const r=PF({inputs:{x:a},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,r}))}},Z$=ER({opSnippet:"return sqrt(x);"}),Q$={kernelName:mr,backendName:"webgl",kernelFunc:Z$},eP=ER({opSnippet:"return x * x;"}),tP={kernelName:_r,backendName:"webgl",kernelFunc:eP},nP="return (a - b) * (a - b);",rP=CR({opSnippet:nP,packedOpSnippet:nP}),aP={kernelName:wr,backendName:"webgl",kernelFunc:rP},sP={kernelName:Or,backendName:"webgl",kernelFunc:function({inputs:e,attrs:t,backend:n}){const{x:r}=e,a=`if (isnan(x)) return x;\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new aR(r.shape,a);return n.runWebGLProgram(s,[r],r.dtype)}};class iP{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const r=n.length,a=yT(n.length),s=yT(n.length);let i="";if(1===r)i="coords * strides + begin";else{let e=0;i=n.map(((t,r)=>(e++,1===n.length?`coords * strides[${r}] + begin[${r}]`:`coords[${e-1}] * strides[${r}] + begin[${r}]`))).join(",")}this.userCode=`\n ${a} begin = ${a}(${e});\n ${a} strides = ${a}(${t});\n\n void main() {\n ${s} coords = getOutputCoords();\n setOutput(getX(${i}));\n }\n `}}const oP={kernelName:Er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:h,shrinkAxisMask:f}=r,{nonStrided:d,$begin:p,$strides:m,size:g,newShape:y,outShape:b}=Fi(a.shape,s,i,o,l,u,c,h,f),v=RR({inputs:{x:a},backend:n,attrs:{shape:y}});let w;if(d){const e=PF({inputs:{x:v},backend:n,attrs:{begin:p,size:g}});w=RR({inputs:{x:e},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(e)}else if(b.some((e=>0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else if(n.shouldExecuteOnCPU([v])){const e=n.texData.get(v.dataId).values,t=Ls(v.shape,v.dtype,e),r=jT(b,t,m,p);w=n.makeTensorInfo(b,v.dtype,r.values)}else{const e=new iP(p,m,b);w=n.runWebGLProgram(e,[v],v.dtype)}const _=RR({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},lP=ER({opSnippet:"return tan(x);"}),uP={kernelName:Cr,backendName:"webgl",kernelFunc:lP},cP=ER({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),hP={kernelName:Sr,backendName:"webgl",kernelFunc:cP};class fP{constructor(e,t){this.variableNames=["A"];const n=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[];for(let t=0;tca(e))),t=Ls(a.shape,a.dtype,e),r=GT(t,s);return n.makeTensorInfo(r.shape,r.dtype,r.values)}const i=new fP(a.shape,s);return n.runWebGLProgram(i,[a],a.dtype)}const pP={kernelName:Nr,backendName:"webgl",kernelFunc:dP},mP={kernelName:Ir,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{k:s,sorted:i}=r,o=n.readSync(a.dataId),[l,u]=qT(o,a.shape,a.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}},gP={kernelName:Ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:r}=e,{axis:a}=n,{x:s}=t;UA(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");const i=r.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=XT(i,a,s.shape,s.dtype);return[r.makeTensorInfo(l,s.dtype,o),r.makeTensorInfo([u.length],"int32",u)]}},yP={kernelName:Tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{value:a}=t;let{axis:s}=r;s<0&&(s+=a.shape.length);const i=a,o=i.shape.length,l=a.shape[s],u=new Array(o-1);let c=0;for(let e=0;en.disposeIntermediateTensorInfo(e))),p}};class bP{constructor(e,t){this.variableNames=["x","segmentIds"];const n=e.windowSize,r=e.batchSize,a=e.inSize,s=e.numSegments,i=s*Math.ceil(a/n);this.outputShape=[r,i];const o=4*Math.floor(n/4),l=n%4,u="\n sumValue += dot(values, segFilter);\n ";let c="";a%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `);let h="";a%n>0&&(h=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${h}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${s})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${s})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${o}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${u}\n }\n\n int inIdx = inOffset + ${o};\n if (${1===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${2===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${3===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${u}\n }\n setOutput(sumValue);\n }\n `}}const vP=[lM,cM,HR,qR,XR,JR,eF,rF,aF,sF,hF,fF,pF,gF,wF,bF,xF,SF,CF,DF,AF,TF,OF,zF,WF,GF,XF,ZF,tO,yR,cO,_O,xO,gO,EO,CO,kO,NO,DO,TO,BO,MO,PO,jO,HO,WO,qO,XO,JO,ZO,eB,nB,sB,oB,cB,dB,gB,bB,_B,kB,SB,IB,DB,TB,FB,BB,$B,mR,PB,iO,zB,UB,jB,wR,GB,KB,XB,QB,JB,tM,rM,sM,fM,gM,mM,vM,wM,_M,pM,xM,kM,CM,IM,AM,LM,TR,WM,VM,HM,qM,VF,XM,ZM,QM,r$,s$,kR,i$,l$,HF,FM,c$,p$,f$,FR,y$,v$,_$,k$,S$,I$,A$,R$,O$,M$,P$,z$,U$,j$,G$,LF,PM,K$,X$,Y$,J$,Q$,tP,aP,sP,oP,MM,WR,uP,hP,pP,mP,VR,gP,yP,{kernelName:Rr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,segmentIds:s}=t,{numSegments:i}=r,o=a.shape.length,l=[];let u=0;const c=Pu([u],o);let h=a;null!=c&&(h=UR({inputs:{x:a},backend:n,attrs:{perm:c}}),l.push(h),u=zu(1,o)[0]);const f=xd(h.shape,u,i),d=ne([h.shape[u]]),p=RR({inputs:{x:h},backend:n,attrs:{shape:[-1,d]}});l.push(p);const m=Ea(a.dtype),g=(e,t,r,a,s)=>{const i=e.shape[0],o=e.shape[1],u=_d(o,s),c=new bP({windowSize:u,inSize:o,batchSize:i,numSegments:s},t),h=n.compileAndRun(c,[e,r],a);if(l.push(h),h.shape[1]===s)return h;const f=o$({backend:n,attrs:{start:0,stop:s,step:1,dtype:"float32"}}),d=dP({inputs:{x:f},backend:n,attrs:{reps:[o/u]}});return l.push(f),l.push(d),g(h,t,d,a,s)},y=RR({inputs:{x:g(p,"unsortedSegmentSum",s,m,i)},backend:n,attrs:{shape:f}});let b=y;if(null!=c){l.push(y);const e=Lu(c);b=UR({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},JM];for(const e of vP)Hr(e);const wP={"tfjs-core":Ki,"tfjs-backend-cpu":"2.8.5","tfjs-backend-webgl":"2.8.5","tfjs-data":BE,"tfjs-layers":Zy,"tfjs-converter":Ik,tfjs:"2.8.5"}},4538:(e,t,n)=>{"use strict";e.exports=n(4063)},4658:e=>{"use strict";const t="[\ud800-\udbff][\udc00-\udfff]";e.exports=e=>e&&e.exact?new RegExp(`^${t}$`):new RegExp(t,"g")},7737:(e,t,n)=>{"use strict";n.d(t,{z:()=>o});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=function(){function e(){a()(this,e),this.table_width=17,this.table_truncate=16,this.dtype_test_lim=10,this.table_max_row=21,this.table_max_col_in_console=7}return i()(e,[{key:"set_width",value:function(e){this.table_width=e}},{key:"set_max_col_in_console",value:function(e){this.table_max_col_in_console=e}},{key:"set_row_num",value:function(e){this.table_max_row=e}},{key:"set_truncate",value:function(e){this.table_truncate=e}},{key:"set_dtype_test_lim",value:function(e){this.dtype_test_lim=e}},{key:"get_width",get:function(){return this.table_width}},{key:"get_max_col_in_console",get:function(){return this.table_max_col_in_console}},{key:"get_max_row",get:function(){return this.table_max_row}},{key:"get_truncate",get:function(){return this.table_truncate}},{key:"get_dtype_test_lim",get:function(){return this.dtype_test_lim}}]),e}()},5291:(e,t,n)=>{"use strict";n.d(t,{z:()=>p});var r=n(8),a=n.n(r),s=n(319),i=n.n(s),o=n(4575),l=n.n(o),u=n(3676),c=n(697),h=n(3938),f=new c.c,d=function e(t){l()(this,e),f.__in_object(t,"df_list","df_list not found: specify the list of dataframe"),f.__in_object(t,"axis","axis not found: specify the axis");var n,r,s=null;if(!Array.isArray(t.df_list))throw new Error("df_list must be an Array of dataFrames/Series");if(n=t.df_list,"number"!=typeof t.axis)throw new Error("axis must be a number");r=0==t.axis||1==t.axis?t.axis:1;var o=Object.assign({},n);if(1==r){var c=[],d={},p=0,m=Object.keys(o)[0];for(var g in s=o[m].index,o){var y=o[g].columns,b=o[g].values.length;for(var v in b>p&&(p=b),y){var w=y[v];if(w in d){var _=d[w],x="".concat(w,"_").concat(_+1);c.push(x),d[w]=_+1}else c.push(w),d[w]=1}}var k=new Array(p);for(var E in n){for(var C=n[E].values,S=0;S0)for(var w=0;w{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>DataFrame});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(319),_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(3038),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(7757),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(8926),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(6525),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6___default=__webpack_require__.n(_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6__),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(2205),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default=__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(8585),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8___default=__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8__),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(9754),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default=__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9__),_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(2563),_generic__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__(2847),_series__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(3938),_utils__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(697),_groupby__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(7398),_plotting_plot__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(4564),_indexing__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(9365),_concat_js__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__(5291),mathjs__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(3346);function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,r=_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(e);if(t){var a=_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8___default()(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}var utils=new _utils__WEBPACK_IMPORTED_MODULE_11__.c,DataFrame=function(_Ndframe){_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(DataFrame,_Ndframe);var _super=_createSuper(DataFrame),_sample,_to_csv;function DataFrame(e,t){var n;return _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default()(this,DataFrame),(n=_super.call(this,e,t))._set_column_property(),n}return _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default()(DataFrame,[{key:"_set_column_property",value:function(){var e=this,t=this.col_data,n=this.column_names;t.forEach((function(t,r){e[n[r]]=null,Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_12__.F(this.col_data[r],{columns:n[r],index:this.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"to_csv",value:(_to_csv=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var t,n,r,a=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.length>0&&void 0!==a[0]?a[0]:"",e.next=3,_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(DataFrame.prototype),"to_csv",this).call(this);case 3:return n=e.sent,"undefined"==typeof window?__webpack_require__(2993).writeFileSync(t,n,(function(e){return e&&console.error(e)})):(r="data:text/csv;charset=utf-8,"+n,window.open(encodeURI(r))),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e,this)}))),function(){return _to_csv.apply(this,arguments)})},{key:"drop",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","index","inplace","axis"];utils._throw_wrong_params_error(t,n),t.inplace=t.inplace||!1,"axis"in t||(t.axis=1);var r=null;if(r="index"in t&&0==t.axis?t.index:t.columns,1==t.axis){if(!("columns"in t))throw Error("No column found. Axis of 1 must be accompanied by an array of column(s) names");var a=this,s={},i=[],o=r.map((function(e){var t=a.columns.indexOf(e);if(-1==t)throw new Error('column "'.concat(e,'" does not exist'));return t}));if(this.col_data.forEach((function(e,t){o.includes(t)||(s[a.column_names[t]]=e,i.push(a.dtypes[t]))})),!t.inplace){var l=a.columns,u=Object.keys(s),c=new DataFrame(s,{index:a.index,dtypes:i});return c.__set_col_property(c,c.col_data,u,l),c}var h=a.columns,f=Object.keys(s);this.__update_frame_in_place(null,null,s,null,i),this.__set_col_property(a,a.col_data,f,h)}else{if(!utils.__key_in_object(t,"index"))throw Error("No index label found. Axis of 0 must be accompanied by an array of index labels");r.forEach((function(t){if(!e.index.includes(t))throw new Error("".concat(t," does not exist in index"))}));var d,p,m=this.values,g=[];if("string"==typeof r[0]?(this.index.forEach((function(e,t){r.includes(e)&&g.push(t)})),d=utils.__remove_arr(m,g),p=utils.__remove_arr(this.index,g)):(d=utils.__remove_arr(m,r),p=utils.__remove_arr(this.index,r)),!t.inplace)return new DataFrame(d,{columns:this.columns,index:p});this.row_data_tensor=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(d),this.data=d,this.__set_index(p)}}},{key:"loc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="loc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_13__.j)(this,e),r=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"iloc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="iloc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_13__.j)(this,e),r=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return this;var t=this.values.slice(0,e),n=this.index.slice(0,e),r={columns:this.column_names,index:n},a=new DataFrame(t,r);return a}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,t=this.values.length;if(e>t||e<1)return this;var n=this.values.slice(t-e),r=this.index.slice(t-e),a={columns:this.column_names,index:r},s=new DataFrame(n,a);return s}},{key:"sample",value:(_sample=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var t,n,r,a,s=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:-1,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc({rows:r}),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return _sample.apply(this,arguments)})},{key:"add",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].add(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"sub",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].sub(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mul",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mul(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"div",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].div(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"pow",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].pow(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mod",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mod(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mean",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.mean(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"median",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__median(t,!1),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"min",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.min(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"max",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.max(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"std",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_14__.qoR)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"var",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_14__.CAK)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"count",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__count_nan(t,!0,!1),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"round",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.values,n=this.index,r=utils.__round(t,e,!1),a={columns:this.column_names,index:n},s=new DataFrame(r,a);return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"__cum_ops",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(0!=e&&1!=e)throw new Error("axis must be between 0 or 1");if(this.__frame_is_compactible_for_operation){var n=[],r=null;r=0==e?this.col_data:this.values;for(var a=0;ai?(i=u,o.push(u)):o.push(i);break;case"min":u0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"sum");return n}},{key:"cummin",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"min");return n}},{key:"cummax",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"max");return n}},{key:"cumprod",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"prod");return n}},{key:"copy",value:function(){return new DataFrame(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.values),{columns:_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.column_names),index:this.index,dtypes:this.dtypes})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e){var t=this.copy();return t.__reset_index(),t}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["key","drop","inplace"];if(utils._throw_wrong_params_error(e,t),!utils.__key_in_object(e,"key"))throw Error("Index ValueError: You must specify an array of index");if(utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"drop")||(e.drop=!0),Array.isArray(e.key)&&e.key.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.key.length," must match lenght of existing index ").concat(this.index.length));if("string"==typeof e.key&&this.column_names.includes(e.key)&&(e.key_name=e.key,e.key=this[e.key].values),!e.inplace){var n=this.copy();return n.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&n.drop({columns:[e.key_name],axis:1,inplace:!0}),n}this.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&this.drop({columns:[e.key_name],inplace:!0,axis:1})}},{key:"describe",value:function(){var e=this.select_dtypes(["float32","int32"]),t=e.column_names,n={};return t.forEach((function(t){var r=e[t],a=[r.count(),r.mean(),r.std(),r.min(),r.median(),r.max(),r.var()];n[t]=a})),new DataFrame(n,{index:["count","mean","std","min","median","max","variance"]}).round(6)}},{key:"select_dtypes",value:function(e){var t=this.dtypes,n=this.column_names,r={},a=this.col_data,s=["float32","int32","string","boolean"];return null==e?this.copy():(e.forEach((function(e){if(!s.includes(e))throw Error("Dtype Error: dtype ".concat(e," not supported."))})),t.forEach((function(t,s){e.includes(t)&&(r[n[s]]=a[s])})),new DataFrame(r))}},{key:"sum",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{axis:1};if(this.__frame_is_compactible_for_operation()){var t,n=[];(1==e.axis?this.col_data:this.values).map((function(e){var t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e).sum().arraySync();n.push(Number(t.toFixed(5)))})),t=1==e.axis?this.column_names:this.index;var r=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{columns:"sum",index:t});return r}throw Error("Dtype Error: Operation can not be performed on string type")}},{key:"abs",value:function(){var e=this.values,t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e).abs().arraySync();return new DataFrame(utils.__round(t,2,!1),{columns:this.column_names,index:this.index})}},{key:"__get_tensor_and_idx",value:function(e,t){var n,r,a;return 1==t?(n=e.row_data_tensor,r=e.column_names,a=0):(n=e.row_data_tensor,r=e.index,a=1),[n,r,a]}},{key:"query",value:function query(kwargs){var operators=[">","<","<=",">=","==","!="],column_index,operator,value;if(utils.__key_in_object(kwargs,"inplace")||(kwargs.inplace=!1),!utils.__key_in_object(kwargs,"column"))throw new Error("specify the column");if(!this.columns.includes(kwargs.column))throw new Error("column ".concat(kwargs.column," does not exist"));if(column_index=this.columns.indexOf(kwargs.column),!utils.__key_in_object(kwargs,"is"))throw new Error("specify an operator in param [is]");if(!operators.includes(kwargs.is))throw new Error(" ".concat(kwargs.is," is not a supported logical operator"));if(operator=kwargs.is,!utils.__key_in_object(kwargs,"to"))throw new Error("specify a value in param [to]");value=kwargs.to;for(var data=this.values,index=this.index,new_data=[],new_index=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","values","inplace"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"inplace")||(t.inplace=!1),utils.__key_in_object(t,"columns")){if(t.columns.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),t.columns.length!=t.values.length)throw Error("Lenght Error: The lenght of the columns names must be equal to the lenght of the values,\n got column of length ".concat(t.columns.length," but values of length ").concat(t.values.length));var r=this.col_data;t.columns.map((function(n,a){var s=e.column_names.indexOf(n),i=e.col_data[s],o=[];i.map((function(e){isNaN(e)&&"string"!=typeof e?o.push(t.values[a]):o.push(e)})),r[s]=o}));var a={};if(r.map((function(t,n){a[e.column_names[n]]=t})),!t.inplace)return new DataFrame(a,{index:this.index});this.__update_frame_in_place(null,null,a,null,null)}else{if(!utils.__key_in_object(t,"values"))throw Error("Value Error: Please specify a fill value");var s;s=Array.isArray(t.values)?t.values[0]:t.values;for(var i=[],o=this.values,l=this.columns,u=0;u0&&void 0!==arguments[0]?arguments[0]:{},t=e.axis||0,n=e.inplace||!1;if(0!=t&&1!=t)throw new Error("axis must either be 1 or 0");var r=null,a=null;0==t?(r=this.values,a=this.columns):(r=this.col_data,a=[]);for(var s=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["replace","with","in"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"in")){if(t.in.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var r={};return this.column_names.map((function(n,a){if(t.in.includes(n)){var s=e.col_data[a],i=[];s.map((function(e){e==t.replace?i.push(t.with):i.push(e)})),r[n]=i}else r[n]=e.col_data[a]})),new DataFrame(r,{columns:this.column_names,index:this.index})}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}if(utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var a=[],s=this.values;s.map((function(e){var n=[];e.map((function(e){e==t.replace?n.push(t.with):n.push(e)})),a.push(n)}));var i=new DataFrame(a,{index:this.index,columns:this.column_names});return i}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}},{key:"__logical_ops",value:function(e,t,n){var r,a;if(utils.__is_number(e))a=e;else if(e.series)if(0==n){if(e.values.length!=this.shape[0])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e.values)}else{if(e.values.length!=this.shape[1])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e.values)}else a=Array.isArray(e)?_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e):e.row_data_tensor;switch(t){case"lt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).less(a).arraySync();break;case"gt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).greater(a).arraySync();break;case"le":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).lessEqual(a).arraySync();break;case"ge":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).greaterEqual(a).arraySync();break;case"ne":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).notEqual(a).arraySync();break;case"eq":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).equal(a).arraySync()}return new DataFrame(utils.__map_int_to_bool(r,2),{columns:this.column_names,index:this.index})}},{key:"__get_df_from_tensor",value:function(e,t){for(var n=e.shape[0],r=[],a=0;a0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"column"))throw Error("Value Error: Please specify a column to cast");if(!utils.__key_in_object(e,"dtype"))throw Error("Value Error: Please specify dtype to cast to");if(!this.column_names.includes(e.column))throw Error("'".concat(e.column,"' not found in columns"));var t=this.column_names.indexOf(e.column),n=this.col_types,r=this.col_data;n[t]=e.dtype;var a=[],s=r[t];switch(e.dtype){case"float32":s.map((function(e){a.push(Number(e))})),r[t]=a;break;case"int32":s.map((function(e){a.push(Number(Number(e).toFixed()))})),r[t]=a;break;case"string":s.map((function(e){a.push(String(e))})),r[t]=a}var i={};this.column_names.forEach((function(e,t){i[e]=r[t]}));var o=new DataFrame(i,{dtypes:n,index:this.index});return o}},{key:"unique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n={};if(1==t){var r=this.column_names;r.forEach((function(t){n[t]=e[t].unique().values}))}else{var a=this.values,s=this.index;a.forEach((function(e,t){var r=new Set(e);n[s[t]]=Array.from(r)}))}return n}},{key:"nunique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n=[];if(1==t){var r=this.column_names;r.forEach((function(t){n.push(e[t].unique().values.length)}));var a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{index:this.column_names});return a}var s=this.values;s.forEach((function(e){var t=new Set(e);n.push(Array.from(t).length)}));var i=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{index:this.index});return i}},{key:"rename",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["mapper","inplace","axis"];if(utils._throw_wrong_params_error(e,t),utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"axis")||(e.axis=1),!utils.__key_in_object(e,"mapper"))throw Error("Please specify a mapper object");if(1==e.axis){var n=Object.keys(e.mapper),r=Object.values(e.mapper),a=_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.column_names);if(n.forEach((function(e,t){if(!a.includes(e))throw Error("Label Error: Specified column '".concat(e,"' not found in column axis"));var n=a.indexOf(e);a[n]=r[t]})),!e.inplace){var s=this.copy();return s.columns=a,s.__set_col_property(s,s.col_data,a,n),s}this.columns=a,this.__set_col_property(this,this.col_data,a,n)}else{var i=Object.keys(e.mapper),o=this.index,l=[];if(o.forEach((function(t){i.includes(t)?l.push(e.mapper[t]):l.push(t)})),!e.inplace){var u=this.copy();return u.__set_index(l),u}this.__set_index(l)}}},{key:"sort_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.__sort_by(r,r,n),s=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(a,2),i=s[0],o=s[1];if(!t){var l=this.copy();return l.__update_frame_in_place(i,null,null,o,null),l}this.__update_frame_in_place(i,null,null,o,null)}},{key:"sort_values",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"by"))throw Error("use col_name to specify column name");var t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.column(e.by).values,s=this.__sort_by(a,r,n),i=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(s,2),o=i[0],l=i[1];if(!t){var u=this.copy();return u.__update_frame_in_place(o,null,null,l,null),u}this.__update_frame_in_place(o,null,null,l,null)}},{key:"__set_col_property",value:function(e,t,n,r){r.forEach((function(t){delete e[t]})),t.forEach((function(t,r){Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_12__.F(t,{columns:n[r],index:e.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"__update_frame_in_place",value:function(e,t,n,r,a){if(null!=e)this.data=e;else if(null!=n){var s=utils._get_row_and_col_values(n);this.data=s[0],this.columns=s[1],t=s[1]}null!=n?(this.col_data=Object.values(n),this.columns=Object.keys(n),t=Object.keys(n)):null!=e&&(this.col_data=utils.__get_col_values(e)),null!=t&&(this.columns=t),null!=r&&(this.index_arr=r),null!=a&&(this.col_types=a)}},{key:"__sort_by",value:function(e,t,n){for(var r=this.values,a=utils.__sort(e,n),s=utils.__get_duplicate(e),i=[],o=[],l=0;l{"use strict";n.d(t,{Z:()=>_});var r=n(7757),a=n.n(r),s=n(8926),i=n.n(s),o=n(3038),l=n.n(o),u=n(319),c=n.n(u),h=n(4575),f=n.n(h),d=n(3913),p=n.n(d),m=n(2563),g=n(107),y=n(697),b=n(7737),v=new y.c,w=new b.z,_=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(f()(this,e),this.kwargs=n,t instanceof m.Tensor&&(t=t.arraySync()),v.__is_1D_array(t))this.series=!0,this._read_array(t);else if(this.series=!1,v.__is_object(t[0]))this._read_object(t,1);else if(v.__is_object(t))this._read_object(t,2);else{if(!(Array.isArray(t[0])||v.__is_number(t[0])||v.__is_string(t[0])))throw new Error("File format not supported");this._read_array(t)}}var t,n;return p()(e,[{key:"_read_array",value:function(e){if(this.data=v.__replace_undefined_with_NaN(e,this.series),this.row_data_tensor=(0,m.tensor)(this.data),this.series?this.col_data=[this.values]:this.col_data=v.__get_col_values(this.data),this.col_data_tensor=(0,m.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=c()(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)"columns"in this.kwargs?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=c()(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}},{key:"_read_object",value:function(e,t){if(2==t){var n=v._get_row_and_col_values(e),r=l()(n,2),a=r[0],s=r[1];this.kwargs.columns=s,this._read_array(a)}else{var i=e.map((function(e){return Object.values(e)}));if(this.data=v.__replace_undefined_with_NaN(i,this.series),this.row_data_tensor=(0,m.tensor)(this.data),this.kwargs.columns=Object.keys(Object.values(e)[0]),this.series?this.col_data=[this.values]:this.col_data=v.__get_col_values(this.data),this.col_data_tensor=(0,m.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=c()(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)this.kwargs.columns?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has column length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=c()(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}}},{key:"_set_col_types",value:function(e,t){var n=["float32","int32","string","boolean"];if(t)this.series?this.col_types=v.__get_t(this.values):this.col_types=v.__get_t(this.col_data);else if(this.series)this.col_types=e;else{if(e.length!=this.columns.length)throw new Error("length Mixmatch: Length of specified dtypes is ".concat(e.length,", but length of columns is ").concat(this.columns.length));if(!Array.isArray(e))throw new Error("dtypes must be an Array of types");e.forEach((function(e,t){if(!n.includes(e))throw new Error("dtype error: dtype specified at index ".concat(t," is not supported"))})),this.col_types=e}}},{key:"__set_index",value:function(e){if(!Array.isArray(e))throw Error("Value Error: index must be an array");if(e.length>this.shape[0]||e.lengthr){var l,u,c,h=this.columns.slice(0,4),f=this.columns.slice(i-4);if(o=[""].concat(h).concat(["..."]).concat(f),this.values.length>n){var d=this.iloc({rows:["0:".concat(n)],columns:["0:4"]}),p=this.iloc({rows:["0:".concat(n)],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=d.values,c=p.values}else{var m=this.iloc({rows:["0:"],columns:["0:4"]}),y=this.iloc({rows:["0:"],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=m.values,c=y.values}l.map((function(e,t){var n=[e].concat(u[t]).concat(["..."]).concat(c[t]);a.push(n)}))}else{var b,v;if(o=[""].concat(this.columns),this.values.length>n){var _=this.loc({rows:["0:".concat(n)],columns:this.columns});b=_.index,v=_.values}else v=this.values,b=this.index;b.forEach((function(e,t){var n=[e].concat(v[t]);a.push(n)}))}s[0]=10;for(var x=1;x{"use strict";__webpack_require__.d(__webpack_exports__,{X:()=>GroupBy});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(319),_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__),_frame__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3676),_utils__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(697),_series__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3938),utils=new _utils__WEBPACK_IMPORTED_MODULE_3__.c,GroupBy=function(){function GroupBy(e,t,n,r){_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this,GroupBy),this.key_col=t,this.col_dict=e,this.data=n,this.column_name=r,this.data_tensors={}}return _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(GroupBy,[{key:"group",value:function(){if(2==this.key_col.length){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e),n=t.map((function(t){return e[t].toLocaleLowerCase()})),r=this.col(t),a=r.arithemetic(n),s=this.to_DataFrame(r.key_col,r.group_col_name,a,n);return s}},{key:"to_DataFrame",value:function(e,t,n,r){if(2==e.length){var a=[];for(var s in n){var i=n[s];for(var o in i){var l=i[o],u=[];if(Array.isArray(l[0])){for(var c=0;c{"use strict";n.d(t,{j:()=>a});var r=new(n(697).c),a=function(e,t){var n=null,a=null,s=!1;if(Object.prototype.hasOwnProperty.call(t,"rows")){if(!Array.isArray(t.rows))throw new Error("rows parameter must be a Array");if(1==t.rows.length&&"string"==typeof t.rows[0])if(t.rows[0].includes(":")){var i=t.rows[0].split(":");if("loc"==t.type){var o,l;o=isNaN(Number(i[0]))?e.index.indexOf(i[0]):Number(i[0]),l=isNaN(Number(i[1]))?e.index.lastIndexOf(i[1])-1||e.values.length-1:Number(i[1])-1||e.values.length-1,n=r.__range(o,l)}else{var u=parseInt(i[0])||0,c=parseInt(i[1])-1||e.values.length-1;"number"==typeof u&&"number"==typeof c&&(n=r.__range(u,c))}}else{if("loc"!=t.type)throw new Error("Slice index must be separated by ':'");var h=[];e.index.map((function(e,n){t.rows[0]==e&&h.push(n)})),n=h}else if("loc"==t.type){var f=[];e.index.map((function(e,n){t.rows.includes(e)&&f.push(n)})),n=f}else n=t.rows}else t.type,n=r.__range(0,Number(e.shape[0])-1);if(Object.prototype.hasOwnProperty.call(t,"columns")){if(!Array.isArray(t.columns))throw new Error("columns must be a list");if(1==t.columns.length&&t.columns[0].includes(":")){var d,p,m=t.columns[0].split(":");"iloc"==t.type||""==m[0]?(d=parseInt(m[0])||0,p=parseInt(m[1])-1||e.values[0].length-1):(d=parseInt(e.columns.indexOf(m[0])),p=parseInt(e.columns.indexOf(m[1]))-1),"number"==typeof d&&"number"==typeof p&&(a=r.__range(d,p),s=!0)}else a=t.columns}else a="loc"==t.type?e.column_names:r.__range(0,Number(e.shape[1])-1);for(var g=e.values,y=[],b=0;bw)throw new Error("Specified row index ".concat(v," is bigger than maximum row index of ").concat(w));if(Array.isArray(g[0])){var _=g[v],x=[];for(var k in a){var E;if("loc"!=t.type||s){E=a[k];var C=e.columns.length-1;if(E>C)throw new Error("column index ".concat(E," is bigger than ").concat(C))}else if(-1==(E=e.columns.indexOf(a[k])))throw new Error("Column ".concat(a[k]," does not exist"));var S=_[E];x.push(S)}y.push(x)}else y.push(g[v])}var N=[];"iloc"==t.type||s?a.map((function(t){N.push(e.columns[t])})):N=a;var I=[];return n.forEach((function(t){I.push(e.index[t])})),[y,N,I]}},3938:(e,t,n)=>{"use strict";n.d(t,{F:()=>F});var r=n(3038),a=n.n(r),s=n(319),i=n.n(s),o=n(7757),l=n.n(o),u=n(8926),c=n.n(u),h=n(4575),f=n.n(h),d=n(3913),p=n.n(d),m=n(2205),g=n.n(m),y=n(8585),b=n.n(y),v=n(9754),w=n.n(v),_=n(2563),x=n(3346),k=n(697),E=n(1745),C=n(2847),S=n(107),N=n(7737),I=n(9187),D=n(4564),A=n(9365);var T=new k.c,R=new N.z,F=function(e){g()(o,e);var t,n,r,s=(n=o,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=w()(n);if(r){var a=w()(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return b()(this,e)});function o(e,t){var n;return f()(this,o),Array.isArray(e[0])||T.__is_object(e[0])?(e=T.__convert_2D_to_1D(e),n=s.call(this,e,t)):n=s.call(this,e,t),b()(n)}return p()(o,[{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.shape[0]||e<1)return new o(this.values,{columns:this.column_names});var t=this.values.slice(0,e);return new o(t,{columns:this.column_names})}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return new o(this.values,{columns:this.column_names});var t=this.values.slice(this.shape[0]-e),n=this.index.slice(this.shape[0]-e),r=new o(t,{columns:this.column_names,index:n});return r}},{key:"sample",value:(t=c()(l().mark((function e(){var t,n,r,a,s=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:5,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc(r),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"add",value:function(e){return T.__is_number(e)?new o(this.row_data_tensor.add(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.add(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"sub",value:function(e){return T.__is_number(e)?new o(this.tensor.sub(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.sub(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mul",value:function(e){return T.__is_number(e)?new o(this.tensor.mul(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.mul(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"div",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(T.__is_number(e)){var n=this.tensor.div(e);return new o(n.arraySync(),{columns:this.column_names,dtypes:[n.dtype]})}if(this.__check_series_op_compactibility){var r;r=t?"float32":"int32";var a=this.tensor.asType(r),s=e.tensor.asType(r),i=a.div(s);return new o(i.arraySync(),{columns:this.column_names,dtypes:[i.dtype]})}}},{key:"pow",value:function(e){return T.__is_number(e)?new o(this.tensor.pow(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.pow(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mod",value:function(e){return T.__is_number(e)?new o(this.tensor.mod(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.mod(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mean",value:function(){T._throw_str_dtype_error(this,"mean");var e=T._remove_nans(this.values);return _.tensor(e).mean().arraySync()}},{key:"median",value:function(){T._throw_str_dtype_error(this,"median");var e=T._remove_nans(this.values);return(0,x.C2o)(e)}},{key:"mode",value:function(){T._throw_str_dtype_error(this,"median");var e=T._remove_nans(this.values);return(0,x.xJM)(e)}},{key:"min",value:function(){return T._throw_str_dtype_error(this,"min"),this.row_data_tensor.min().arraySync()}},{key:"max",value:function(){return T._throw_str_dtype_error(this,"max"),this.row_data_tensor.max().arraySync()}},{key:"sum",value:function(){if(T._throw_str_dtype_error(this,"sum"),"boolean"==this.dtypes[0]){var e=this.row_data_tensor.sum().arraySync();return Number(e)}var t=this.row_data_tensor.sum().arraySync();return Number(t.toFixed(5))}},{key:"count",value:function(){return T.__count_nan(this.values,!0,!0)}},{key:"maximum",value:function(e){if(T.__is_number(e)){var t=this.row_data_tensor.maximum(e);return new o(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.row_data_tensor,r=e.tensor;return new o(n.maximum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"minimum",value:function(e){if(T.__is_number(e)){var t=this.row_data_tensor.minimum(e);return new o(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.tensor,r=e.tensor;return new o(n.minimum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"round",value:function(e){return T.__is_undefined(e)?new o(_.round(this.row_data_tensor).arraySync(),{columns:this.column_names,index:this.index}):new o(T.__round(this.values,e,!0),{columns:this.column_names,index:this.index})}},{key:"std",value:function(){T._throw_str_dtype_error(this,"std");var e=T._remove_nans(this.values);return(0,x.qoR)(e)}},{key:"var",value:function(){T._throw_str_dtype_error(this,"std");var e=T._remove_nans(this.values);return(0,x.CAK)(e)}},{key:"isna",value:function(){return new o(this.__isna(),{index:this.index,columns:this.column_names,dtypes:["boolean"]})}},{key:"fillna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["value","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("value"in e))throw Error("Value Error: Must specify value to replace with");var n=[];if(this.values.forEach((function(t){isNaN(t)&&"string"!=typeof t?n.push(e.value):n.push(t)})),!e.inplace){var r=new o(n,{columns:this.column_names,index:this.index,dtypes:this.dtypes});return r}this.data=n}},{key:"sort_values",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["inplace","ascending"];T._throw_wrong_params_error(t,n),"ascending"in t||(t.ascending=!0),"inplace"in t||(t.inplace=!1);var r=[],a=i()(this.values),s=T.__range(0,this.index.length-1),l=T._sort_arr_with_index(s,a,this.dtypes[0]);if(l.forEach((function(t){r.push(e.values[t])})),t.ascending&&(r=r.reverse(),l=l.reverse()),!t.inplace){var u=new o(r,{columns:this.column_names,index:l});return u}this.data=r,this.__set_index(l)}},{key:"copy",value:function(){return new o(i()(this.values),{columns:i()(this.column_names),index:i()(this.index),dtypes:i()(this.dtypes[0])})}},{key:"describe",value:function(){return"string"==this.dtypes[0]?null:new o([this.count(),this.mean(),this.std(),this.min(),this.median(),this.max(),this.var()],{columns:this.columns,index:["count","mean","std","min","median","max","variance"]})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!e.inplace){var n=this.copy();return n.__reset_index(),n}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["index","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("index"in e))throw Error("Index ValueError: You must specify an array of index");if(e.index.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.index.length," must match lenght of existing index ").concat(this.index.length));if(!e.inplace){var n=this.copy();return n.__set_index(e.index),n}this.index_arr=e.index}},{key:"__check_series_op_compactibility",value:function(e){if(T.__is_undefined(e.series))throw Error("param [other] must be a Series or a single value that can be broadcasted");if(e.values.length!=this.values.length)throw Error("Shape Error: Series shape do not match");if("float"!=this.dtypes[0]||"int"!=this.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(this.dtypes[0]," with type ").concat(e.dtypes[0]));if("float"!=e.dtypes[0]||"int"!=e.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(e.dtypes[0]," with type ").concat(this.dtypes[0]));return!0}},{key:"map",value:function(e){var t=T.__is_function(e);return new o(this.data.map((function(n){if(t)return e(n);if(T.__is_object(e))return n in e?e[n]:NaN;throw new Error("callable must either be a function or an object")})),{columns:this.column_names,index:this.index})}},{key:"apply",value:function(e){if(!T.__is_function(e))throw new Error("the arguement most be a function");return new o(this.data.map((function(t){return e(t)})),{columns:this.column_names,index:this.index})}},{key:"unique",value:function(){var e=new Set(this.values);return new o(Array.from(e))}},{key:"nunique",value:function(){return this.unique().values.length}},{key:"value_counts",value:function(){for(var e=this.values,t={},n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=["replace","with","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("replace"in e))throw Error("Params Error: Must specify param 'replace'");if(!("with"in e))throw Error("Params Error: Must specify param 'with'");var n=[],r=this.values;if(r.forEach((function(t){t==e.replace?n.push(e.with):n.push(t)})),!e.inplace){var a=new o(n,{index:this.index,columns:this.columns,dtypes:this.dtypes});return a}this.data=n}},{key:"dropna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1;var n=this.values,r=this.index,a=[],s=[],i=this.isna().values;if(i.forEach((function(e,t){e||(a.push(n[t]),s.push(r[t]))})),!e.inplace){var l=new o(a,{columns:this.column_names,index:s,dtypes:this.dtypes});return l}this.index_arr=s,this.data=a}},{key:"argsort",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.sort_values({ascending:e}).index,n=new o(t);return n}},{key:"argmax",value:function(){return this.row_data_tensor.argMax().arraySync()}},{key:"argmin",value:function(){return this.row_data_tensor.argMin().arraySync()}},{key:"drop_duplicates",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=["inplace","keep"];T._throw_wrong_params_error(n,r),n.inplace=n.inplace||!1,n.keep=n.keep||"first","last"==n.keep?(e=this.values.reverse(),t=this.index.reverse()):(e=this.values,t=this.index);var a=[],s=[];if(e.forEach((function(e,n){s.includes(e)||(a.push(t[n]),s.push(e))})),"last"==n.keep&&(s=s.reverse(),a=a.reverse()),!n.inplace){var i=new o(s,{index:a,columns:this.column_names,dtypes:this.dtypes});return i}this.data=s,this.index_arr=a}},{key:"toString",value:function(){var e,t,n=R.get_max_row,r=[],a={},s=[""].concat(this.columns);this.values.length>n?(t=this.values.slice(0,n),e=this.index.slice(0,n)):(t=this.values,e=this.index),e.forEach((function(e,n){var a=[e].concat(t[n]);r.push(a)})),a[0]=10,a[1]={width:20,truncate:20};var i=[s].concat(r);return(0,S.Kz)(i,{columns:a})}},{key:"__bool_ops",value:function(e,t){var n,r=this.values;if("number"==typeof e)n=i()(r).fill(e);else{if(!(e instanceof o))throw new Error("Value Error: 'other' must be an instance of Series");n=e.values}if(r.length!==n.length)throw new Error("Length Error: Both series must be of the same length");for(var a=[],s=0;su,a.push(c);break;case"le":c=l<=u,a.push(c);break;case"ge":c=l>=u,a.push(c);break;case"ne":c=l!=u,a.push(c);break;case"eq":c=l===u,a.push(c)}}return new o(a)}},{key:"__cum_ops",value:function(e){for(var t=this.values,n=t[0],r=[n],a=1;an?(r.push(s),n=s):r.push(n);break;case"min":s1&&void 0!==arguments[1]&&arguments[1];if(!t){var n=this.copy();if(Array.isArray(e))e.forEach((function(e,t){n.data.push(e),n.index_arr.push(t)}));else if(e instanceof o){var r=e.values,a=e.index;r.forEach((function(e,t){n.data.push(e),n.index_arr.push(a[t])}))}else n.data.push(e),n.index_arr.push(0);return n}var s=this;if(Array.isArray(e))e.forEach((function(e,t){s.data.push(e),s.index_arr.push(t)}));else if(e instanceof o){var i=e.values,l=e.index;i.forEach((function(e,t){s.data.push(e),s.index_arr.push(l[t])}))}else s.data.push(e),s.index_arr.push(0)}},{key:"tensor",get:function(){return _.tensor(this.values).asType(this.dtypes[0])}},{key:"dtype",get:function(){return this.dtypes[0]}},{key:"str",get:function(){var e=this.values;if("string"!=this.dtypes[0]){var t=[];e.forEach((function(e){t.push(String(e))}));var n=new o(t,{columns:this.column_names,index:this.index});return new E.W(n)}return new E.W(this)}},{key:"dt",get:function(){var e=new I.p({data:this});return e.preprocessed(),e}}]),o}(C.Z)},1745:(e,t,n)=>{"use strict";n.d(t,{W:()=>l});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(3938),l=function(){function e(t){a()(this,e),this.series=t,this.array=t.values}return i()(e,[{key:"toLowerCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toLowerCase())})),this.__create_new_sf_from(e,this.series)}},{key:"toUpperCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toUpperCase())})),this.__create_new_sf_from(e,this.series)}},{key:"capitalize",value:function(){var e=[];return this.array.map((function(t){var n=t.slice(0,1),r=t.slice(1),a="".concat(n.toUpperCase()).concat(r.toLowerCase());e.push(a)})),this.__create_new_sf_from(e,this.series)}},{key:"charAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=[];this.array.map((function(n){t.push(n.charAt(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"concat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(Array.isArray(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.startsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"endsWith",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.endsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"includes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.includes(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"indexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.indexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"lastIndexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.lastIndexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"replace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=[];this.array.map((function(r){n.push(r.replace(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"repeat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[];this.array.map((function(n){t.push(n.repeat(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.search(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"slice",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.slice(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"split",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:" ",t=[];this.array.map((function(n){t.push(n.split(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"substr",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substr(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"substring",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substring(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"trim",value:function(){var e=[];return this.array.map((function(t){e.push(t.trim())})),this.__create_new_sf_from(e,this.series)}},{key:"join",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[];this.array.map((function(r){var a=e,s="".concat(r).concat(t).concat(a);n.push(s)}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"len",value:function(){var e=[];return this.array.map((function(t){e.push(t.length)})),this.__create_new_sf_from(e,this.series)}},{key:"__create_new_sf_from",value:function(e,t){return new o.F(e,{columns:t.column_names,index:t.index})}}]),e}()},9187:(e,t,n)=>{"use strict";n.d(t,{p:()=>c,J:()=>h});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(697),l=n(3938),u=new o.c,c=function(){function e(t){a()(this,e),u.__in_object(t,"data","specify the data"),t.data instanceof l.F?this.data=t.data.values:this.data=t.data,this.format=t.format||null,this.keys={Y:4,m:2,H:2,M:2,S:2,b:3,d:2,"-":1},this.__in_format=["%Y-m-d%","%m-d-Y%","%m-d-Y H%M%S%"],this.__monthName=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.__weekName=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}return i()(e,[{key:"preprocessed",value:function(){var e=null;this.format&&(e=this.generate_format()),this.date_list=[];for(var t=0;t4?n+=":"+e.slice(r,r+s):4==a?n+=" "+e.slice(r,r+s):a>0&&a<=2&&(n+="-"+e.slice(r,r+s)),r+=s}return n}},{key:"generate_format",value:function(){var e=this.format.split(""),t=this;return e.filter((function(e){return u.__key_in_object(t.keys,e)})).map((function(e){return t.keys[e]}))}},{key:"is_timestamp",value:function(e){var t=parseInt(e),n=String(t);return!(isNaN(t)||n.length{"use strict";n.d(t,{c:()=>d});var r=n(3038),a=n.n(r),s=n(8),i=n.n(s),o=n(4575),l=n.n(o),u=n(3913),c=n.n(u),h=n(2563),f=new(n(7737).z),d=function(){function e(){l()(this,e)}return c()(e,[{key:"remove",value:function(e,t){return e.filter((function(e,n){return n!=t}))}},{key:"__remove_arr",value:function(e,t){return e.filter((function(e,n){return!t.includes(n)}))}},{key:"__is_string",value:function(e){return"string"==typeof e||e instanceof String}},{key:"__is_number",value:function(e){return"number"==typeof e&&isFinite(e)}},{key:"__is_object",value:function(e){return e&&"object"===i()(e)&&e.constructor===Object}},{key:"__is_null",value:function(e){return null===e}},{key:"__is_undefined",value:function(e){return void 0===e}},{key:"__sample_from_iter",value:function(e,t,n){var r=e.length;if(t<0||t>r)throw new RangeError("Sample larger than population or is negative");if(n||r<=(t<=5?21:21+Math.pow(4,Math.ceil(Math.log(3*t,4))))){n||(e=Array.prototype.slice.call(e));for(var a=0;a1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;if(n){var r=0,a=0;return e.forEach((function(e){Number.isNaN(e)?r+=1:a+=1})),t?a:r}var s=[];return e.forEach((function(e){var n=0,r=0;e.forEach((function(e){Number.isNaN(e)?n+=1:r+=1})),t?s.push(r):s.push(n)})),s}},{key:"__median",value:function(e,t){if(t){var n=e.slice().sort((function(e,t){return e-t})),r=Math.floor(n.length/2);return n.length%2==0?(n[r-1]+n[r])/2:n[r]}var a=[];return e.map((function(e){var t=e.slice().sort((function(e,t){return e-t})),n=Math.floor(t.length/2);t.length%2==0?a.push((t[n-1]+t[n])/2):a.push(t[n])})),a}},{key:"__mode",value:function(e){var t,n=[],r=[],a=0;for(t in e.forEach((function(e){r[e]=(r[e]||0)+1,r[e]>a&&(a=r[e])})),r)this.__key_in_object(r,t)&&r[t]===a&&n.push(Number(t));return n}},{key:"__round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2?arguments[2]:void 0;if(t<0&&(t=1),n){var r=[];return e.map((function(e){r.push(Number(e.toFixed(t)))})),r}var a=[];return e.map((function(e){var n=[];e.map((function(e){n.push(Number(e.toFixed(t)))})),a.push(n)})),a}},{key:"__is_function",value:function(e){return"function"==typeof e}},{key:"__randgen",value:function(e,t,n){var r=[];function a(e,t){return Math.floor(Math.random()*(t-e)+e)}function s(e,r){if(!r.includes(e))return e;s(e=a(t,n),r)}for(var i=0;i1&&void 0!==arguments[1])||arguments[1],n=e.slice();return n.sort((function(e,n){return t?"string"==typeof e&&"string"==typeof n?e.charCodeAt()-n.charCodeAt():e-n:"string"==typeof e&&"string"==typeof n?n.charCodeAt()-e.charCodeAt():n-e}))}},{key:"__is_browser_env",value:function(){return new Function("try {return this===window;}catch(e){ return false;}")()}},{key:"__is_node_env",value:function(){return new Function("try {return this===global;}catch(e){return false;}")()}},{key:"_throw_str_dtype_error",value:function(e,t){if("string"==e.dtypes[0])throw Error("dtype error: String data type does not support ".concat(t," operation"))}},{key:"_remove_nans",value:function(e){return e.filter((function(e){return!isNaN(e)&&"string"!=typeof e}))}},{key:"__get_duplicate",value:function(e){var t={},n={};for(var r in e.forEach((function(e,n){e in t?(t[e].count+=1,t[e].index.push(n)):(t[e]={},t[e].count=1,t[e].index=[n])})),t)t[r].count>=2&&(n[r]={},n[r].count=t[r].count,n[r].index=t[r].index);return n}},{key:"_sort_arr_with_index",value:function(e,t,n){var r=e.map((function(e,n){return[t[n],e]}));return"string"==n?r.sort():r.sort((function(e,t){var n=a()(e,1)[0];return a()(t,1)[0]-n})),r.map((function(e){return a()(e,2)[1]}))}}]),e}()},2476:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Configs:()=>W.z,DataFrame:()=>s.N,LabelEncoder:()=>D,MinMaxScaler:()=>R,NDframe:()=>r.Z,OneHotEncoder:()=>A,Series:()=>a.F,StandardScaler:()=>F,Str:()=>U.W,Utils:()=>k.c,_version:()=>V,concat:()=>N.z,date_range:()=>B,get_dummies:()=>z,merge:()=>S,read_csv:()=>p,read_excel:()=>g,read_json:()=>m,tf:()=>h,to_datetime:()=>i.J});var r=n(2847),a=n(3938),s=n(3676),i=n(9187),o=n(7757),l=n.n(o),u=n(8926),c=n.n(u),h=n(2563),f=n(7869),d=n.n(f),p=function(){var e=c()(l().mark((function e(t){var n,r,a,i,o,u=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=u.length>1&&void 0!==u[1]?u[1]:{},r=n.start,a=n.end,t.startsWith("https")||t.startsWith("http")){e.next=4;break}throw new Error("Cannot read local file in browser environment");case 4:return i=[],e.next=7,h.data.csv(t,n).skip(r).take(a).forEachAsync((function(e){return i.push(e)}));case 7:return o=new s.N(i),e.abrupt("return",o);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),m=function(){var e=c()(l().mark((function e(t){var n,r,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"Get"});case 2:return n=e.sent,e.next=5,n.json();case 5:return r=e.sent,a=new s.N(r),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=c()(l().mark((function e(t){var n,r,a,i,o,u,c,h,f,p,m,g,y,b,v,w=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=w.length>1&&void 0!==w[1]?w[1]:{},r=n.sheet,a=n.header_index,i=n.data_index,a||(a=1),i||(i=a+1),e.prev=4,e.next=7,fetch(t,{method:"Get"});case 7:return u=e.sent,e.next=10,u.arrayBuffer();case 10:for(u=e.sent,u=new Uint8Array(u),o=d().read(u,{type:"array"}),c=o.Sheets[r||o.SheetNames[0]],h=d().utils.decode_range(c["!ref"]),f=[],p=[],m=a-1;m<=h.e.r;++m){for(g=[],y=h.s.c;y<=h.e.c;++y)b=void 0,m==a-1&&(b=d().utils.encode_cell({c:y,r:a-1}),c[b]&&f.push(c[b].v)),m>=i-1&&(b=d().utils.encode_cell({c:y,r:m}),c[b]&&g.push(c[b].v));m>=i-1&&p.push(g)}return v=new s.N(p,{columns:f}),e.abrupt("return",v);case 21:throw e.prev=21,e.t0=e.catch(4),new Error(e.t0);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t){return e.apply(this,arguments)}}(),y=n(319),b=n.n(y),v=n(4575),w=n.n(v),_=n(3913),x=n.n(_),k=n(697),E=new k.c,C=function(){function e(t){var n=this;if(w()(this,e),E.__in_object(t,"left"),E.__in_object(t,"right"),E.__in_object(t,"on"),E.__key_in_object(t,"how")?this.how=t.how:(this.how="inner",t.how="inner"),this.left=null,this.right=null,this.on=null,!(t.left instanceof s.N&&t.right instanceof s.N))throw new Error("The left and right key value must be a dataFrame");if(this.left=t.left,this.right=t.right,!Array.isArray(t.on))throw new Error("key 'on' must be a list");if(this.on=t.on,!["outer","inner","left","right"].includes(t.how))throw new Error("".concat(t.how," specify in keyword how is not recognise"));this.how=t.how,this.left_col_index=[],this.right_col_index=[];for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:null,s=null,i=null,o=null,l=null;if(e&&t){s=new Date(e),o=this.freq_type(s,this.freq),i=new Date(t),l=this.freq_type(i,this.freq);var u=s.getFullYear(),c=i.getFullYear();u(l=a?n*a-1:n-1)&&(l+=o);var p=O.__range(o,l);a&&(p=this.offset_count(p,a));var m=p.map((function(e){return r.set_dateProps(s,r.freq,e)})),g=this.toLocalString(m);return g}if(t&&!e){i=new Date(t),o=(l=this.freq_type(i,this.freq))-n+1;var y=O.__range(o,l);a&&(y=this.offset_count(y,a));var b=y.map((function(e){return r.set_dateProps(i,r.freq,e)})),v=this.toLocalString(b);return v}}},{key:"freq_type",value:function(e,t){var n=null;switch(t){case"M":n=e.getMonth();break;case"Y":n=e.getFullYear();break;case"s":n=e.getSeconds();break;case"D":n=e.getDate();break;case"H":n=e.getHours();break;case"m":n=e.getMinutes()}return n}},{key:"offset_count",value:function(e,t){for(var n=[],r=0;r11?e%12==0?[n=e/12,e-(t=e)]:[n,e-t]:[n,e]}))}},{key:"day_end",value:function(e,t){for(var n=this.month_end(e,t),r=O.__range(e.getMonth(),n),a=this.month_range(r),s=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:{};P.__in_object(e,"data","data not provided");var t=e.prefix||null,n=e.prefix_sep||["_"],r=e.columns||null,a=!1,i=null;if(Array.isArray(e.data)?i=e.data:e.data instanceof s.N?(i=e.data,a=!0):i=e.data.values,a){var o=[];if(r?r.forEach((function(e){var t=r.indexOf(e);o.push(t)})):(r=[],i.col_types.map((function(e,t){if("string"==e){var n=i.columns[t];r.push(n),o.push(t)}}))),t){if(!Array.isArray(t))throw new Error("prefix for dataframe must be an array");if(t.length!=r.length)throw new Error("prefix must be the same length with the number of onehot encoding column")}else t=r;var l=i.values,u=i.columns,c=i.col_data,h=[];o.forEach((function(e){h.push(c[e])}));var f=[],d=[];h.forEach((function(e,r){var a=L(e,t[r],n),s=$()(a,2),i=s[0],o=s[1];f.push.apply(f,b()(o)),0==d.length?d.push.apply(d,b()(i)):i.forEach((function(e,t){var n;(n=d[t]).push.apply(n,b()(e))}))}));var p=l.map((function(e,t){var n=e.slice(),r=P.__remove_arr(n,o);return r.push.apply(r,b()(d[t])),r})),m=P.__remove_arr(u,o);return m.push.apply(m,f),new s.N(p,{columns:m})}var g=L(i,t,n),y=$()(g,2),v=y[0],w=y[1];return new s.N(v,{columns:w})},W=n(7737),U=n(1745),V="0.2.4"},4564:(e,t,n)=>{"use strict";n.d(t,{X:()=>h});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(697),l=n(3938),u=new o.c;try{var c=Plotly.version;console.info("Using Plotly version ".concat(c))}catch(e){console.info("Plotly CDN not found. If you need to make Plots, then add the Plotly CDN to your script")}var h=function(){function e(t,n){a()(this,e),this.div=n,this.ndframe=t}return i()(e,[{key:"line",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="line",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c;var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var s={};a.forEach((function(e){s[e]=t[e]})),u.__key_in_object(r,"x")?(s.x=e.ndframe[r.x].values,s.y=e.ndframe[n].values,s.name=n):(s.y=e.ndframe[r.y].values,s.x=e.ndframe[n].values,s.name=n),p.push(s)})),Plotly.newPlot(this.div,p,r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.x=e.ndframe.index,r.y=e.ndframe[n].values,r.name=n,m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"bar",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="bar",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="bar";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?p.y=this.ndframe[r.x].values:p.y=this.ndframe[r.y].values,p.type="bar",Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe.index,n.y=e.ndframe[t].values,n.name=t,n.type="bar",m.push(n)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"scatter",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.y=this.ndframe.index,s.type="scatter",s.mode="markers",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var i=this.ndframe[r.x].values,o=this.ndframe[r.y].values,c={};c.x=i,c.y=o,c.type="scatter",c.mode="markers";var h={},f={};h.title=r.x,f.title=r.y,r.layout.xaxis=h,r.layout.yaxis=f,Plotly.newPlot(this.div,[c],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var d={};a.forEach((function(e){"layout"==!e&&(d[e]=t[e])})),u.__key_in_object(r,"x")?(d.y=this.ndframe.index,d.x=this.ndframe[r.x].values):(d.x=this.ndframe.index,d.y=this.ndframe[r.y].values),d.type="scatter",d.mode="markers",Plotly.newPlot(this.div,[d],r.layout,r)}else{var p=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.y=e.ndframe.index,n.x=e.ndframe[t].values,n.name=t,n.type="scatter",n.mode="markers",p.push(n)})),Plotly.newPlot(this.div,p,r.layout,r)}}},{key:"hist",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.type="histogram",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")){var i={};a.forEach((function(e){"layout"==!e&&(i[e]=t[e])})),i.x=this.ndframe[r.y].values,i.type="histogram",Plotly.newPlot(this.div,[i],r.layout,r)}else if(u.__key_in_object(r,"y")){var o={};a.forEach((function(e){"layout"==!e&&(o[e]=t[e])})),o.y=this.ndframe[r.y].values,o.type="histogram",Plotly.newPlot(this.div,[o],r.layout,r)}else{var c=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe[t].values,n.name=t,n.type="histogram",c.push(n)})),Plotly.newPlot(this.div,c,r.layout,r)}}},{key:"pie",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0];if(this.ndframe instanceof l.F){var a=[{values:this.ndframe.values,labels:this.ndframe.index,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,a,r.layout,r)}else if(u.__key_in_object(r,"values")&&u.__key_in_object(r,"labels")){if(!this.ndframe.column_names.includes(r.labels))throw Error("Column Error: ".concat(r.labels," not found in columns. labels name must be one of [ ").concat(this.ndframe.column_names,"]"));if(!this.ndframe.column_names.includes(r.values))throw Error("Column Error: ".concat(r.values," not found in columns. value name must be one of [ ").concat(this.ndframe.column_names,"]"));var s=[{values:this.ndframe[r.values].values,labels:this.ndframe[r.labels].values,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,s,r.layout,r)}else{var i;if(i=u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names,u.__key_in_object(r,"row_pos")){if(r.row_pos.length!=i.length-1)throw Error("Lenght of row_pos array must be equal to number of columns. Got ".concat(r.row_pos.length,", expected ").concat(i.length-1))}else{for(var o=[],c=0;c0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="box",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="box";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="box"):(p.x=this.ndframe.index,p.y=r.y,p.type="box"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="box",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"violin",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="violin",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="violin";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="violin"):(p.x=this.ndframe.index,p.y=r.y,p.type="violin"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="violin",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"table",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this.__get_plot_params(n),a=r[0],s={},i={},o=[];u.__key_in_object(a,"columns")?(a.columns.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"));var n=t.ndframe.column_names.indexOf(e);o.push(t.ndframe.col_data[n])})),e=a.columns):(e=this.ndframe.column_names,o=this.ndframe.col_data),s.values=e,i.values=o,a.header_style&&Object.keys(a.header_style).forEach((function(e){s[e]=a.header_style[e]})),a.cell_style&&Object.keys(a.cell_style).forEach((function(e){i[e]=a.cell_style[e]}));var l=[{type:"table",header:s,cells:i}];Plotly.newPlot(this.div,l,a.layout,a)}},{key:"__get_plot_params",value:function(e){var t=Object.keys(e),n={};return t.forEach((function(t){n[t]=e[t]})),u.__key_in_object(e,"layout")||(n.layout={}),[n,t]}},{key:"____check_if_cols_exist",value:function(e){var t=this;return e.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"))})),e}}]),e}()},1977:function(e,t){var n;!function(r){"use strict";var a=function(e){return.5*(Math.exp(e)+Math.exp(-e))},s=function(e){return.5*(Math.exp(e)-Math.exp(-e))},i=function(){throw SyntaxError("Invalid Param")};function o(e,t){var n=Math.abs(e),r=Math.abs(t);return 0===e?Math.log(r):0===t?Math.log(n):n<3e3&&r<3e3?.5*Math.log(e*e+t*t):Math.log(e/Math.cos(Math.atan2(t,e)))}function l(e,t){if(!(this instanceof l))return new l(e,t);var n=function(e,t){var n={re:0,im:0};if(null==e)n.re=n.im=0;else if(void 0!==t)n.re=e,n.im=t;else switch(typeof e){case"object":if("im"in e&&"re"in e)n.re=e.re,n.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return l.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return l.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else 2===e.length?(n.re=e[0],n.im=e[1]):i();break;case"string":n.im=n.re=0;var r=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),a=1,s=0;null===r&&i();for(var o=0;o0&&i();break;case"number":n.im=0,n.re=e;break;default:i()}return isNaN(n.re)||isNaN(n.im),n}(e,t);this.re=n.re,this.im=n.im}l.prototype={re:0,im:0,sign:function(){var e=this.abs();return new l(this.re/e,this.im/e)},add:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re+n.re,this.im+n.im)},sub:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re-n.re,this.im-n.im)},mul:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:0===n.im&&0===this.im?new l(this.re*n.re,0):new l(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,t){var n=new l(e,t);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return l.NAN;if(this.isInfinite()||n.isZero())return l.INFINITY;if(this.isZero()||n.isInfinite())return l.ZERO;e=this.re,t=this.im;var r,a,s=n.re,i=n.im;return 0===i?new l(e/s,t/s):Math.abs(s)=0)return new l(Math.pow(e,n.re),0);if(0===e)switch((n.re%4+4)%4){case 0:return new l(Math.pow(t,n.re),0);case 1:return new l(0,Math.pow(t,n.re));case 2:return new l(-Math.pow(t,n.re),0);case 3:return new l(0,-Math.pow(t,n.re))}}if(0===e&&0===t&&n.re>0&&n.im>=0)return l.ZERO;var r=Math.atan2(t,e),a=o(e,t);return e=Math.exp(n.re*a-n.im*r),t=n.im*a+n.re*r,new l(e*Math.cos(t),e*Math.sin(t))},sqrt:function(){var e,t,n=this.re,r=this.im,a=this.abs();if(n>=0){if(0===r)return new l(Math.sqrt(n),0);e=.5*Math.sqrt(2*(a+n))}else e=Math.abs(r)/Math.sqrt(2*(a-n));return t=n<=0?.5*Math.sqrt(2*(a-n)):Math.abs(r)/Math.sqrt(2*(a+n)),new l(e,r<0?-t:t)},exp:function(){var e=Math.exp(this.re);return this.im,new l(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,t=this.im;return new l(Math.expm1(e)*Math.cos(t)+function(e){var t=Math.PI/4;if(e<-t||e>t)return Math.cos(e)-1;var n=e*e;return n*(n*(1/24+n*(-1/720+n*(1/40320+n*(-1/3628800+n*(1/4790014600+n*(-1/87178291200+n*(1/20922789888e3)))))))-.5)}(t),Math.exp(e)*Math.sin(t))},log:function(){var e=this.re,t=this.im;return new l(o(e,t),Math.atan2(t,e))},abs:function(){return e=this.re,t=this.im,n=Math.abs(e),r=Math.abs(t),n<3e3&&r<3e3?Math.sqrt(n*n+r*r):(n1&&0===t,r=1-e,a=1+e,s=r*r+t*t,i=0!==s?new l((a*r-t*t)/s,(t*r+a*t)/s):new l(-1!==e?e/0:0,0!==t?t/0:0),u=i.re;return i.re=o(i.re,i.im)/2,i.im=Math.atan2(i.im,u)/2,n&&(i.im=-i.im),i},acoth:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new l(0,Math.PI/2);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).atanh():new l(0!==e?e/0:0,0!==t?-t/0:0).atanh()},acsch:function(){var e=this.re,t=this.im;if(0===t)return new l(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).asinh():new l(0!==e?e/0:0,0!==t?-t/0:0).asinh()},asech:function(){var e=this.re,t=this.im;if(this.isZero())return l.INFINITY;var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).acosh():new l(0!==e?e/0:0,0!==t?-t/0:0).acosh()},inverse:function(){if(this.isZero())return l.INFINITY;if(this.isInfinite())return l.ZERO;var e=this.re,t=this.im,n=e*e+t*t;return new l(e/n,-t/n)},conjugate:function(){return new l(this.re,-this.im)},neg:function(){return new l(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new l(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new l(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new l(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){var n=new l(e,t);return Math.abs(n.re-this.re)<=l.EPSILON&&Math.abs(n.im-this.im)<=l.EPSILON},clone:function(){return new l(this.re,this.im)},toString:function(){var e=this.re,t=this.im,n="";return this.isNaN()?"NaN":this.isZero()?"0":this.isInfinite()?"Infinity":(0!==e&&(n+=e),0!==t&&(0!==e?n+=t<0?" - ":" + ":t<0&&(n+="-"),1!==(t=Math.abs(t))&&(n+=t),n+="i"),n||"0")},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return!(0!==this.re&&-0!==this.re||0!==this.im&&-0!==this.im)},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},l.ZERO=new l(0,0),l.ONE=new l(1,0),l.I=new l(0,1),l.PI=new l(Math.PI,0),l.E=new l(Math.E,0),l.INFINITY=new l(1/0,1/0),l.NAN=new l(NaN,NaN),l.EPSILON=1e-16,void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},3776:function(e,t,n){var r;!function(a){"use strict";var s,i,o,l=9e15,u=1e9,c="0123456789abcdef",h="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",f="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",d={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-l,maxE:l,crypto:!1},p=!0,m="[DecimalError] ",g=m+"Invalid argument: ",y=m+"Precision limit exceeded",b=m+"crypto unavailable",v=Math.floor,w=Math.pow,_=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,x=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,k=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,C=1e7,S=h.length-1,N=f.length-1,I={name:"[object Decimal]"};function D(e){var t,n,r,a=e.length-1,s="",i=e[0];if(a>0){for(s+=i,t=1;tn)throw Error(g+e)}function T(e,t,n,r){var a,s,i,o;for(s=e[0];s>=10;s/=10)--t;return--t<0?(t+=7,a=0):(a=Math.ceil((t+1)/7),t%=7),s=w(10,7-t),o=e[a]%s|0,null==r?t<3?(0==t?o=o/100|0:1==t&&(o=o/10|0),i=n<4&&99999==o||n>3&&49999==o||5e4==o||0==o):i=(n<4&&o+1==s||n>3&&o+1==s/2)&&(e[a+1]/s/100|0)==w(10,t-2)-1||(o==s/2||0==o)&&0==(e[a+1]/s/100|0):t<4?(0==t?o=o/1e3|0:1==t?o=o/100|0:2==t&&(o=o/10|0),i=(r||n<4)&&9999==o||!r&&n>3&&4999==o):i=((r||n<4)&&o+1==s||!r&&n>3&&o+1==s/2)&&(e[a+1]/s/1e3|0)==w(10,t-3)-1,i}function R(e,t,n){for(var r,a,s=[0],i=0,o=e.length;in-1&&(void 0===s[r+1]&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}I.absoluteValue=I.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)},I.ceil=function(){return O(new this.constructor(this),this.e+1,2)},I.comparedTo=I.cmp=function(e){var t,n,r,a,s=this,i=s.d,o=(e=new s.constructor(e)).d,l=s.s,u=e.s;if(!i||!o)return l&&u?l!==u?l:i===o?0:!i^l<0?1:-1:NaN;if(!i[0]||!o[0])return i[0]?l:o[0]?-u:0;if(l!==u)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(t=0,n=(r=i.length)<(a=o.length)?r:a;to[t]^l<0?1:-1;return r===a?0:r>a^l<0?1:-1},I.cosine=I.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r,a=t.d.length;a<32?r=(1/Y(4,n=Math.ceil(a/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=X(e,1,t.times(r),new e(1));for(var s=n;s--;){var i=t.times(t);t=i.times(i).minus(i).times(8).plus(1)}return e.precision-=n,t}(r,J(r,n)),r.precision=e,r.rounding=t,O(2==o||3==o?n.neg():n,e,t,!0)):new r(1):new r(NaN)},I.cubeRoot=I.cbrt=function(){var e,t,n,r,a,s,i,o,l,u,c=this,h=c.constructor;if(!c.isFinite()||c.isZero())return new h(c);for(p=!1,(s=c.s*w(c.s*c,1/3))&&Math.abs(s)!=1/0?r=new h(s.toString()):(n=D(c.d),(s=((e=c.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=w(n,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(r=new h(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),i=(e=h.precision)+3;;)if(u=(l=(o=r).times(o).times(o)).plus(c),r=F(u.plus(c).times(o),u.plus(l),i+2,1),D(o.d).slice(0,i)===(n=D(r.d)).slice(0,i)){if("9999"!=(n=n.slice(i-3,i+1))&&(a||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(O(r,e+1,1),t=!r.times(r).times(r).eq(c));break}if(!a&&(O(o,e+1,0),o.times(o).times(o).eq(c))){r=o;break}i+=4,a=1}return p=!0,O(r,e,h.rounding,t)},I.decimalPlaces=I.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=7*((e=t.length-1)-v(this.e/7)),e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},I.dividedBy=I.div=function(e){return F(this,new this.constructor(e))},I.dividedToIntegerBy=I.divToInt=function(e){var t=this.constructor;return O(F(this,new t(e),0,1,1),t.precision,t.rounding)},I.equals=I.eq=function(e){return 0===this.cmp(e)},I.floor=function(){return O(new this.constructor(this),this.e+1,3)},I.greaterThan=I.gt=function(e){return this.cmp(e)>0},I.greaterThanOrEqualTo=I.gte=function(e){var t=this.cmp(e);return 1==t||0===t},I.hyperbolicCosine=I.cosh=function(){var e,t,n,r,a,s=this,i=s.constructor,o=new i(1);if(!s.isFinite())return new i(s.s?1/0:NaN);if(s.isZero())return o;n=i.precision,r=i.rounding,i.precision=n+Math.max(s.e,s.sd())+4,i.rounding=1,(a=s.d.length)<32?t=(1/Y(4,e=Math.ceil(a/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=X(i,1,s.times(t),new i(1),!0);for(var l,u=e,c=new i(8);u--;)l=s.times(s),s=o.minus(l.times(c.minus(l.times(c))));return O(s,i.precision=n,i.rounding=r,!0)},I.hyperbolicSine=I.sinh=function(){var e,t,n,r,a=this,s=a.constructor;if(!a.isFinite()||a.isZero())return new s(a);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(a.e,a.sd())+4,s.rounding=1,(r=a.d.length)<3)a=X(s,2,a,a,!0);else{e=(e=1.4*Math.sqrt(r))>16?16:0|e,a=X(s,2,a=a.times(1/Y(5,e)),a,!0);for(var i,o=new s(5),l=new s(16),u=new s(20);e--;)i=a.times(a),a=a.times(o.plus(i.times(l.times(i).plus(u))))}return s.precision=t,s.rounding=n,O(a,t,n,!0)},I.hyperbolicTangent=I.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,F(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},I.inverseCosine=I.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),a=n.precision,s=n.rounding;return-1!==r?0===r?t.isNeg()?P(n,a,s):new n(0):new n(NaN):t.isZero()?P(n,a+4,s).times(.5):(n.precision=a+6,n.rounding=1,t=t.asin(),e=P(n,a+4,s).times(.5),n.precision=a,n.rounding=s,e.minus(t))},I.inverseHyperbolicCosine=I.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,p=!1,n=n.times(n).minus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},I.inverseHyperbolicSine=I.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,p=!1,n=n.times(n).plus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln())},I.inverseHyperbolicTangent=I.atanh=function(){var e,t,n,r,a=this,s=a.constructor;return a.isFinite()?a.e>=0?new s(a.abs().eq(1)?a.s/0:a.isZero()?a:NaN):(e=s.precision,t=s.rounding,r=a.sd(),Math.max(r,e)<2*-a.e-1?O(new s(a),e,t,!0):(s.precision=n=r-a.e,a=F(a.plus(1),new s(1).minus(a),n+e,1),s.precision=e+4,s.rounding=1,a=a.ln(),s.precision=e,s.rounding=t,a.times(.5))):new s(NaN)},I.inverseSine=I.asin=function(){var e,t,n,r,a=this,s=a.constructor;return a.isZero()?new s(a):(t=a.abs().cmp(1),n=s.precision,r=s.rounding,-1!==t?0===t?((e=P(s,n+4,r).times(.5)).s=a.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,a=a.div(new s(1).minus(a.times(a)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=r,a.times(2)))},I.inverseTangent=I.atan=function(){var e,t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&h+4<=N)return(i=P(c,h+4,f).times(.25)).s=u.s,i}else{if(!u.s)return new c(NaN);if(h+4<=N)return(i=P(c,h+4,f).times(.5)).s=u.s,i}for(c.precision=o=h+10,c.rounding=1,e=n=Math.min(28,o/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(o/7),r=1,l=u.times(u),i=new c(u),a=u;-1!==e;)if(a=a.times(l),s=i.minus(a.div(r+=2)),a=a.times(l),void 0!==(i=s.plus(a.div(r+=2))).d[t])for(e=t;i.d[e]===s.d[e]&&e--;);return n&&(i=i.times(2<this.d.length-2},I.isNaN=function(){return!this.s},I.isNegative=I.isNeg=function(){return this.s<0},I.isPositive=I.isPos=function(){return this.s>0},I.isZero=function(){return!!this.d&&0===this.d[0]},I.lessThan=I.lt=function(e){return this.cmp(e)<0},I.lessThanOrEqualTo=I.lte=function(e){return this.cmp(e)<1},I.logarithm=I.log=function(e){var t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(null==e)e=new c(10),t=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new c(n&&!n[0]?-1/0:1!=u.s?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(a=n[0];a%10==0;)a/=10;s=1!==a}if(p=!1,i=H(u,o=h+5),r=t?$(c,o+10):H(e,o),T((l=F(i,r,o,1)).d,a=h,f))do{if(i=H(u,o+=10),r=t?$(c,o+10):H(e,o),l=F(i,r,o,1),!s){+D(l.d).slice(a+1,a+15)+1==1e14&&(l=O(l,h+1,0));break}}while(T(l.d,a+=10,f));return p=!0,O(l,h,f)},I.minus=I.sub=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.constructor;if(e=new m(e),!d.d||!e.d)return d.s&&e.s?d.d?e.s=-e.s:e=new m(e.d||d.s!==e.s?d:NaN):e=new m(NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,f=e.d,o=m.precision,l=m.rounding,!u[0]||!f[0]){if(f[0])e.s=-e.s;else{if(!u[0])return new m(3===l?-0:0);e=new m(d)}return p?O(e,o,l):e}if(n=v(e.e/7),c=v(d.e/7),u=u.slice(),s=c-n){for((h=s<0)?(t=u,s=-s,i=f.length):(t=f,n=c,i=u.length),s>(r=Math.max(Math.ceil(o/7),i)+2)&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for((h=(r=u.length)<(i=f.length))&&(i=r),r=0;r0;--r)u[i++]=0;for(r=f.length;r>s;){if(u[--r](i=(s=Math.ceil(o/7))>i?s+1:i+1)&&(a=i,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for((i=u.length)-(a=c.length)<0&&(a=i,n=c,c=u,u=n),t=0;a;)t=(u[--a]=u[a]+c[a]+t)/C|0,u[a]%=C;for(t&&(u.unshift(t),++r),i=u.length;0==u[--i];)u.pop();return e.d=u,e.e=M(u,r),p?O(e,o,l):e},I.precision=I.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(g+e);return n.d?(t=L(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},I.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)},I.sine=I.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r=t.d.length;if(r<3)return X(e,2,t,t);n=(n=1.4*Math.sqrt(r))>16?16:0|n,t=X(e,2,t=t.times(1/Y(5,n)),t);for(var a,s=new e(5),i=new e(16),o=new e(20);n--;)a=t.times(t),t=t.times(s.plus(a.times(i.times(a).minus(o))));return t}(r,J(r,n)),r.precision=e,r.rounding=t,O(o>2?n.neg():n,e,t,!0)):new r(NaN)},I.squareRoot=I.sqrt=function(){var e,t,n,r,a,s,i=this,o=i.d,l=i.e,u=i.s,c=i.constructor;if(1!==u||!o||!o[0])return new c(!u||u<0&&(!o||o[0])?NaN:o?i:1/0);for(p=!1,0==(u=Math.sqrt(+i))||u==1/0?(((t=D(o)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),r=new c(t=u==1/0?"5e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new c(u.toString()),n=(l=c.precision)+3;;)if(r=(s=r).plus(F(i,s,n+2,1)).times(.5),D(s.d).slice(0,n)===(t=D(r.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(a||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(O(r,l+1,1),e=!r.times(r).eq(i));break}if(!a&&(O(s,l+1,0),s.times(s).eq(i))){r=s;break}n+=4,a=1}return p=!0,O(r,l,c.rounding,e)},I.tangent=I.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,(n=n.sin()).s=1,n=F(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,O(2==o||4==o?n.neg():n,e,t,!0)):new r(NaN)},I.times=I.mul=function(e){var t,n,r,a,s,i,o,l,u,c=this,h=c.constructor,f=c.d,d=(e=new h(e)).d;if(e.s*=c.s,!(f&&f[0]&&d&&d[0]))return new h(!e.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:f&&d?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=f.length)<(u=d.length)&&(s=f,f=d,d=s,i=l,l=u,u=i),s=[],r=i=l+u;r--;)s.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)o=s[a]+d[r]*f[a-r-1]+t,s[a--]=o%C|0,t=o/C|0;s[a]=(s[a]+t)%C|0}for(;!s[--i];)s.pop();return t?++n:s.shift(),e.d=s,e.e=M(s,n),p?O(e,h.precision,h.rounding):e},I.toBinary=function(e,t){return Z(this,2,e,t)},I.toDecimalPlaces=I.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),void 0===e?n:(A(e,0,u),void 0===t?t=r.rounding:A(t,0,8),O(n,e+n.e+1,t))},I.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,!0):(A(e,0,u),void 0===t?t=a.rounding:A(t,0,8),n=B(r=O(new a(r),e+1,t),!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return void 0===e?n=B(a):(A(e,0,u),void 0===t?t=s.rounding:A(t,0,8),n=B(r=O(new s(a),e+a.e+1,t),!1,e+r.e+1)),a.isNeg()&&!a.isZero()?"-"+n:n},I.toFraction=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.d,y=d.constructor;if(!m)return new y(d);if(u=n=new y(1),r=l=new y(0),i=(s=(t=new y(r)).e=L(m)-d.e-1)%7,t.d[0]=w(10,i<0?7+i:i),null==e)e=s>0?t:u;else{if(!(o=new y(e)).isInt()||o.lt(u))throw Error(g+o);e=o.gt(t)?s>0?t:u:o}for(p=!1,o=new y(D(m)),c=y.precision,y.precision=s=7*m.length*2;h=F(o,t,0,1,1),1!=(a=n.plus(h.times(r))).cmp(e);)n=r,r=a,a=u,u=l.plus(h.times(a)),l=a,a=t,t=o.minus(h.times(a)),o=a;return a=F(e.minus(n),r,0,1,1),l=l.plus(a.times(u)),n=n.plus(a.times(r)),l.s=u.s=d.s,f=F(u,r,s,1).minus(d).abs().cmp(F(l,n,s,1).minus(d).abs())<1?[u,r]:[l,n],y.precision=c,p=!0,f},I.toHexadecimal=I.toHex=function(e,t){return Z(this,16,e,t)},I.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),null==e){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),void 0===t?t=r.rounding:A(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(p=!1,n=F(n,e,0,t,1).times(e),p=!0,O(n)):(e.s=n.s,n=e),n},I.toNumber=function(){return+this},I.toOctal=function(e,t){return Z(this,8,e,t)},I.toPower=I.pow=function(e){var t,n,r,a,s,i,o=this,l=o.constructor,u=+(e=new l(e));if(!(o.d&&e.d&&o.d[0]&&e.d[0]))return new l(w(+o,u));if((o=new l(o)).eq(1))return o;if(r=l.precision,s=l.rounding,e.eq(1))return O(o,r,s);if((t=v(e.e/7))>=e.d.length-1&&(n=u<0?-u:u)<=9007199254740991)return a=W(l,o,n,r),e.s<0?new l(1).div(a):O(a,r,s);if((i=o.s)<0){if(tl.maxE+1||t0?i/0:0):(p=!1,l.rounding=o.s=1,n=Math.min(12,(t+"").length),(a=j(e.times(H(o,r+n)),r)).d&&T((a=O(a,r+5,1)).d,r,s)&&(t=r+10,+D((a=O(j(e.times(H(o,t+n)),t),t+5,1)).d).slice(r+1,r+15)+1==1e14&&(a=O(a,r+1,0))),a.s=i,p=!0,l.rounding=s,O(a,r,s))},I.toPrecision=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,r.e<=a.toExpNeg||r.e>=a.toExpPos):(A(e,1,u),void 0===t?t=a.rounding:A(t,0,8),n=B(r=O(new a(r),e,t),e<=r.e||r.e<=a.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toSignificantDigits=I.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(A(e,1,u),void 0===t?t=n.rounding:A(t,0,8)),O(new n(this),e,t)},I.toString=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},I.truncated=I.trunc=function(){return O(new this.constructor(this),this.e+1,1)},I.valueOf=I.toJSON=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};var F=function(){function e(e,t,n){var r,a=0,s=e.length;for(e=e.slice();s--;)r=e[s]*t+a,e[s]=r%n|0,a=r/n|0;return a&&e.unshift(a),e}function t(e,t,n,r){var a,s;if(n!=r)s=n>r?1:-1;else for(a=s=0;at[a]?1:-1;break}return s}function n(e,t,n,r){for(var a=0;n--;)e[n]-=a,a=e[n]1;)e.shift()}return function(r,a,s,o,l,u){var c,h,f,d,p,m,g,y,b,w,_,x,k,E,S,N,I,D,A,T,R=r.constructor,F=r.s==a.s?1:-1,B=r.d,M=a.d;if(!(B&&B[0]&&M&&M[0]))return new R(r.s&&a.s&&(B?!M||B[0]!=M[0]:M)?B&&0==B[0]||!M?0*F:F/0:NaN);for(u?(p=1,h=r.e-a.e):(u=C,p=7,h=v(r.e/p)-v(a.e/p)),A=M.length,I=B.length,w=(b=new R(F)).d=[],f=0;M[f]==(B[f]||0);f++);if(M[f]>(B[f]||0)&&h--,null==s?(E=s=R.precision,o=R.rounding):E=l?s+(r.e-a.e)+1:s,E<0)w.push(1),m=!0;else{if(E=E/p+2|0,f=0,1==A){for(d=0,M=M[0],E++;(f1&&(M=e(M,d,u),B=e(B,d,u),A=M.length,I=B.length),N=A,x=(_=B.slice(0,A)).length;x=u/2&&++D;do{d=0,(c=t(M,_,A,x))<0?(k=_[0],A!=x&&(k=k*u+(_[1]||0)),(d=k/D|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(M,d,u),_,y=g.length,x=_.length))&&(d--,n(g,A=10;d/=10)f++;b.e=f+h*p-1,O(b,l?s+b.e+1:s,o,m)}return b}}();function O(e,t,n,r){var a,s,i,o,l,u,c,h,f,d=e.constructor;e:if(null!=t){if(!(h=e.d))return e;for(a=1,o=h[0];o>=10;o/=10)a++;if((s=t-a)<0)s+=7,i=t,l=(c=h[f=0])/w(10,a-i-1)%10|0;else if((f=Math.ceil((s+1)/7))>=(o=h.length)){if(!r)break e;for(;o++<=f;)h.push(0);c=l=0,a=1,i=(s%=7)-7+1}else{for(c=o=h[f],a=1;o>=10;o/=10)a++;l=(i=(s%=7)-7+a)<0?0:c/w(10,a-i-1)%10|0}if(r=r||t<0||void 0!==h[f+1]||(i<0?c:c%w(10,a-i-1)),u=n<4?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(s>0?i>0?c/w(10,a-i):0:h[f-1])%10&1||n==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=w(10,(7-t%7)%7),e.e=-t||0):h[0]=e.e=0,e;if(0==s?(h.length=f,o=1,f--):(h.length=f+1,o=w(10,7-s),h[f]=i>0?(c/w(10,a-i)%w(10,i)|0)*o:0),u)for(;;){if(0==f){for(s=1,i=h[0];i>=10;i/=10)s++;for(i=h[0]+=o,o=1;i>=10;i/=10)o++;s!=o&&(e.e++,h[0]==C&&(h[0]=1));break}if(h[f]+=o,h[f]!=C)break;h[f--]=0,o=1}for(s=h.length;0===h[--s];)h.pop()}return p&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+z(r):i>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):a<0?(s="0."+z(-a-1)+s,n&&(r=n-i)>0&&(s+=z(r))):a>=i?(s+=z(a+1-i),n&&(r=n-a-1)>0&&(s=s+"."+z(r))):((r=a+1)0&&(a+1===i&&(s+="."),s+=z(r))),s}function M(e,t){var n=e[0];for(t*=7;n>=10;n/=10)t++;return t}function $(e,t,n){if(t>S)throw p=!0,n&&(e.precision=n),Error(y);return O(new e(h),t,1,!0)}function P(e,t,n){if(t>N)throw Error(y);return O(new e(f),t,n,!0)}function L(e){var t=e.length-1,n=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function z(e){for(var t="";e--;)t+="0";return t}function W(e,t,n,r){var a,s=new e(1),i=Math.ceil(r/7+4);for(p=!1;;){if(n%2&&Q((s=s.times(t)).d,i)&&(a=!0),0===(n=v(n/2))){n=s.d.length-1,a&&0===s.d[n]&&++s.d[n];break}Q((t=t.times(t)).d,i)}return p=!0,s}function U(e){return 1&e.d[e.d.length-1]}function V(e,t,n){for(var r,a=new e(t[0]),s=0;++s17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,l=m):l=t,o=new f(.03125);e.e>-2;)e=e.times(o),h+=5;for(l+=r=Math.log(w(2,h))/Math.LN10*2+5|0,n=s=i=new f(1),f.precision=l;;){if(s=O(s.times(e),l,1),n=n.times(++c),D((o=i.plus(F(s,n,l,1))).d).slice(0,l)===D(i.d).slice(0,l)){for(a=h;a--;)i=O(i.times(i),l,1);if(null!=t)return f.precision=m,i;if(!(u<3&&T(i.d,l-r,d,u)))return O(i,f.precision=m,d,p=!0);f.precision=l+=10,n=s=o=new f(1),c=0,u++}i=o}}function H(e,t){var n,r,a,s,i,o,l,u,c,h,f,d=1,m=e,g=m.d,y=m.constructor,b=y.rounding,v=y.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new y(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(null==t?(p=!1,c=v):c=t,y.precision=c+=10,r=(n=D(g)).charAt(0),!(Math.abs(s=m.e)<15e14))return u=$(y,c+2,v).times(s+""),m=H(new y(r+"."+n.slice(1)),c-10).plus(u),y.precision=v,null==t?O(m,v,b,p=!0):m;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=D((m=m.times(e)).d)).charAt(0),d++;for(s=m.e,r>1?(m=new y("0."+n),s++):m=new y(r+"."+n.slice(1)),h=m,l=i=m=F(m.minus(1),m.plus(1),c,1),f=O(m.times(m),c,1),a=3;;){if(i=O(i.times(f),c,1),D((u=l.plus(F(i,new y(a),c,1))).d).slice(0,c)===D(l.d).slice(0,c)){if(l=l.times(2),0!==s&&(l=l.plus($(y,c+2,v).times(s+""))),l=F(l,new y(d),c,1),null!=t)return y.precision=v,l;if(!T(l.d,c-10,b,o))return O(l,y.precision=v,b,p=!0);y.precision=c+=10,u=i=m=F(h.minus(1),h.plus(1),c,1),f=O(m.times(m),c,1),a=o=1}l=u,a+=2}}function G(e){return String(e.s*e.s/0)}function q(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);r++);for(a=t.length;48===t.charCodeAt(a-1);--a);if(t=t.slice(r,a)){if(a-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%7,n<0&&(r+=7),re.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(u=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),o=(i=t.indexOf("."))>=0,r=e.constructor,o&&(i=(l=(t=t.replace(".","")).length)-i,a=W(r,new r(n),i,2*i)),i=h=(c=R(t,n,C)).length-1;0===c[i];--i)c.pop();return i<0?new r(0*e.s):(e.e=M(c,h),e.d=c,p=!1,o&&(e=F(e,a,4*l)),u&&(e=e.times(Math.abs(u)<54?w(2,u):s.pow(2,u))),p=!0,e)}function X(e,t,n,r,a){var s,i,o,l,u=e.precision,c=Math.ceil(u/7);for(p=!1,l=n.times(n),o=new e(r);;){if(i=F(o.times(l),new e(t++*t++),u,1),o=a?r.plus(i):r.minus(i),r=F(i.times(l),new e(t++*t++),u,1),void 0!==(i=o.plus(r)).d[c]){for(s=c;i.d[s]===o.d[s]&&s--;);if(-1==s)break}s=o,o=r,r=i,i=s}return p=!0,i.d.length=c+1,i}function Y(e,t){for(var n=e;--t;)n*=e;return n}function J(e,t){var n,r=t.s<0,a=P(e,e.precision,1),s=a.times(.5);if((t=t.abs()).lte(s))return o=r?4:1,t;if((n=t.divToInt(a)).isZero())o=r?3:2;else{if((t=t.minus(n.times(a))).lte(s))return o=U(n)?r?2:3:r?4:1,t;o=U(n)?r?1:4:r?3:2}return t.minus(a).abs()}function Z(e,t,n,r){var a,s,o,l,h,f,d,p,m,g=e.constructor,y=void 0!==n;if(y?(A(n,1,u),void 0===r?r=g.rounding:A(r,0,8)):(n=g.precision,r=g.rounding),e.isFinite()){for(y?(a=2,16==t?n=4*n-3:8==t&&(n=3*n-2)):a=t,(o=(d=B(e)).indexOf("."))>=0&&(d=d.replace(".",""),(m=new g(1)).e=d.length-o,m.d=R(B(m),10,a),m.e=m.d.length),s=h=(p=R(d,10,a)).length;0==p[--h];)p.pop();if(p[0]){if(o<0?s--:((e=new g(e)).d=p,e.e=s,p=(e=F(e,m,n,r,0,a)).d,s=e.e,f=i),o=p[n],l=a/2,f=f||void 0!==p[n+1],f=r<4?(void 0!==o||f)&&(0===r||r===(e.s<0?3:2)):o>l||o===l&&(4===r||f||6===r&&1&p[n-1]||r===(e.s<0?8:7)),p.length=n,f)for(;++p[--n]>a-1;)p[n]=0,n||(++s,p.unshift(1));for(h=p.length;!p[h-1];--h);for(o=0,d="";o1)if(16==t||8==t){for(o=16==t?4:3,--h;h%o;h++)d+="0";for(h=(p=R(d,a,t)).length;!p[h-1];--h);for(o=1,d="1.";oh)for(s-=h;s--;)d+="0";else st)return e.length=t,!0}function ee(e){return new this(e).abs()}function te(e){return new this(e).acos()}function ne(e){return new this(e).acosh()}function re(e,t){return new this(e).plus(t)}function ae(e){return new this(e).asin()}function se(e){return new this(e).asinh()}function ie(e){return new this(e).atan()}function oe(e){return new this(e).atanh()}function le(e,t){e=new this(e),t=new this(t);var n,r=this.precision,a=this.rounding,s=r+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?P(this,r,a):new this(0)).s=e.s:!e.d||t.isZero()?(n=P(this,s,1).times(.5)).s=e.s:t.s<0?(this.precision=s,this.rounding=1,n=this.atan(F(e,t,s,1)),t=P(this,s,1),this.precision=r,this.rounding=a,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(F(e,t,s,1)):(n=P(this,s,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function ue(e){return new this(e).cbrt()}function ce(e){return O(e=new this(e),e.e+1,2)}function he(e){if(!e||"object"!=typeof e)throw Error(m+"Object expected");var t,n,r,a=!0===e.defaults,s=["precision",1,u,"rounding",0,8,"toExpNeg",-l,0,"toExpPos",0,l,"maxE",0,l,"minE",-l,0,"modulo",0,9];for(t=0;t=s[t+1]&&r<=s[t+2]))throw Error(g+n+": "+r);this[n]=r}if(n="crypto",a&&(this[n]=d[n]),void 0!==(r=e[n])){if(!0!==r&&!1!==r&&0!==r&&1!==r)throw Error(g+n+": "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(b);this[n]=!0}else this[n]=!1}return this}function fe(e){return new this(e).cos()}function de(e){return new this(e).cosh()}function pe(e,t){return new this(e).div(t)}function me(e){return new this(e).exp()}function ge(e){return O(e=new this(e),e.e+1,3)}function ye(){var e,t,n=new this(0);for(p=!1,e=0;e=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:o[s++]=a%1e7;else{if(!crypto.randomBytes)throw Error(b);for(t=crypto.randomBytes(r*=4);s=214e7?crypto.randomBytes(4).copy(t,s):(o.push(a%1e7),s+=4);s=r/4}else for(;s=10;a/=10)r++;r<7&&(n-=7-r)}return i.e=n,i.d=o,i}function De(e){return O(e=new this(e),e.e+1,this.rounding)}function Ae(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Te(e){return new this(e).sin()}function Re(e){return new this(e).sinh()}function Fe(e){return new this(e).sqrt()}function Oe(e,t){return new this(e).sub(t)}function Be(e){return new this(e).tan()}function Me(e){return new this(e).tanh()}function $e(e){return O(e=new this(e),e.e+1,1)}(s=function e(t){var n,r,a;function s(e){var t,n,r,a=this;if(!(a instanceof s))return new s(e);if(a.constructor=s,e instanceof s)return a.s=e.s,void(p?!e.d||e.e>s.maxE?(a.e=NaN,a.d=null):e.e=10;n/=10)t++;return void(p?t>s.maxE?(a.e=NaN,a.d=null):t{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,s;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(s=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,s[a]))return!1;for(a=r;0!=a--;){var i=s[a];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},5628:function(e,t){var n;!function(r){"use strict";var a={s:1,n:0,d:1};function s(e){function t(){var t=Error.apply(this,arguments);t.name=this.name=e,this.stack=t.stack,this.message=t.message}function n(){}return n.prototype=Error.prototype,t.prototype=new n,t}var i=f.DivisionByZero=s("DivisionByZero"),o=f.InvalidParameter=s("InvalidParameter");function l(e,t){return isNaN(e=parseInt(e,10))&&u(),e*t}function u(){throw new o}var c=function(e,t){var n,r=0,s=1,o=1,c=0,h=0,f=0,d=1,p=1,m=0,g=1,y=1,b=1,v=1e7;if(null==e);else if(void 0!==t)o=(r=e)*(s=t);else switch(typeof e){case"object":"d"in e&&"n"in e?(r=e.n,s=e.d,"s"in e&&(r*=e.s)):0 in e?(r=e[0],1 in e&&(s=e[1])):u(),o=r*s;break;case"number":if(e<0&&(o=e,e=-e),e%1==0)r=e;else if(e>0){for(e>=1&&(e/=p=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)));g<=v&&b<=v;){if(e===(n=(m+y)/(g+b))){g+b<=v?(r=m+y,s=g+b):b>g?(r=y,s=b):(r=m,s=g);break}e>n?(m+=y,g+=b):(y+=m,b+=g),g>v?(r=y,s=b):(r=m,s=g)}r*=p}else(isNaN(e)||isNaN(t))&&(s=r=NaN);break;case"string":if(null===(g=e.match(/\d+|./g))&&u(),"-"===g[m]?(o=-1,m++):"+"===g[m]&&m++,g.length===m+1?h=l(g[m++],o):"."===g[m+1]||"."===g[m]?("."!==g[m]&&(c=l(g[m++],o)),(1+ ++m===g.length||"("===g[m+1]&&")"===g[m+3]||"'"===g[m+1]&&"'"===g[m+3])&&(h=l(g[m],o),d=Math.pow(10,g[m].length),m++),("("===g[m]&&")"===g[m+2]||"'"===g[m]&&"'"===g[m+2])&&(f=l(g[m+1],o),p=Math.pow(10,g[m+1].length)-1,m+=3)):"/"===g[m+1]||":"===g[m+1]?(h=l(g[m],o),d=l(g[m+2],1),m+=3):"/"===g[m+3]&&" "===g[m+1]&&(c=l(g[m],o),h=l(g[m+2],o),d=l(g[m+4],1),m+=5),g.length<=m){o=r=f+(s=d*p)*c+p*h;break}default:u()}if(0===s)throw new i;a.s=o<0?-1:1,a.n=Math.abs(r),a.d=Math.abs(s)};function h(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function f(e,t){if(!(this instanceof f))return new f(e,t);c(e,t),e=f.REDUCE?h(a.d,a.n):1,this.s=a.s,this.n=a.n/e,this.d=a.d/e}f.REDUCE=1,f.prototype={s:1,n:0,d:1,abs:function(){return new f(this.n,this.d)},neg:function(){return new f(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),new f(this.s*this.n*a.d+a.s*this.d*a.n,this.d*a.d)},sub:function(e,t){return c(e,t),new f(this.s*this.n*a.d-a.s*this.d*a.n,this.d*a.d)},mul:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.n,this.d*a.d)},div:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.d,this.d*a.n)},clone:function(){return new f(this)},mod:function(e,t){return isNaN(this.n)||isNaN(this.d)?new f(NaN):void 0===e?new f(this.s*this.n%this.d,1):(c(e,t),0===a.n&&0===this.d&&f(0,0),new f(this.s*(a.d*this.n)%(a.n*this.d),a.d*this.d))},gcd:function(e,t){return c(e,t),new f(h(a.n,this.n)*h(a.d,this.d),a.d*this.d)},lcm:function(e,t){return c(e,t),0===a.n&&0===this.n?new f:new f(a.n*this.n,h(a.n,this.n)*h(a.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return new f(this.s*this.d,this.n)},pow:function(e){return e<0?new f(Math.pow(this.s*this.d,-e),Math.pow(this.n,-e)):new f(Math.pow(this.s*this.n,e),Math.pow(this.d,e))},equals:function(e,t){return c(e,t),this.s*this.n*a.d==a.s*a.n*this.d},compare:function(e,t){c(e,t);var n=this.s*this.n*a.d-a.s*a.n*this.d;return(00&&(n+=t,n+=" ",r%=a),n+=r,n+="/",n+=a),n},toLatex:function(e){var t,n="",r=this.n,a=this.d;return this.s<0&&(n+="-"),1===a?n+=r:(e&&(t=Math.floor(r/a))>0&&(n+=t,r%=a),n+="\\frac{",n+=r,n+="}{",n+=a,n+="}"),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do{r.push(Math.floor(t/n)),e=t%n,t=n,n=e}while(1!==t);return r},toString:function(e){var t,n=this.n,r=this.d;if(isNaN(n)||isNaN(r))return"NaN";f.REDUCE||(n/=t=h(n,r),r/=t),e=e||15;var a=function(e,t){for(;t%2==0;t/=2);for(;t%5==0;t/=5);if(1===t)return 0;for(var n=10%t,r=1;1!==n;r++)if(n=10*n%t,r>2e3)return 0;return r}(0,r),s=function(e,t,n){for(var r=1,a=function(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)1&t&&(r=r*e%n);return r}(10,n,t),s=0;s<300;s++){if(r===a)return s;r=10*r%t,a=10*a%t}return 0}(0,r,a),i=-1===this.s?"-":"";if(i+=n/r|0,n%=r,(n*=10)&&(i+="."),a){for(var o=s;o--;)i+=n/r|0,n%=r,n*=10;for(i+="(",o=a;o--;)i+=n/r|0,n%=r,n*=10;i+=")"}else for(o=e;n&&o--;)i+=n/r|0,n%=r,n*=10;return i}},void 0===(n=function(){return f}.apply(t,[]))||(e.exports=n)}()},1903:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)},3228:e=>{e.exports=function e(t,n){"use strict";var r,a,s=/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,i=/(^[ ]*|[ ]*$)/g,o=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,l=/^0x[0-9a-f]+$/i,u=/^0/,c=function(t){return e.insensitive&&(""+t).toLowerCase()||""+t},h=c(t).replace(i,"")||"",f=c(n).replace(i,"")||"",d=h.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),p=f.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),m=parseInt(h.match(l),16)||1!==d.length&&h.match(o)&&Date.parse(h),g=parseInt(f.match(l),16)||m&&f.match(o)&&Date.parse(f)||null;if(g){if(mg)return 1}for(var y=0,b=Math.max(d.length,p.length);ya)return 1}return 0}},8552:(e,t,n)=>{var r=n(852)(n(5639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(1789),a=n(401),s=n(7667),i=n(1327),o=n(1866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7040),a=n(4125),s=n(2117),i=n(7518),o=n(4705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Map");e.exports=r},3369:(e,t,n)=>{var r=n(4785),a=n(1285),s=n(6e3),i=n(9916),o=n(5265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Promise");e.exports=r},8525:(e,t,n)=>{var r=n(852)(n(5639),"Set");e.exports=r},8668:(e,t,n)=>{var r=n(3369),a=n(619),s=n(2385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t{var r=n(8407),a=n(7465),s=n(3779),i=n(7599),o=n(4758),l=n(4309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=s,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,e.exports=u},2705:(e,t,n)=>{var r=n(5639).Symbol;e.exports=r},1149:(e,t,n)=>{var r=n(5639).Uint8Array;e.exports=r},577:(e,t,n)=>{var r=n(852)(n(5639),"WeakMap");e.exports=r},7412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,s=[];++n{var r=n(2545),a=n(5694),s=n(1469),i=n(4144),o=n(5776),l=n(6719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=s(e),c=!n&&a(e),h=!n&&!c&&i(e),f=!n&&!c&&!h&&l(e),d=n||c||h||f,p=d?r(e.length,String):[],m=p.length;for(var g in e)!t&&!u.call(e,g)||d&&("length"==g||h&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||o(g,m))||p.push(g);return p}},9932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{var r=n(371)("length");e.exports=r},4286:e=>{e.exports=function(e){return e.split("")}},4865:(e,t,n)=>{var r=n(9465),a=n(7813),s=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];s.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},8470:(e,t,n)=>{var r=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},4037:(e,t,n)=>{var r=n(8363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},3886:(e,t,n)=>{var r=n(8363),a=n(1704);e.exports=function(e,t){return e&&r(t,a(t),e)}},9465:(e,t,n)=>{var r=n(8777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},5990:(e,t,n)=>{var r=n(6384),a=n(7412),s=n(4865),i=n(4037),o=n(3886),l=n(4626),u=n(278),c=n(8805),h=n(1911),f=n(8234),d=n(6904),p=n(4160),m=n(3824),g=n(9148),y=n(8517),b=n(1469),v=n(4144),w=n(6688),_=n(3218),x=n(2928),k=n(3674),E=n(1704),C="[object Arguments]",S="[object Function]",N="[object Object]",I={};I[C]=I["[object Array]"]=I["[object ArrayBuffer]"]=I["[object DataView]"]=I["[object Boolean]"]=I["[object Date]"]=I["[object Float32Array]"]=I["[object Float64Array]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Map]"]=I["[object Number]"]=I[N]=I["[object RegExp]"]=I["[object Set]"]=I["[object String]"]=I["[object Symbol]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I["[object Error]"]=I[S]=I["[object WeakMap]"]=!1,e.exports=function e(t,n,D,A,T,R){var F,O=1&n,B=2&n,M=4&n;if(D&&(F=T?D(t,A,T,R):D(t)),void 0!==F)return F;if(!_(t))return t;var $=b(t);if($){if(F=m(t),!O)return u(t,F)}else{var P=p(t),L=P==S||"[object GeneratorFunction]"==P;if(v(t))return l(t,O);if(P==N||P==C||L&&!T){if(F=B||L?{}:y(t),!O)return B?h(t,o(F,t)):c(t,i(F,t))}else{if(!I[P])return T?t:{};F=g(t,P,O)}}R||(R=new r);var z=R.get(t);if(z)return z;R.set(t,F),x(t)?t.forEach((function(r){F.add(e(r,n,D,r,t,R))})):w(t)&&t.forEach((function(r,a){F.set(a,e(r,n,D,a,t,R))}));var W=$?void 0:(M?B?d:f:B?E:k)(t);return a(W||t,(function(r,a){W&&(r=t[a=r]),s(F,a,e(r,n,D,a,t,R))})),F}},3118:(e,t,n)=>{var r=n(3218),a=Object.create,s=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=s},6029:(e,t,n)=>{var r=n(3448);e.exports=function(e,t,n){for(var a=-1,s=e.length;++a{e.exports=function(e,t,n,r){for(var a=e.length,s=n+(r?1:-1);r?s--:++s{var r=n(2488),a=n(7285);e.exports=function e(t,n,s,i,o){var l=-1,u=t.length;for(s||(s=a),o||(o=[]);++l0&&s(c)?n>1?e(c,n-1,s,i,o):r(o,c):i||(o[o.length]=c)}return o}},8483:(e,t,n)=>{var r=n(5063)();e.exports=r},7816:(e,t,n)=>{var r=n(8483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},7786:(e,t,n)=>{var r=n(1811),a=n(327);e.exports=function(e,t){for(var n=0,s=(t=r(t,e)).length;null!=e&&n{var r=n(2488),a=n(1469);e.exports=function(e,t,n){var s=t(e);return a(e)?s:r(s,n(e))}},4239:(e,t,n)=>{var r=n(2705),a=n(9607),s=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):s(e)}},3325:e=>{e.exports=function(e,t){return e>t}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,n)=>{var r=n(1848),a=n(2722),s=n(2351);e.exports=function(e,t,n){return t==t?s(e,t,n):r(e,a,n)}},9454:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},939:(e,t,n)=>{var r=n(2492),a=n(7005);e.exports=function e(t,n,s,i,o){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,s,i,e,o))}},2492:(e,t,n)=>{var r=n(6384),a=n(7114),s=n(8351),i=n(6096),o=n(4160),l=n(1469),u=n(4144),c=n(6719),h="[object Arguments]",f="[object Array]",d="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,y){var b=l(e),v=l(t),w=b?f:o(e),_=v?f:o(t),x=(w=w==h?d:w)==d,k=(_=_==h?d:_)==d,E=w==_;if(E&&u(e)){if(!u(t))return!1;b=!0,x=!1}if(E&&!x)return y||(y=new r),b||c(e)?a(e,t,n,m,g,y):s(e,t,w,n,m,g,y);if(!(1&n)){var C=x&&p.call(e,"__wrapped__"),S=k&&p.call(t,"__wrapped__");if(C||S){var N=C?e.value():e,I=S?t.value():t;return y||(y=new r),g(N,I,n,m,y)}}return!!E&&(y||(y=new r),i(e,t,n,m,g,y))}},5588:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(6384),a=n(939);e.exports=function(e,t,n,s){var i=n.length,o=i,l=!s;if(null==e)return!o;for(e=Object(e);i--;){var u=n[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i{e.exports=function(e){return e!=e}},8458:(e,t,n)=>{var r=n(3560),a=n(5346),s=n(3218),i=n(346),o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,h=u.hasOwnProperty,f=RegExp("^"+c.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||a(e))&&(r(e)?f:o).test(i(e))}},3933:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object RegExp]"==r(e)}},9221:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},8749:(e,t,n)=>{var r=n(4239),a=n(1780),s=n(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return s(e)&&a(e.length)&&!!i[r(e)]}},7206:(e,t,n)=>{var r=n(1573),a=n(6432),s=n(6557),i=n(1469),o=n(9601);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):o(e)}},280:(e,t,n)=>{var r=n(5726),a=n(6916),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))s.call(e,n)&&"constructor"!=n&&t.push(n);return t}},313:(e,t,n)=>{var r=n(3218),a=n(5726),s=n(3498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return s(e);var t=a(e),n=[];for(var o in e)("constructor"!=o||!t&&i.call(e,o))&&n.push(o);return n}},1573:(e,t,n)=>{var r=n(2958),a=n(1499),s=n(2634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},6432:(e,t,n)=>{var r=n(939),a=n(7361),s=n(9095),i=n(5403),o=n(9162),l=n(2634),u=n(327);e.exports=function(e,t){return i(e)&&o(t)?l(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?s(n,e):r(t,i,3)}}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,n)=>{var r=n(7786);e.exports=function(e){return function(t){return r(t,e)}}},4259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(a);++r{e.exports=function(e,t){for(var n=-1,r=Array(e);++n{var r=n(2705),a=n(9932),s=n(1469),i=n(3448),o=r?r.prototype:void 0,l=o?o.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(s(t))return a(t,e)+"";if(i(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},1717:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,n)=>{var r=n(9932);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},4290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},1811:(e,t,n)=>{var r=n(1469),a=n(5403),s=n(5514),i=n(9833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:s(i(e))}},180:(e,t,n)=>{var r=n(4259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},5512:(e,t,n)=>{var r=n(2118);e.exports=function(e,t){for(var n=e.length;n--&&r(t,e[n],0)>-1;);return n}},4318:(e,t,n)=>{var r=n(1149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4626:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a?r.Buffer:void 0,o=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}},7157:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},419:(e,t,n)=>{var r=n(2705),a=r?r.prototype:void 0,s=a?a.valueOf:void 0;e.exports=function(e){return s?Object(s.call(e)):{}}},7133:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{var r=n(4865),a=n(9465);e.exports=function(e,t,n,s){var i=!n;n||(n={});for(var o=-1,l=t.length;++o{var r=n(8363),a=n(9551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(8363),a=n(1442);e.exports=function(e,t){return r(e,a(e),t)}},4429:(e,t,n)=>{var r=n(5639)["__core-js_shared__"];e.exports=r},5063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,s=Object(t),i=r(t),o=i.length;o--;){var l=i[e?o:++a];if(!1===n(s[l],l,s))break}return t}}},8777:(e,t,n)=>{var r=n(852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},7114:(e,t,n)=>{var r=n(8668),a=n(2908),s=n(4757);e.exports=function(e,t,n,i,o,l){var u=1&n,c=e.length,h=t.length;if(c!=h&&!(u&&h>c))return!1;var f=l.get(e),d=l.get(t);if(f&&d)return f==t&&d==e;var p=-1,m=!0,g=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++p{var r=n(2705),a=n(1149),s=n(7813),i=n(7114),o=n(8776),l=n(1814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,h,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!h(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return s(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=o;case"[object Set]":var p=1&r;if(d||(d=l),e.size!=t.size&&!p)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(d(e),d(t),r,u,h,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},6096:(e,t,n)=>{var r=n(8234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,s,i,o){var l=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!l)return!1;for(var h=c;h--;){var f=u[h];if(!(l?f in t:a.call(t,f)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var m=!0;o.set(e,t),o.set(t,e);for(var g=l;++h{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},8234:(e,t,n)=>{var r=n(8866),a=n(9551),s=n(3674);e.exports=function(e){return r(e,s,a)}},6904:(e,t,n)=>{var r=n(8866),a=n(1442),s=n(1704);e.exports=function(e){return r(e,s,a)}},5050:(e,t,n)=>{var r=n(7019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(9162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var s=t[n],i=e[s];t[n]=[s,i,r(i)]}return t}},852:(e,t,n)=>{var r=n(8458),a=n(7801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},5924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},9607:(e,t,n)=>{var r=n(2705),a=Object.prototype,s=a.hasOwnProperty,i=a.toString,o=r?r.toStringTag:void 0;e.exports=function(e){var t=s.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch(e){}var a=i.call(e);return r&&(t?e[o]=n:delete e[o]),a}},9551:(e,t,n)=>{var r=n(4963),a=n(479),s=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,o=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return s.call(e,t)})))}:a;e.exports=o},1442:(e,t,n)=>{var r=n(2488),a=n(5924),s=n(9551),i=n(479),o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,s(e)),e=a(e);return t}:i;e.exports=o},4160:(e,t,n)=>{var r=n(8552),a=n(7071),s=n(3818),i=n(8525),o=n(577),l=n(4239),u=n(346),c="[object Map]",h="[object Promise]",f="[object Set]",d="[object WeakMap]",p="[object DataView]",m=u(r),g=u(a),y=u(s),b=u(i),v=u(o),w=l;(r&&w(new r(new ArrayBuffer(1)))!=p||a&&w(new a)!=c||s&&w(s.resolve())!=h||i&&w(new i)!=f||o&&w(new o)!=d)&&(w=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return p;case g:return c;case y:return h;case b:return f;case v:return d}return t}),e.exports=w},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(1811),a=n(5694),s=n(1469),i=n(5776),o=n(1780),l=n(327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,h=!1;++u{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},1789:(e,t,n)=>{var r=n(4536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},1866:(e,t,n)=>{var r=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},3824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},9148:(e,t,n)=>{var r=n(4318),a=n(7157),s=n(3147),i=n(419),o=n(7133);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return a(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return s(e);case"[object Set]":return new l;case"[object Symbol]":return i(e)}}},8517:(e,t,n)=>{var r=n(3118),a=n(5924),s=n(5726);e.exports=function(e){return"function"!=typeof e.constructor||s(e)?{}:r(a(e))}},7285:(e,t,n)=>{var r=n(2705),a=n(5694),s=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return s(e)||a(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e{var r=n(1469),a=n(3448),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||i.test(e)||!s.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var r,a=n(4429),s=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!s&&s in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9162:(e,t,n)=>{var r=n(3218);e.exports=function(e){return e==e&&!r(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var r=n(8470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():a.call(t,n,1),--this.size,0))}},2117:(e,t,n)=>{var r=n(8470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},7518:(e,t,n)=>{var r=n(8470);e.exports=function(e){return r(this.__data__,e)>-1}},4705:(e,t,n)=>{var r=n(8470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},4785:(e,t,n)=>{var r=n(1989),a=n(8407),s=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(s||a),string:new r}}},1285:(e,t,n)=>{var r=n(5050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).get(e)}},9916:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).has(e)}},5265:(e,t,n)=>{var r=n(5050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},2634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},4523:(e,t,n)=>{var r=n(8306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},4536:(e,t,n)=>{var r=n(852)(Object,"create");e.exports=r},6916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},3498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},1167:(e,t,n)=>{e=n.nmd(e);var r=n(1957),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a&&r.process,o=function(){try{return s&&s.require&&s.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=o},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5639:(e,t,n)=>{var r=n(1957),a="object"==typeof self&&self&&self.Object===Object&&self,s=r||a||Function("return this")();e.exports=s},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},7465:(e,t,n)=>{var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var r=n(8407),a=n(7071),s=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new s(i)}return n.set(e,t),this.size=n.size,this}},2351:e=>{e.exports=function(e,t,n){for(var r=n-1,a=e.length;++r{var r=n(8983),a=n(2689),s=n(8816);e.exports=function(e){return a(e)?s(e):r(e)}},3140:(e,t,n)=>{var r=n(4286),a=n(2689),s=n(676);e.exports=function(e){return a(e)?s(e):r(e)}},5514:(e,t,n)=>{var r=n(4523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(s,"$1"):n||e)})),t}));e.exports=i},327:(e,t,n)=>{var r=n(3448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},8816:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){for(var t=c.lastIndex=0;c.test(e);)++t;return t}},676:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){return e.match(c)||[]}},361:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,5)}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5564:(e,t,n)=>{var r=n(1078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},7361:(e,t,n)=>{var r=n(7786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},9095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},5694:(e,t,n)=>{var r=n(9454),a=n(7005),s=Object.prototype,i=s.hasOwnProperty,o=s.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!o.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var r=n(3560),a=n(1780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},1584:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return!0===e||!1===e||a(e)&&"[object Boolean]"==r(e)}},4144:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=n(5062),s=t&&!t.nodeType&&t,i=s&&e&&!e.nodeType&&e,o=i&&i.exports===s?r.Buffer:void 0,l=(o?o.isBuffer:void 0)||a;e.exports=l},3560:(e,t,n)=>{var r=n(4239),a=n(3218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:(e,t,n)=>{var r=n(5588),a=n(1717),s=n(1167),i=s&&s.isMap,o=i?a(i):r;e.exports=o},1763:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"number"==typeof e||a(e)&&"[object Number]"==r(e)}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},6347:(e,t,n)=>{var r=n(3933),a=n(1717),s=n(1167),i=s&&s.isRegExp,o=i?a(i):r;e.exports=o},2928:(e,t,n)=>{var r=n(9221),a=n(1717),s=n(1167),i=s&&s.isSet,o=i?a(i):r;e.exports=o},7037:(e,t,n)=>{var r=n(4239),a=n(1469),s=n(7005);e.exports=function(e){return"string"==typeof e||!a(e)&&s(e)&&"[object String]"==r(e)}},3448:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},6719:(e,t,n)=>{var r=n(8749),a=n(1717),s=n(1167),i=s&&s.isTypedArray,o=i?a(i):r;e.exports=o},2353:e=>{e.exports=function(e){return void 0===e}},3674:(e,t,n)=>{var r=n(4636),a=n(280),s=n(8612);e.exports=function(e){return s(e)?r(e):a(e)}},1704:(e,t,n)=>{var r=n(4636),a=n(313),s=n(8612);e.exports=function(e){return s(e)?r(e,!0):a(e)}},6604:(e,t,n)=>{var r=n(9465),a=n(7816),s=n(7206);e.exports=function(e,t){var n={};return t=s(t,3),a(e,(function(e,a,s){r(n,a,t(e,a,s))})),n}},6162:(e,t,n)=>{var r=n(6029),a=n(3325),s=n(6557);e.exports=function(e){return e&&e.length?r(e,s,a):void 0}},8306:(e,t,n)=>{var r=n(3369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=n.cache;if(s.has(a))return s.get(a);var i=e.apply(this,r);return n.cache=s.set(a,i)||s,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},9601:(e,t,n)=>{var r=n(371),a=n(9152),s=n(5403),i=n(327);e.exports=function(e){return s(e)?r(i(e)):a(e)}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8913:(e,t,n)=>{var r=n(2545),a=n(4290),s=n(554),i=4294967295,o=Math.min;e.exports=function(e,t){if((e=s(e))<1||e>9007199254740991)return[];var n=i,l=o(e,i);t=a(t),e-=i;for(var u=r(l,t);++n{var r=n(4841);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,n)=>{var r=n(8601);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},4841:(e,t,n)=>{var r=n(3218),a=n(3448),s=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var n=o.test(e);return n||l.test(e)?u(e.slice(2),n?2:8):i.test(e)?NaN:+e}},9833:(e,t,n)=>{var r=n(531);e.exports=function(e){return null==e?"":r(e)}},691:(e,t,n)=>{var r=n(531),a=n(180),s=n(5512),i=n(3140),o=n(9833),l=/\s+$/;e.exports=function(e,t,n){if((e=o(e))&&(n||void 0===t))return e.replace(l,"");if(!e||!(t=r(t)))return e;var u=i(e),c=s(u,i(t))+1;return a(u,0,c).join("")}},9138:(e,t,n)=>{var r=n(531),a=n(180),s=n(2689),i=n(3218),o=n(6347),l=n(8016),u=n(3140),c=n(554),h=n(9833),f=/\w*$/;e.exports=function(e,t){var n=30,d="...";if(i(t)){var p="separator"in t?t.separator:p;n="length"in t?c(t.length):n,d="omission"in t?r(t.omission):d}var m=(e=h(e)).length;if(s(e)){var g=u(e);m=g.length}if(n>=m)return e;var y=n-l(d);if(y<1)return d;var b=g?a(g,0,y).join(""):e.slice(0,y);if(void 0===p)return b+d;if(g&&(y+=b.length-y),o(p)){if(e.slice(y).search(p)){var v,w=b;for(p.global||(p=RegExp(p.source,h(f.exec(p))+"g")),p.lastIndex=0;v=p.exec(w);)var _=v.index;b=b.slice(0,void 0===_?y:_)}}else if(e.indexOf(r(p),y)!=y){var x=b.lastIndexOf(p);x>-1&&(b=b.slice(0,x))}return b+d}},2628:(e,t,n)=>{var r=n(7415),a=n(3674);e.exports=function(e){return null==e?[]:r(e,a(e))}},3346:(e,t,n)=>{"use strict";n.d(t,{C2o:()=>kn,xJM:()=>nn,qoR:()=>xn,CAK:()=>_n});var r={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function a(){return(a=Object.assign||function(e){for(var t=1;tt.re?1:e.ret.im?1:e.im=0?"+":"")+r.toString()}(e,n);case"auto":var a=t&&void 0!==t.lowerExp?t.lowerExp:-3,s=t&&void 0!==t.upperExp?t.upperExp:5;if(e.isZero())return"0";var i=e.toSignificantDigits(n),o=i.e;return(o>=a&&o=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function $(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function P(e,t,n){var r,a=e.length;if(a!==t[n])throw new B(a,t[n]);if(n")}function L(e,t){if(0===t.length){if(Array.isArray(e))throw new B(e.length,0)}else P(e,t,0)}function z(e,t){if(!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&e>=t)throw new M(e,t)}function W(e,t,n){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach((function(e){if(!(0,i.hj)(e)||!(0,g.U)(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+F(t)+")")})),U(e,t,0,void 0!==n?n:0),e}function U(e,t,n,r){var a,s,i=e.length,o=t[n],l=Math.min(i,o);if(e.length=o,n");h(e,t.max().map((function(e){return e+1})),r);var d=s.length;o(e._data,t,n,d,0)}return e}function o(e,t,n,r,a){var s=a===r-1,i=t.dimension(a);s?i.forEach((function(t,r){z(t),e[t]=n[r[0]]})):i.forEach((function(s,i){z(s),o(e[s],t,n[i[0]],r,a+1)}))}function u(e,t,n){if(0===t.length){for(var r=e._data;(0,i.kJ)(r);)r=r[0];return r}return e._size=t.slice(0),e._data=W(e._data,e._size,n),e}function h(e,t,n){for(var r=e._size.slice(0),a=!1;r.lengthr[s]&&(r[s]=t[s],a=!0);a&&u(e,r,n)}function f(e){for(var t=0,n=e.length;t0?e:0,r=e<0?-e:0,a=this._size[0],s=this._size[1],o=Math.min(a-r,s-t),l=[],u=0;u0?r:0,l=r<0?-r:0,u=e[0],c=e[1],h=Math.min(u-l,c-o);if((0,i.kJ)(t)){if(t.length!==h)throw new Error("Invalid value array length");s=function(e){return t[e]}}else if((0,i.SW)(t)){var f=t.size();if(1!==f.length||f[0]!==h)throw new Error("Invalid matrix length");s=function(e){return t.get([e])}}else s=function(){return t};a||(a=(0,i.l9)(s(0))?s(0).mul(0):0);var d=[];if(e.length>0){d=W(d,e,a);for(var p=0;p15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+e+"). Use function bignumber(x) to convert to BigNumber.");return new t(e)}},{from:"number",to:"Complex",convert:function(e){return n||Q(e),new n(e,0)}},{from:"number",to:"string",convert:function(e){return e+""}},{from:"BigNumber",to:"Complex",convert:function(e){return n||Q(e),new n(e.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function(e){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(e){return n||Q(e),new n(e.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(e){a||ee(e);var t=new a(e);if(t.valueOf()!==e)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+e+"). Use function fraction(x) to convert to Fraction.");return t}},{from:"string",to:"number",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert "'+e+'" to a number');return t}},{from:"string",to:"BigNumber",convert:function(e){t||Z(e);try{return new t(e)}catch(t){throw new Error('Cannot convert "'+e+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function(e){a||ee(e);try{return new a(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(e){n||Q(e);try{return new n(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Complex')}}},{from:"boolean",to:"number",convert:function(e){return+e}},{from:"boolean",to:"BigNumber",convert:function(e){return t||Z(e),new t(+e)}},{from:"boolean",to:"Fraction",convert:function(e){return a||ee(e),new a(+e)}},{from:"boolean",to:"string",convert:function(e){return String(e)}},{from:"Array",to:"Matrix",convert:function(e){return r||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new r(e)}},{from:"Matrix",to:"Array",convert:function(e){return e.valueOf()}}],s}));function Z(e){throw new Error("Cannot convert value ".concat(e," into a BigNumber: no class 'BigNumber' provided"))}function Q(e){throw new Error("Cannot convert value ".concat(e," into a Complex number: no class 'Complex' provided"))}function ee(e){throw new Error("Cannot convert value ".concat(e," into a Fraction, no class 'Fraction' provided."))}function te(e,t){(0,i.SW)(e)&&(e=e.valueOf());for(var n=0,r=e.length;nMath.pow(2,32)-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));2147483648&t&&(t=-1*~(t-1))}return t},BigNumber:function(e){return e.toNumber()},Fraction:function(e){return e.valueOf()},Unit:function(e){throw new Error("Second argument with valueless unit expected")},null:function(e){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":function(e){return ne(e,this)}});return t.fromJSON=function(e){return parseFloat(e.value)},t}))),pe="number",me="number, number";function ge(e){return Math.abs(e)}function ye(e,t){return e+t}function be(e,t){return e*t}function ve(e){return-e}ge.signature=pe,ye.signature=me,be.signature=me,ve.signature=pe;var we="apply",_e=f(we,["typed","isInteger"],(function(e){var t=e.typed,n=e.isInteger;return t(we,{"Array | Matrix, number | BigNumber, function":function(e,t,r){if(!n(t))throw new TypeError("Integer number expected for dimension");var a=Array.isArray(e)?$(e):e.size();if(t<0||t>=a.length)throw new M(t,a.length);return(0,i.SW)(e)?e.create(xe(e.valueOf(),t,r)):xe(e,t,r)}})}));function xe(e,t,n){var r,a,s;if(t<=0){if(Array.isArray(e[0])){for(s=function(e){var t,n,r=e.length,a=e[0].length,s=[];for(n=0;nMath.pow(2,31)-1||n<-Math.pow(2,31))throw new Error("Value must be in range [-2^31, 2^31-1]");if(!(0,g.U)(n))throw new Error("Value must be an integer");return n<0&&(n+=Math.pow(2,32)),"".concat(t).concat(n.toString(e))}}Math.pow(2,53);var Ce=["typed"];function Se(e,t){return f(e,Ce,(function(n){return(0,n.typed)(e,{number:Ee(t)})}))}Se("oct",8);n(2424);n(7905);var Ne=f("fraction",["typed","Fraction"],(function(e){var t=e.typed,n=e.Fraction;return t("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new n(e)},string:function(e){return new n(e)},"number, number":function(e,t){return new n(e,t)},null:function(e){return new n(0)},BigNumber:function(e){return new n(e.toString())},Fraction:function(e){return e},Object:function(e){return new n(e)},"Array | Matrix":function(e){return ne(e,this)}})})),Ie="unaryMinus",De=f(Ie,["typed"],(function(e){return(0,e.typed)(Ie,{number:ve,Complex:function(e){return e.neg()},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=this(e.value),t},"Array | Matrix":function(e){return ne(e,this,!0)}})})),Ae="addScalar",Te=f(Ae,["typed"],(function(e){return(0,e.typed)(Ae,{"number, number":ye,"Complex, Complex":function(e,t){return e.add(t)},"BigNumber, BigNumber":function(e,t){return e.plus(t)},"Fraction, Fraction":function(e,t){return e.add(t)},"Unit, Unit":function(e,t){if(null===e.value||void 0===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value||void 0===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n}})})),Re=f("sqrt",["config","typed","Complex"],(function(e){var t=e.config,n=e.typed,r=e.Complex;return n("sqrt",{number:a,Complex:function(e){return e.sqrt()},BigNumber:function(e){return!e.isNegative()||t.predictable?e.sqrt():a(e.toNumber())},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.pow(.5)}});function a(e){return isNaN(e)?NaN:e>=0||t.predictable?Math.sqrt(e):new r(e,0).sqrt()}})),Fe="conj",Oe=f(Fe,["typed"],(function(e){return(0,e.typed)(Fe,{number:function(e){return e},BigNumber:function(e){return e},Complex:function(e){return e.conjugate()},"Array | Matrix":function(e){return ne(e,this)}})})),Be="mode",Me=f(Be,["typed","isNaN","isNumeric"],(function(e){var t=e.typed,n=e.isNaN,r=e.isNumeric;return t(Be,{"Array | Matrix":a,"...":function(e){return a(e)}});function a(e){if(0===(e=H(e.valueOf())).length)throw new Error("Cannot calculate mode of an empty array");for(var t={},a=[],s=0,i=0;is&&(s=t[o],a=[o])}return a}}));Se("bin",2);var $e=f("SparseMatrix",["typed","equalScalar","Matrix"],(function(e){var t=e.typed,n=e.equalScalar,r=e.Matrix;function a(e,t){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(t&&!(0,i.HD)(t))throw new Error("Invalid datatype: "+t);if((0,i.SW)(e))!function(e,t,n){"SparseMatrix"===t.type?(e._values=t._values?l(t._values):void 0,e._index=l(t._index),e._ptr=l(t._ptr),e._size=l(t._size),e._datatype=n||t._datatype):s(e,t.valueOf(),n||t._datatype)}(this,e,t);else if(e&&(0,i.kJ)(e.index)&&(0,i.kJ)(e.ptr)&&(0,i.kJ)(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=t||e.datatype;else if((0,i.kJ)(e))s(this,e,t);else{if(e)throw new TypeError("Unsupported type of data ("+(0,i.kM)(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=t}}function s(e,r,a){e._values=[],e._index=[],e._ptr=[],e._datatype=a;var s=r.length,o=0,l=n,u=0;if((0,i.HD)(a)&&(l=t.find(n,[a,a])||n,u=t.convert(0,a)),s>0){var c=0;do{e._ptr.push(e._index.length);for(var h=0;h");for(var h=t.min()[0],f=t.min()[1],d=a[0],p=a[1],m=0;mm){for(h=m;hp){if(d){var g=0;for(h=0;hr-1&&(e._values.splice(f,1),e._index.splice(f,1),b++)}e._ptr[h]=e._values.length}return e._size[0]=r,e._size[1]=a,e}function p(e,t,n,r,a){var s,i,o=r[0],u=r[1],c=[];for(s=0;sl-1||o>u-1)&&(d(this,Math.max(s+1,l),Math.max(o+1,u),a),l=this._size[0],u=this._size[1]),z(s,l),z(o,u);var m=h(s,this._ptr[o],this._ptr[o+1],this._index);return m=0&&_<=s&&g(e._values[w],_-0,y-0)}else{for(var x={},k=b;k "+(this._values?F(this._values[l],e):"X");return a},a.prototype.toString=function(){return F(this.toArray())},a.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(e){if(e){if((0,i.l9)(e)&&(e=e.toNumber()),!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var t=e>0?e:0,n=e<0?-e:0,r=this._size[0],s=this._size[1],o=Math.min(r-n,s-t),l=[],u=[],c=[];c[0]=0;for(var h=t;h0?s:0,d=s<0?-s:0,p=e[0],m=e[1],y=Math.min(p-d,m-f);if((0,i.kJ)(r)){if(r.length!==y)throw new Error("Invalid value array length");h=function(e){return r[e]}}else if((0,i.SW)(r)){var b=r.size();if(1!==b.length||b[0]!==y)throw new Error("Invalid matrix length");h=function(e){return r.get([e])}}else h=function(){return r};for(var v=[],w=[],_=[],x=0;x=0&&k=l||a[c]!==t)){var d=r?r[u]:void 0;a.splice(c,0,t),r&&r.splice(c,0,d),a.splice(c<=u?u+1:u,1),r&&r.splice(c<=u?u+1:u,1)}else if(c=l||a[u]!==e)){var p=r?r[c]:void 0;a.splice(u,0,e),r&&r.splice(u,0,p),a.splice(u<=c?c+1:c,1),r&&r.splice(u<=c?c+1:c,1)}}},a}),{isClass:!0}),Pe="matrix",Le=f(Pe,["typed","Matrix","DenseMatrix","SparseMatrix"],(function(e){var t=e.typed,n=(e.Matrix,e.DenseMatrix),r=e.SparseMatrix;return t(Pe,{"":function(){return a([])},string:function(e){return a([],e)},"string, string":function(e,t){return a([],e,t)},Array:function(e){return a(e)},Matrix:function(e){return a(e,e.storage())},"Array | Matrix, string":a,"Array | Matrix, string, string":a});function a(e,t,a){if("dense"===t||"default"===t||void 0===t)return new n(e,a);if("sparse"===t)return new r(e,a);throw new TypeError("Unknown matrix type "+JSON.stringify(t)+".")}})),ze=f("algorithm01",["typed"],(function(e){var t=e.typed;return function(e,n,r,a){var s=e._data,i=e._size,o=e._datatype,l=n._values,u=n._index,c=n._ptr,h=n._size,f=n._datatype;if(i.length!==h.length)throw new B(i.length,h.length);if(i[0]!==h[0]||i[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+i+") must match Matrix B ("+h+")");if(!l)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,p,m=i[0],g=i[1],y="string"==typeof o&&o===f?o:void 0,b=y?t.find(r,[y,y]):r,v=[];for(d=0;d0?n(p,0,f,f[0],i,u):[];return e.createDenseMatrix({data:m,size:f,datatype:s})};function n(e,t,r,a,s,i){var o=[];if(t===r.length-1)for(var l=0;l0?n(h,0,u,u[0],o,r,s):[];return e.createDenseMatrix({data:f,size:l(u),datatype:i})};function n(e,t,r,a,s,i,o){var l=[];if(t===r.length-1)for(var u=0;ut?1:-1},"number, number":function(e,t){return(0,g.RI)(e,t,n.epsilon)?0:e>t?1:-1},"BigNumber, BigNumber":function(e,t){return ce(e,t,n.epsilon)?new s(0):new s(e.cmp(t))},"Fraction, Fraction":function(e,t){return new i(e.compare(t))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return l(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return h(e,t,this)},"Array, Array":function(e,t){return this(a(e),a(t)).valueOf()},"Array, Matrix":function(e,t){return this(a(e),t)},"Matrix, Array":function(e,t){return this(e,a(t))},"SparseMatrix, any":function(e,t){return c(e,t,this,!1)},"DenseMatrix, any":function(e,t){return f(e,t,this,!1)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(a(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(a(t),e,this,!0).valueOf()}})})),at="smaller",st=f(at,["typed","config","matrix","DenseMatrix"],(function(e){var t=e.typed,n=e.config,r=e.matrix,a=e.DenseMatrix,s=He({typed:t}),i=Xe({typed:t,DenseMatrix:a}),o=Ke({typed:t,DenseMatrix:a}),l=Ve({typed:t}),u=je({typed:t});return t(at,{"boolean, boolean":function(e,t){return et},"number, number":function(e,t){return e>t&&!(0,g.RI)(e,t,n.epsilon)},"BigNumber, BigNumber":function(e,t){return e.gt(t)&&!ce(e,t,n.epsilon)},"Fraction, Fraction":function(e,t){return 1===e.compare(t)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return i(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return s(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return s(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return l(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return o(e,t,this,!1)},"DenseMatrix, any":function(e,t){return u(e,t,this,!1)},"any, SparseMatrix":function(e,t){return o(t,e,this,!0)},"any, DenseMatrix":function(e,t){return u(t,e,this,!0)},"Array, any":function(e,t){return u(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return u(r(t),e,this,!0).valueOf()}})})),lt="unequal",ut=(f(lt,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(lt,{"any, any":function(e,t){return null===e?null!==t:null===t?null!==e:void 0===e?void 0!==t:void 0===t?void 0!==e:!n(e,t)}})})),f("FibonacciHeap",["smaller","larger"],(function(e){var t=e.smaller,n=e.larger,r=1/Math.log((1+Math.sqrt(5))/2);function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function s(e,t,n){t.left.right=t.right,t.right.left=t.left,n.degree--,n.child===t&&(n.child=t.right),0===n.degree&&(n.child=null),t.left=e,t.right=e.right,e.right=t,t.right.left=t,t.parent=null,t.mark=!1}function i(e,t){var n=t.parent;n&&(t.mark?(s(e,t,n),i(n)):t.mark=!0)}a.prototype.type="FibonacciHeap",a.prototype.isFibonacciHeap=!0,a.prototype.insert=function(e,n){var r={key:e,value:n,degree:0};if(this._minimum){var a=this._minimum;r.left=a,r.right=a.right,a.right=r,r.right.left=r,t(e,a.key)&&(this._minimum=r)}else r.left=r,r.right=r,this._minimum=r;return this._size++,r},a.prototype.size=function(){return this._size},a.prototype.clear=function(){this._minimum=null,this._size=0},a.prototype.isEmpty=function(){return 0===this._size},a.prototype.extractMinimum=function(){var e=this._minimum;if(null===e)return e;for(var a=this._minimum,s=e.degree,i=e.child;s>0;){var l=i.right;i.left.right=i.right,i.right.left=i.left,i.left=a,i.right=a.right,a.right=i,i.right.left=i,i.parent=null,i=l,s--}return e.left.right=e.right,e.right.left=e.left,a=e===e.right?null:function(e,a){var s,i=Math.floor(Math.log(a)*r)+1,l=new Array(i),u=0,c=e;if(c)for(u++,c=c.right;c!==e;)u++,c=c.right;for(;u>0;){for(var h=c.degree,f=c.right;s=l[h];){if(n(c.key,s.key)){var d=s;s=c,c=d}o(s,c),l[h]=null,h++}l[h]=c,c=f,u--}e=null;for(var p=0;pm?d++:p===m&&(u=c(u,h(s[f],l[d])),f++,d++)}return u}});function o(e,t){var n,r,a=l(e),s=l(t);if(1===a.length)n=a[0];else{if(2!==a.length||1!==a[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+a.join(", ")+")");n=a[0]}if(1===s.length)r=s[0];else{if(2!==s.length||1!==s[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+s.join(", ")+")");r=s[0]}if(n!==r)throw new RangeError("Vectors must have equal length ("+n+" != "+r+")");if(0===n)throw new RangeError("Cannot calculate the dot product of empty vectors");return n}function l(e){return(0,i.SW)(e)?e.size():s(e)}})),ft=f("abs",["typed"],(function(e){return(0,e.typed)("abs",{number:ge,Complex:function(e){return e.abs()},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.abs()}})})),dt="multiply",pt=f(dt,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],(function(e){var t=e.typed,n=e.matrix,r=e.addScalar,a=e.multiplyScalar,s=e.equalScalar,o=e.dot,l=qe({typed:t,equalScalar:s}),c=je({typed:t});function h(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+e[0]+") must match Matrix rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+e[1]+") must match Vector length ("+t[0]+")");break;case 2:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+e[1]+") must match Matrix B rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+e.length+" dimensions)")}}var f=t("_multiplyMatrixVector",{"DenseMatrix, any":function(e,n){var s,i=e._data,o=e._size,l=e._datatype,u=n._data,c=n._datatype,h=o[0],f=o[1],d=r,p=a;l&&c&&l===c&&"string"==typeof l&&(s=l,d=t.find(r,[s,s]),p=t.find(a,[s,s]));for(var m=[],g=0;gS)for(var I=0,D=0;D1)throw new Error("Only one dimensional matrices supported");return u(e.valueOf(),t,n)}if(Array.isArray(e))return u(e,t,n)}function u(e,t,a){if(t>=e.length)throw new Error("k out of bounds");for(var s=0;s=0){var h=e[u];e[u]=e[l],e[l]=h,--u}else++l;a(e[l],c)>0&&--l,t<=l?o=l:i=l+1}return e[t]}})),bt=f("bignumber",["typed","BigNumber"],(function(e){var t=e.typed,n=e.BigNumber;return t("bignumber",{"":function(){return new n(0)},number:function(e){return new n(e+"")},string:function(e){return new n(e)},BigNumber:function(e){return e},Fraction:function(e){return new n(e.n).div(e.d).times(e.s)},null:function(e){return new n(0)},"Array | Matrix":function(e){return ne(e,this)}})})),vt=f("numeric",["number","?bignumber","?fraction"],(function(e){var t=e.number,n=e.bignumber,r=e.fraction,a={string:!0,number:!0,BigNumber:!0,Fraction:!0},s={number:function(e){return t(e)},BigNumber:n?function(e){return n(e)}:Ze,Fraction:r?function(e){return r(e)}:Qe};return function(e,t){var n=(0,i.kM)(e);if(!(n in a))throw new TypeError("Cannot convert "+e+' of type "'+n+'"; valid input types are '+Object.keys(a).join(", "));if(!(t in s))throw new TypeError("Cannot convert "+e+' to type "'+t+'"; valid output types are '+Object.keys(s).join(", "));return t===n?e:s[t](e)}}));function wt(e,t,n){var r;return-1!==String(e).indexOf("Unexpected type")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+r)):-1!==String(e).indexOf("complex numbers")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+r)):e}var _t="subtract",xt=f(_t,["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],(function(e){var t=e.typed,n=e.matrix,r=e.equalScalar,a=e.addScalar,s=e.unaryMinus,i=e.DenseMatrix,o=ze({typed:t}),l=He({typed:t}),u=Ge({typed:t,equalScalar:r}),c=Ue({typed:t,DenseMatrix:i}),h=Ve({typed:t}),f=je({typed:t});return t(_t,{"number, number":function(e,t){return e-t},"Complex, Complex":function(e,t){return e.sub(t)},"BigNumber, BigNumber":function(e,t){return e.minus(t)},"Fraction, Fraction":function(e,t){return e.sub(t)},"Unit, Unit":function(e,t){if(null===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n},"SparseMatrix, SparseMatrix":function(e,t){return kt(e,t),u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return kt(e,t),l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return kt(e,t),o(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return kt(e,t),h(e,t,this)},"Array, Array":function(e,t){return this(n(e),n(t)).valueOf()},"Array, Matrix":function(e,t){return this(n(e),t)},"Matrix, Array":function(e,t){return this(e,n(t))},"SparseMatrix, any":function(e,t){return c(e,s(t),a)},"DenseMatrix, any":function(e,t){return f(e,t,this)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(n(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(n(t),e,this,!0).valueOf()}})}));function kt(e,t){var n=e.size(),r=t.size();if(n.length!==r.length)throw new B(n.length,r.length)}var Et="equal",Ct=(f(Et,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(Et,{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:n(e,t)}})})),"divideScalar"),St=f(Ct,["typed","numeric"],(function(e){var t=e.typed,n=e.numeric;return t(Ct,{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Fraction | BigNumber":function(e,t){var r=e.clone(),a=n(1,(0,i.kM)(t));return r.value=this(null===r.value?r._normalize(a):r.value,t),r},"number | Fraction | BigNumber, Unit":function(e,t){var r=t.clone();r=r.pow(-1);var a=n(1,(0,i.kM)(e));return r.value=this(e,null===t.value?t._normalize(a):t.value),r},"Unit, Unit":function(e,t){return e.divide(t)}})})),Nt=f("Spa",["addScalar","equalScalar","FibonacciHeap"],(function(e){var t=e.addScalar,n=e.equalScalar,r=e.FibonacciHeap;function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new r}return a.prototype.type="Spa",a.prototype.isSpa=!0,a.prototype.set=function(e,t){if(this._values[e])this._values[e].value=t;else{var n=this._heap.insert(e,t);this._values[e]=n}},a.prototype.get=function(e){var t=this._values[e];return t?t.value:0},a.prototype.accumulate=function(e,n){var r=this._values[e];r?r.value=t(r.value,n):(r=this._heap.insert(e,n),this._values[e]=r)},a.prototype.forEach=function(e,t,r){var a=this._heap,s=this._values,i=[],o=a.extractMinimum();for(o&&i.push(o);o&&o.key<=t;)o.key>=e&&(n(o.value,0)||r(o.key,o.value,this)),(o=a.extractMinimum())&&i.push(o);for(var l=0;l0&&e.forEach(0,n-1,(function(t,n){d._forEachRow(t,b,v,w,(function(r,a){r>t&&e.accumulate(r,h(i(a,n)))}))}));var I,D,A,T,R=n,F=e.get(n),O=r(F);e.forEach(n+1,o-1,(function(e,t){var n=r(t);u(n,O)&&(R=e,O=n,F=t)})),n!==R&&(d._swapRows(n,R,_[1],b,v,w),d._swapRows(n,R,C[1],x,k,E),e.swap(n,R),D=R,A=N[I=n],T=N[D],S[A]=D,S[T]=I,N[I]=T,N[D]=A),e.forEach(0,o-1,(function(e,t){e<=n?(x.push(t),k.push(e)):(t=s(t,F),c(t,0)||(b.push(t),v.push(e)))}))};for(n=0;n0)for(t=0;t=t)break;for(var p=f,m=0;!d[i.p[p]];)d[i.p[p]]=!0,p=i.p[p],m++;m%2==0&&h++}return h%2==0?u:s(u)}(e.clone().valueOf(),u);throw new RangeError("Matrix must be square (size: "+F(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+F(t)+")")}}})})),At=f("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],(function(e){var t=e.typed,n=e.matrix,r=e.divideScalar,a=e.addScalar,s=e.multiply,o=e.unaryMinus,l=e.det,u=e.identity,c=e.abs;return t("inv",{"Array | Matrix":function(e){var t=(0,i.SW)(e)?e.size():$(e);switch(t.length){case 1:if(1===t[0])return(0,i.SW)(e)?n([r(1,e.valueOf()[0])]):[r(1,e[0])];throw new RangeError("Matrix must be square (size: "+F(t)+")");case 2:var a=t[0],s=t[1];if(a===s)return(0,i.SW)(e)?n(h(e.valueOf(),a,s),e.storage()):h(e,a,s);throw new RangeError("Matrix must be square (size: "+F(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+F(t)+")")}},any:function(e){return r(1,e)}});function h(e,t,n){var i,h,f,d,p;if(1===t){if(0===(d=e[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[r(1,d)]]}if(2===t){var m=l(e);if(0===m)throw Error("Cannot calculate inverse, determinant is zero");return[[r(e[1][1],m),r(o(e[0][1]),m)],[r(o(e[1][0]),m),r(e[0][0],m)]]}var g=e.concat();for(i=0;iv&&(v=c(g[i][b]),w=i),i++;if(0===v)throw Error("Cannot calculate inverse, determinant is zero");(i=w)!==b&&(p=g[b],g[b]=g[i],g[i]=p,p=y[b],y[b]=y[i],y[i]=p);var _=g[b],x=y[b];for(i=0;i0&&(i=e[o]);return u(i,r)}var c=s(e,(t-1)/2);return l(c)}catch(e){throw wt(e,"median")}}var l=t({"number | BigNumber | Complex | Unit":function(e){return e}}),u=t({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function(e,t){return r(n(e,t),2)}});return t(Mt,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":function(e,t){throw new Error("median(A, dim) is not yet supported")},"...":function(e){if(function(e){for(var t=0;t{"use strict";n.d(t,{gammaG:()=>a.Yc,gammaNumber:()=>a.wZ,gammaP:()=>a.lG,acoshNumber:()=>s.cw,acotNumber:()=>s.y,acothNumber:()=>s.LJ,acscNumber:()=>s.VL,acschNumber:()=>s.F4,asecNumber:()=>s.zq,asechNumber:()=>s.Pe,asinhNumber:()=>s.Rm,atanhNumber:()=>s.Sz,cotNumber:()=>s.Nw,cothNumber:()=>s.ws,cscNumber:()=>s.c$,cschNumber:()=>s.zr,secNumber:()=>s.wX,sechNumber:()=>s.pL,sinhNumber:()=>s.T$,isNaNNumber:()=>i.kU,isNegativeNumber:()=>i.Tk,isPositiveNumber:()=>i.r,isZeroNumber:()=>i.hG});var r=n(6802);n.o(r,"acoshNumber")&&n.d(t,{acoshNumber:function(){return r.acoshNumber}}),n.o(r,"acotNumber")&&n.d(t,{acotNumber:function(){return r.acotNumber}}),n.o(r,"acothNumber")&&n.d(t,{acothNumber:function(){return r.acothNumber}}),n.o(r,"acscNumber")&&n.d(t,{acscNumber:function(){return r.acscNumber}}),n.o(r,"acschNumber")&&n.d(t,{acschNumber:function(){return r.acschNumber}}),n.o(r,"asecNumber")&&n.d(t,{asecNumber:function(){return r.asecNumber}}),n.o(r,"asechNumber")&&n.d(t,{asechNumber:function(){return r.asechNumber}}),n.o(r,"asinhNumber")&&n.d(t,{asinhNumber:function(){return r.asinhNumber}}),n.o(r,"atanhNumber")&&n.d(t,{atanhNumber:function(){return r.atanhNumber}}),n.o(r,"cotNumber")&&n.d(t,{cotNumber:function(){return r.cotNumber}}),n.o(r,"cothNumber")&&n.d(t,{cothNumber:function(){return r.cothNumber}}),n.o(r,"cscNumber")&&n.d(t,{cscNumber:function(){return r.cscNumber}}),n.o(r,"cschNumber")&&n.d(t,{cschNumber:function(){return r.cschNumber}}),n.o(r,"gammaG")&&n.d(t,{gammaG:function(){return r.gammaG}}),n.o(r,"gammaNumber")&&n.d(t,{gammaNumber:function(){return r.gammaNumber}}),n.o(r,"gammaP")&&n.d(t,{gammaP:function(){return r.gammaP}}),n.o(r,"isNaNNumber")&&n.d(t,{isNaNNumber:function(){return r.isNaNNumber}}),n.o(r,"isNegativeNumber")&&n.d(t,{isNegativeNumber:function(){return r.isNegativeNumber}}),n.o(r,"isPositiveNumber")&&n.d(t,{isPositiveNumber:function(){return r.isPositiveNumber}}),n.o(r,"isZeroNumber")&&n.d(t,{isZeroNumber:function(){return r.isZeroNumber}}),n.o(r,"secNumber")&&n.d(t,{secNumber:function(){return r.secNumber}}),n.o(r,"sechNumber")&&n.d(t,{sechNumber:function(){return r.sechNumber}}),n.o(r,"sinhNumber")&&n.d(t,{sinhNumber:function(){return r.sinhNumber}});var a=n(9065),s=n(333),i=n(6493)},9065:(e,t,n)=>{"use strict";n.d(t,{wZ:()=>s,Yc:()=>i,lG:()=>o});var r=n(4008),a=n(2424);function s(e){var t;if((0,r.U)(e))return e<=0?isFinite(e)?1/0:NaN:e>171?1/0:(0,a.O)(1,e-1);if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*s(1-e));if(e>=171.35)return 1/0;if(e>85){var n=e*e,l=n*e,u=l*e,c=u*e;return Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*n)-139/(51840*l)-571/(2488320*u)+163879/(209018880*c)+5246819/(75246796800*c*e))}--e,t=o[0];for(var h=1;h{},333:(e,t,n)=>{"use strict";n.d(t,{cw:()=>s,y:()=>i,LJ:()=>o,VL:()=>l,F4:()=>u,zq:()=>c,Pe:()=>h,Rm:()=>f,Sz:()=>d,Nw:()=>p,ws:()=>m,c$:()=>g,zr:()=>y,wX:()=>b,pL:()=>v,T$:()=>w});var r=n(4008),a="number";function s(e){return(0,r.__)(e)}function i(e){return Math.atan(1/e)}function o(e){return isFinite(e)?(Math.log((e+1)/e)+Math.log(e/(e-1)))/2:0}function l(e){return Math.asin(1/e)}function u(e){var t=1/e;return Math.log(t+Math.sqrt(t*t+1))}function c(e){return Math.acos(1/e)}function h(e){var t=1/e,n=Math.sqrt(t*t-1);return Math.log(n+t)}function f(e){return(0,r.Vf)(e)}function d(e){return(0,r.C8)(e)}function p(e){return 1/Math.tan(e)}function m(e){var t=Math.exp(2*e);return(t+1)/(t-1)}function g(e){return 1/Math.sin(e)}function y(e){return 0===e?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(e)-Math.exp(-e)))*(0,r.Xx)(e)}function b(e){return 1/Math.cos(e)}function v(e){return 2/(Math.exp(e)+Math.exp(-e))}function w(e){return(0,r.R_)(e)}s.signature=a,i.signature=a,o.signature=a,l.signature=a,u.signature=a,c.signature=a,h.signature=a,f.signature=a,d.signature=a,p.signature=a,m.signature=a,g.signature=a,y.signature=a,b.signature=a,v.signature=a,w.signature=a},6493:(e,t,n)=>{"use strict";n.d(t,{Tk:()=>a,r:()=>s,hG:()=>i,kU:()=>o}),n(4008);var r="number";function a(e){return e<0}function s(e){return e>0}function i(e){return 0===e}function o(e){return Number.isNaN(e)}a.signature=r,s.signature=r,i.signature=r,o.signature=r},4080:(e,t,n)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e){return"number"==typeof e}function s(e){return e&&!0===e.constructor.prototype.isBigNumber||!1}function i(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isComplex||!1}function o(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isFraction||!1}function l(e){return e&&!0===e.constructor.prototype.isUnit||!1}function u(e){return"string"==typeof e}n.d(t,{hj:()=>a,l9:()=>s,Mc:()=>i,yQ:()=>o,wr:()=>l,HD:()=>u,kJ:()=>c,SW:()=>h,uZ:()=>f,jH:()=>d,sA:()=>p,bR:()=>m,dh:()=>g,jn:()=>y,cB:()=>b,x1:()=>v,mf:()=>w,J_:()=>_,Kj:()=>x,Kn:()=>k,Ft:()=>E,o8:()=>C,Yz:()=>S,j0:()=>N,Bp:()=>I,zh:()=>D,tS:()=>A,nu:()=>T,l7:()=>R,VO:()=>F,Cl:()=>O,UG:()=>B,Lr:()=>M,bV:()=>$,Ig:()=>P,ex:()=>L,FG:()=>z,qg:()=>W,kM:()=>U});var c=Array.isArray;function h(e){return e&&!0===e.constructor.prototype.isMatrix||!1}function f(e){return Array.isArray(e)||h(e)}function d(e){return e&&e.isDenseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function p(e){return e&&e.isSparseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function m(e){return e&&!0===e.constructor.prototype.isRange||!1}function g(e){return e&&!0===e.constructor.prototype.isIndex||!1}function y(e){return"boolean"==typeof e}function b(e){return e&&!0===e.constructor.prototype.isResultSet||!1}function v(e){return e&&!0===e.constructor.prototype.isHelp||!1}function w(e){return"function"==typeof e}function _(e){return e instanceof Date}function x(e){return e instanceof RegExp}function k(e){return!(!e||"object"!==r(e)||e.constructor!==Object||i(e)||o(e))}function E(e){return null===e}function C(e){return void 0===e}function S(e){return e&&!0===e.isAccessorNode&&!0===e.constructor.prototype.isNode||!1}function N(e){return e&&!0===e.isArrayNode&&!0===e.constructor.prototype.isNode||!1}function I(e){return e&&!0===e.isAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function D(e){return e&&!0===e.isBlockNode&&!0===e.constructor.prototype.isNode||!1}function A(e){return e&&!0===e.isConditionalNode&&!0===e.constructor.prototype.isNode||!1}function T(e){return e&&!0===e.isConstantNode&&!0===e.constructor.prototype.isNode||!1}function R(e){return e&&!0===e.isFunctionAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function F(e){return e&&!0===e.isFunctionNode&&!0===e.constructor.prototype.isNode||!1}function O(e){return e&&!0===e.isIndexNode&&!0===e.constructor.prototype.isNode||!1}function B(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function M(e){return e&&!0===e.isObjectNode&&!0===e.constructor.prototype.isNode||!1}function $(e){return e&&!0===e.isOperatorNode&&!0===e.constructor.prototype.isNode||!1}function P(e){return e&&!0===e.isParenthesisNode&&!0===e.constructor.prototype.isNode||!1}function L(e){return e&&!0===e.isRangeNode&&!0===e.constructor.prototype.isNode||!1}function z(e){return e&&!0===e.isSymbolNode&&!0===e.constructor.prototype.isNode||!1}function W(e){return e&&!0===e.constructor.prototype.isChain||!1}function U(e){var t=r(e);return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":s(e)?"BigNumber":i(e)?"Complex":o(e)?"Fraction":h(e)?"Matrix":l(e)?"Unit":g(e)?"Index":m(e)?"Range":b(e)?"ResultSet":B(e)?e.type:W(e)?"Chain":v(e)?"Help":"Object":"function"===t?"Function":t}},4008:(e,t,n)=>{"use strict";n.d(t,{U:()=>a,Xx:()=>s,k3:()=>i,mv:()=>o,Kr:()=>l,eK:()=>u,t$:()=>c,WU:()=>h,FH:()=>d,nz:()=>y,RI:()=>v,__:()=>w,Vf:()=>_,C8:()=>x,f9:()=>k,R_:()=>E,AE:()=>C});var r=n(4080);function a(e){return"boolean"==typeof e||!!isFinite(e)&&e===Math.round(e)}var s=Math.sign||function(e){return e>0?1:e<0?-1:0},i=Math.log2||function(e){return Math.log(e)/Math.LN2},o=Math.log10||function(e){return Math.log(e)/Math.LN10},l=Math.log1p||function(e){return Math.log(e+1)},u=Math.cbrt||function(e){if(0===e)return e;var t,n=e<0;return n&&(e=-e),t=isFinite(e)?(e/((t=Math.exp(Math.log(e)/3))*t)+2*t)/3:e,n?-t:t},c=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function h(e,t){if("function"==typeof t)return t(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n,a="auto";switch(t&&(t.notation&&(a=t.notation),(0,r.hj)(t)?n=t:(0,r.hj)(t.precision)&&(n=t.precision)),a){case"fixed":return d(e,n);case"exponential":return p(e,n);case"engineering":return function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=m(f(e),t),a=n.exponent,s=n.coefficients,i=a%3==0?a:a<0?a-3-a%3:a-a%3;if((0,r.hj)(t))for(;t>s.length||a-i+1>s.length;)s.push(0);else for(var o=Math.abs(a-i)-(s.length-1),l=0;l0;)c++,u--;var h=s.slice(c).join(""),d=(0,r.hj)(t)&&h.length||h.match(/[1-9]/)?"."+h:"",p=s.slice(0,c).join("")+d+"e"+(a>=0?"+":"")+i.toString();return n.sign+p}(e,n);case"auto":return function(e,t,n){if(isNaN(e)||!isFinite(e))return String(e);var r=n&&void 0!==n.lowerExp?n.lowerExp:-3,a=n&&void 0!==n.upperExp?n.upperExp:5,s=f(e),i=t?m(s,t):s;if(i.exponent=a)return p(e,t);var o=i.coefficients,l=i.exponent;o.length0?l:0;return u<(o=g(-l).concat(o)).length-1&&o.splice(u+1,0,"."),i.sign+o.join("")}(e,n,t&&t).replace(/((\.\d*?)(0+))($|e)/,(function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t}));default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", or "fixed".')}}function f(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw new SyntaxError("Invalid number "+e);var n=t[1],r=t[2],a=parseFloat(t[4]||"0"),s=r.indexOf(".");a+=-1!==s?s-1:r.length-1;var i=r.replace(".","").replace(/^0*/,(function(e){return a-=e.length,""})).replace(/0*$/,"").split("").map((function(e){return parseInt(e)}));return 0===i.length&&(i.push(0),a++),{sign:n,coefficients:i,exponent:a}}function d(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=f(e),r="number"==typeof t?m(n,n.exponent+1+t):n,a=r.coefficients,s=r.exponent+1,i=s+(t||0);return a.length0?"."+a.join(""):"")+"e"+(s>=0?"+":"")+s}function m(e,t){for(var n={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},r=n.coefficients;t<=0;)r.unshift(0),n.exponent++,t++;if(r.length>t&&r.splice(t,r.length-t)[0]>=5){var a=t-1;for(r[a]++;10===r[a];)r.pop(),0===a&&(r.unshift(0),n.exponent++,a++),r[--a]++}return n}function g(e){for(var t=[],n=0;n{"use strict";function r(e,t){if(t>1;return r(e,n)*r(n+1,t)}n.d(t,{O:()=>r})},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",o=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,s=Object.create(a.prototype),i=new I(r||[]);return s._invoke=function(e,t,n){var r=h;return function(a,s){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===a)throw s;return A()}for(n.method=a,n.arg=s;;){var i=n.delegate;if(i){var o=C(i,n);if(o){if(o===m)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?p:f,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(e,n,i),s}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",m={};function g(){}function y(){}function b(){}var v={};v[s]=function(){return this};var w=Object.getPrototypeOf,_=w&&w(w(D([])));_&&_!==n&&r.call(_,s)&&(v=_);var x=b.prototype=g.prototype=Object.create(v);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(a,s,i,o){var l=c(e[a],e,s);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==typeof h&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){n("next",e,i,o)}),(function(e){n("throw",e,i,o)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,o)}))}o(l.arg)}var a;this._invoke=function(e,r){function s(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(s,s):s()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var a=c(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var s=a.arg;return s?s.done?(n[e.resultName]=s.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function D(e){if(e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,i=function n(){for(;++a=0;--s){var i=this.tryEntries[s],o=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:D(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}},7905:(e,t,n)=>{"use strict";var r=256,a=[],s=void 0===n.g?window:n.g,i=Math.pow(r,6),o=Math.pow(2,52),l=2*o,u=255,c=Math.random;function h(e){var t,n=e.length,a=this,s=0,i=a.i=a.j=0,o=a.S=[];for(n||(e=[n++]);s=l;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=c},d(Math.random(),a)},6377:(e,t,n)=>{var r=n(4832),a=n(8652),s=n(801),i=n(2030),o=n(3618),l=n(9049),u=n(1971);u.alea=r,u.xor128=a,u.xorwow=s,u.xorshift7=i,u.xor4096=o,u.tychei=l,e.exports=u},4832:function(e,t,n){var r;!function(e,a,s){function i(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e=n.nmd(e),n.amdD)},9049:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.tychei=l}(0,e=n.nmd(e),n.amdD)},8652:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor128=l}(0,e=n.nmd(e),n.amdD)},3618:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,s=t.i;return t.w=r=r+1640531527|0,n=a[s+34&127],e=a[s=s+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[s]=n^e,t.i=s,n+(r^r>>>16)|0},function(e,t){var n,r,a,s,i,o=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,s=-32;s>>15,r^=r<<4,r^=r>>>13,s>=0&&(i=i+1640531527|0,a=0==(n=o[127&s]^=r+i)?a+1:0);for(a>=128&&(o[127&(t&&t.length||0)]=-1),a=127,s=512;s>0;--s)r=o[a+34&127],n=o[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,o[a]=r^n;e.w=i,e.X=o,e.i=a}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},2030:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},801:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function l(e,t){var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},1971:(e,t,n)=>{var r;!function(a,s){var i,o=this,l=256,u=s.pow(l,6),c=s.pow(2,52),h=2*c,f=255;function d(e,t,n){var r=[],f=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(a)]:null==e?function(){try{var e;return i&&(e=i.randomBytes)?e=e(l):(e=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=o.navigator,n=t&&t.plugins;return[+new Date,o,n,o.screen,b(a)]}}():e,3),r),d=new p(r),v=function(){for(var e=d.g(6),t=u,n=0;e=h;)e/=2,t/=2,n>>>=1;return(e+n)/t};return v.int32=function(){return 0|d.g(4)},v.quick=function(){return d.g(4)/4294967296},v.double=v,y(b(d.S),a),(t.pass||n||function(e,t,n,r){return r&&(r.S&&m(r,d),e.state=function(){return m(d,{})}),n?(s.random=e,t):e})(v,f,"global"in t?t.global:this==s,t.state)}function p(e){var t,n=e.length,r=this,a=0,s=r.i=r.j=0,i=r.S=[];for(n||(e=[n++]);a{"use strict";const r=n(1903),a=n(4658),s=n(5413),i=["","›"],o=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=[...e.normalize()];n="number"==typeof n?n:l.length;let u=!1,c=null,h=0,f="";for(const[d,p]of l.entries()){let l=!1;if(i.includes(p)){u=!0;const t=/\d[^m]*/.exec(e.slice(d,d+18));c=39===t?null:t}else u&&"m"===p&&(u=!1,l=!0);if(u||l||++h,!a({exact:!0}).test(p)&&r(p.codePointAt())&&++h,h>t&&h<=n)f+=p;else if(h!==t||u||null===c||39===c){if(h>=n){null!==c&&(f+=o(s.codes.get(parseInt(c,10))||39));break}}else f+=o(c)}return f}},5413:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(6465),a=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},s=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const a=r[n];t[n]={open:`[${a[0]}m`,close:`[${a[1]}m`},r[n]=t[n],e.set(a[0],a[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,o=(e,t,n)=>[e,t,n];t.color.close="",t.bgColor.close="",t.color.ansi={ansi:a(n,0)},t.color.ansi256={ansi256:s(n,0)},t.color.ansi16m={rgb:i(o,0)},t.bgColor.ansi={ansi:a(n,10)},t.bgColor.ansi256={ansi256:s(n,10)},t.bgColor.ansi16m={rgb:i(o,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=a(n.ansi16,0),t.bgColor.ansi[e]=a(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=s(n.ansi256,0),t.bgColor.ansi256[e]=s(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=i(n.rgb,0),t.bgColor.ansi16m[e]=i(n.rgb,10))}return t}})},1025:(e,t,n)=>{var r=n(3645),a={};for(var s in r)r.hasOwnProperty(s)&&(a[r[s]]=s);var i=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in i)if(i.hasOwnProperty(o)){if(!("channels"in i[o]))throw new Error("missing channels property: "+o);if(!("labels"in i[o]))throw new Error("missing channel labels property: "+o);if(i[o].labels.length!==i[o].channels)throw new Error("channel and label counts mismatch: "+o);var l=i[o].channels,u=i[o].labels;delete i[o].channels,delete i[o].labels,Object.defineProperty(i[o],"channels",{value:l}),Object.defineProperty(i[o],"labels",{value:u})}i.rgb.hsl=function(e){var t,n,r=e[0]/255,a=e[1]/255,s=e[2]/255,i=Math.min(r,a,s),o=Math.max(r,a,s),l=o-i;return o===i?t=0:r===o?t=(a-s)/l:a===o?t=2+(s-r)/l:s===o&&(t=4+(r-a)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(i+o)/2,[t,100*(o===i?0:n<=.5?l/(o+i):l/(2-o-i)),100*n]},i.rgb.hsv=function(e){var t,n,r,a,s,i=e[0]/255,o=e[1]/255,l=e[2]/255,u=Math.max(i,o,l),c=u-Math.min(i,o,l),h=function(e){return(u-e)/6/c+.5};return 0===c?a=s=0:(s=c/u,t=h(i),n=h(o),r=h(l),i===u?a=r-n:o===u?a=1/3+t-r:l===u&&(a=2/3+n-t),a<0?a+=1:a>1&&(a-=1)),[360*a,100*s,100*u]},i.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[i.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,r))*100,100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},i.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-a)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-a-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var t=a[e];if(t)return t;var n,s,i,o=1/0;for(var l in r)if(r.hasOwnProperty(l)){var u=(s=e,i=r[l],Math.pow(s[0]-i[0],2)+Math.pow(s[1]-i[1],2)+Math.pow(s[2]-i[2],2));u.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return r/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},i.hsl.rgb=function(e){var t,n,r,a,s,i=e[0]/360,o=e[1]/100,l=e[2]/100;if(0===o)return[s=255*l,s,s];t=2*l-(n=l<.5?l*(1+o):l+o-l*o),a=[0,0,0];for(var u=0;u<3;u++)(r=i+1/3*-(u-1))<0&&r++,r>1&&r--,s=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,a[u]=255*s;return a},i.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,a=n,s=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,a*=s<=1?s:2-s,[t,100*(0===r?2*a/(s+a):2*n/(r+n)),(r+n)/2*100]},i.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,a=Math.floor(t)%6,s=t-Math.floor(t),i=255*r*(1-n),o=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,a){case 0:return[r,l,i];case 1:return[o,r,i];case 2:return[i,r,l];case 3:return[i,o,r];case 4:return[l,i,r];case 5:return[r,i,o]}},i.hsv.hsl=function(e){var t,n,r,a=e[0],s=e[1]/100,i=e[2]/100,o=Math.max(i,.01);return r=(2-s)*i,n=s*o,[a,100*(n=(n/=(t=(2-s)*o)<=1?t:2-t)||0),100*(r/=2)]},i.hwb.rgb=function(e){var t,n,r,a,s,i,o,l=e[0]/360,u=e[1]/100,c=e[2]/100,h=u+c;switch(h>1&&(u/=h,c/=h),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),a=u+r*((n=1-c)-u),t){default:case 6:case 0:s=n,i=a,o=u;break;case 1:s=a,i=n,o=u;break;case 2:s=u,i=n,o=a;break;case 3:s=u,i=a,o=n;break;case 4:s=a,i=u,o=n;break;case 5:s=n,i=u,o=a}return[255*s,255*i,255*o]},i.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,a=e[3]/100;return[255*(1-Math.min(1,t*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,r*(1-a)+a))]},i.xyz.rgb=function(e){var t,n,r,a=e[0]/100,s=e[1]/100,i=e[2]/100;return n=-.9689*a+1.8758*s+.0415*i,r=.0557*a+-.204*s+1.057*i,t=(t=3.2406*a+-1.5372*s+-.4986*i)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},i.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.lab.xyz=function(e){var t,n,r,a=e[0];t=e[1]/500+(n=(a+16)/116),r=n-e[2]/200;var s=Math.pow(n,3),i=Math.pow(t,3),o=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,r=o>.008856?o:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},i.lab.lch=function(e){var t,n=e[0],r=e[1],a=e[2];return(t=360*Math.atan2(a,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+a*a),t]},i.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],a=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(a=Math.round(a/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===a&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},i.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255,s=Math.max(Math.max(n,r),a),i=Math.min(Math.min(n,r),a),o=s-i;return t=o<=0?0:s===n?(r-a)/o%6:s===r?2+(a-n)/o:4+(n-r)/o+4,t/=6,[360*(t%=1),100*o,100*(o<1?i/(1-o):0)]},i.hsl.hcg=function(e){var t,n=e[1]/100,r=e[2]/100,a=0;return(t=r<.5?2*n*r:2*n*(1-r))<1&&(a=(r-.5*t)/(1-t)),[e[0],100*t,100*a]},i.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var a,s=[0,0,0],i=t%1*6,o=i%1,l=1-o;switch(Math.floor(i)){case 0:s[0]=1,s[1]=o,s[2]=0;break;case 1:s[0]=l,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=o;break;case 3:s[0]=0,s[1]=l,s[2]=1;break;case 4:s[0]=o,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=l}return a=(1-n)*r,[255*(n*s[0]+a),255*(n*s[1]+a),255*(n*s[2]+a)]},i.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},i.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},i.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},i.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},6465:(e,t,n)=>{var r=n(1025),a=n(3340),s={};Object.keys(r).forEach((function(e){s[e]={},Object.defineProperty(s[e],"channels",{value:r[e].channels}),Object.defineProperty(s[e],"labels",{value:r[e].labels});var t=a(e);Object.keys(t).forEach((function(n){var r=t[n];s[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,a=0;a1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=s},3340:(e,t,n)=>{var r=n(1025);function a(e,t){return function(n){return t(e(n))}}function s(e,t){for(var n=[t[e].parent,e],s=r[t[e].parent][e],i=t[e].parent;t[i].parent;)n.unshift(t[i].parent),s=a(r[t[i].parent][i],s),i=t[i].parent;return s.conversion=n,s}e.exports=function(e){for(var t=function(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,a=0;a{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},6484:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(1763)),a=i(n(7037)),s=i(n(3393));function i(e){return e&&e.__esModule?e:{default:e}}const o=["left","right","center"];t.default=(e,t,n)=>{if(!(0,a.default)(e))throw new TypeError("Subject parameter value must be a string.");if(!(0,r.default)(t))throw new TypeError("Container width parameter value must be a number.");const i=(0,s.default)(e);if(i>t)throw new Error("Subject parameter value width cannot be greater than the container width.");if(!(0,a.default)(n))throw new TypeError("Alignment parameter value must be a string.");if(!o.includes(n))throw new Error("Alignment parameter value must be a known alignment parameter value (left, right, center).");if(0===i)return" ".repeat(t);const l=t-i;return"left"===n?((e,t)=>e+" ".repeat(t))(e,l):"right"===n?((e,t)=>" ".repeat(t)+e)(e,l):((e,t)=>{let n;return n=t/2,n%2==0?" ".repeat(n)+e+" ".repeat(n):(n=Math.floor(n)," ".repeat(n)+e+" ".repeat(n+1))})(e,l)}},6411:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(3393)),a=s(n(6484));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const s=t.columns[n];return(0,r.default)(e)===s.width?e:(0,a.default)(e,s.width,s.alignment)}))))},8247:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(7037)),a=s(n(7810));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n=!1)=>{if(!(0,r.default)(e))throw new TypeError("Value must be a string.");if(!Number.isInteger(t))throw new TypeError("Column width must be an integer.");if(t<1)throw new Error("Column width must be greater than 0.");return(0,a.default)(e,t,n).length}},6078:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(3393))&&r.__esModule?r:{default:r};t.default=e=>e.map((e=>Math.max(...e.split("\n").map((e=>(0,a.default)(e))))))},3819:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(6078))&&r.__esModule?r:{default:r};t.default=e=>{if(!e[0])throw new Error("Dataset must have at least one row.");const t=new Array(e[0].length).fill(0);return e.forEach((e=>{(0,a.default)(e).forEach(((e,n)=>{t[n]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(6162)),a=o(n(1584)),s=o(n(1763)),i=o(n(8247));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{const n=e[0].length,o=[];return e.forEach((e=>{const l=new Array(n).fill(1);e.forEach(((e,n)=>{if(!(0,s.default)(t.columns[n].width))throw new TypeError("column[index].width must be a number.");if(!(0,a.default)(t.columns[n].wrapWord))throw new TypeError("column[index].wrapWord must be a boolean.");l[n]=(0,i.default)(e,t.columns[n].width,t.columns[n].wrapWord)})),o.push((0,r.default)(l))})),o}},6955:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=m(n(6604)),a=m(n(2628)),s=m(n(691)),i=m(n(7884)),o=m(n(9045)),l=n(8417),u=m(n(9466)),c=m(n(8381)),h=m(n(1741)),f=m(n(6411)),d=m(n(4220)),p=m(n(5970));function m(e){return e&&e.__esModule?e:{default:e}}const g=(e,t)=>{let n;n=(0,u.default)(e),n=(0,c.default)(e,t);const r=(0,p.default)(n,t);return n=(0,h.default)(n,r,t),n=(0,f.default)(n,t),n=(0,d.default)(n,t),n};t.default=(e={})=>{const t=(0,i.default)(e),n=(0,a.default)((0,r.default)(t.columns,(e=>e.width+e.paddingLeft+e.paddingRight)));let u;return u=!0,{write:e=>{if(e.length!==t.columnCount)throw new Error("Row cell count does not match the config.columnCount.");return u?(u=!1,((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a;a="",a+=(0,l.drawBorderTop)(t,n.border),a+=r,a+=(0,l.drawBorderBottom)(t,n.border),a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)):((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a="";const i=(0,l.drawBorderBottom)(t,n.border);"\n"!==i&&(a="\r"),a+=(0,l.drawBorderJoin)(t,n.border),a+=r,a+=i,a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)}}}},8417:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drawBorderTop=t.drawBorderJoin=t.drawBorderBottom=t.drawBorder=void 0;const n=(e,t)=>{const n=e.map((e=>t.body.repeat(e))).join(t.join);return t.left+n+t.right+"\n"};t.drawBorder=n,t.drawBorderTop=(e,t)=>{const r=n(e,{body:t.topBody,join:t.topJoin,left:t.topLeft,right:t.topRight});return"\n"===r?"":r},t.drawBorderJoin=(e,t)=>n(e,{body:t.joinBody,join:t.joinJoin,left:t.joinLeft,right:t.joinRight}),t.drawBorderBottom=(e,t)=>n(e,{body:t.bottomBody,join:t.bottomJoin,left:t.bottomLeft,right:t.bottomRight})},9045:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>t.bodyLeft+e.join(t.bodyJoin)+t.bodyRight+"\n"},9658:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=n(8417),s=(r=n(9045))&&r.__esModule?r:{default:r};t.default=(e,t,n,r,i,o)=>{let l,u,c;const h=e.length;return u=0,l="",i(u,h)&&(l+=(0,a.drawBorderTop)(n,t)),e.forEach(((e,f)=>{l+=(0,s.default)(e,t),c||(c=r[u],u++),c--,!o&&0===c&&f!==h-1&&i(u,h)&&(l+=(0,a.drawBorderJoin)(n,t))})),i(u,h)&&(l+=(0,a.drawBorderBottom)(n,t)),l}},9487:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if("honeywell"===e)return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼"};if("norc"===e)return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼"};if("ramac"===e)return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|"};if("void"===e)return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:""};throw new Error('Unknown border template "'+e+'".')}},107:(e,t,n)=>{"use strict";Object.defineProperty(t,"Kz",{enumerable:!0,get:function(){return r.default}});var r=a(n(3848));a(n(6955)),a(n(9487));function a(e){return e&&e.__esModule?e:{default:e}}},6482:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(361)),a=u(n(2353)),s=u(n(8913)),i=u(n(9487)),o=u(n(11)),l=u(n(3819));function u(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{(0,o.default)("config.json",t);const n=(0,r.default)(t);return n.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(n.border),n.columns=((e,t={},n={})=>{const r=(0,l.default)(e);return(0,s.default)(e[0].length,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,width:r[e],wrapWord:!1},n,t[e])})),t})(e,n.columns,n.columnDefault),n.drawHorizontalLine||(n.drawHorizontalLine=()=>!0),void 0===n.singleLine&&(n.singleLine=!1),n}},7884:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(361)),a=l(n(2353)),s=l(n(8913)),i=l(n(9487)),o=l(n(11));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(e={})=>{(0,o.default)("streamConfig.json",e);const t=(0,r.default)(e);if(!t.columnDefault||!t.columnDefault.width)throw new Error("Must provide config.columnDefault.width when creating a stream.");if(!t.columnCount)throw new Error("Must provide config.columnCount.");return t.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(t.border),t.columns=((e,t={},n={})=>((0,s.default)(e,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,wrapWord:!1},n,t[e])})),t))(t.columnCount,t.columns,t.columnDefault),t}},1741:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(5564)),a=i(n(8913)),s=i(n(7810));function i(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const i=e[0].length,o=e.map(((e,r)=>{const o=(0,a.default)(t[r],(()=>new Array(i).fill("")));return e.forEach(((e,t)=>{(0,s.default)(e,n.columns[t].width,n.columns[t].wrapWord).forEach(((e,n)=>{o[n][t]=e}))})),o}));return(0,r.default)(o)}},4220:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const r=t.columns[n];return" ".repeat(r.paddingLeft)+e+" ".repeat(r.paddingRight)}))))},9466:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.map((e=>e.map(String)))},3848:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=d(n(9658)),a=d(n(6078)),s=d(n(6482)),i=d(n(5970)),o=d(n(1741)),l=d(n(6411)),u=d(n(4220)),c=d(n(3522)),h=d(n(9466)),f=d(n(8381));function d(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{let n;(0,c.default)(e),n=(0,h.default)(e);const d=(0,s.default)(n,t);n=(0,f.default)(e,d);const p=(0,i.default)(n,d);n=(0,o.default)(n,p,d),n=(0,l.default)(n,d),n=(0,u.default)(n,d);const m=(0,a.default)(n[0]);return(0,r.default)(n,d.border,m,p,d.drawHorizontalLine,d.singleLine)}},8381:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(9138))&&r.__esModule?r:{default:r};t.default=(e,t)=>e.map((e=>e.map(((e,n)=>(0,a.default)(e,{length:t.columns[n].truncate})))))},11:(e,t,n)=>{"use strict";var r=n(4538),a=function(){new RegExp("^[0-9]+$");var e=[],t=(new RegExp("^[0-9]+$"),function t(r,a,s,i,o){var l=null,u=0;if(void 0===o&&(o=r),r&&"object"==typeof r&&!Array.isArray(r)){for(var c in r)if(!t.schema.properties.hasOwnProperty(c)){var h={keyword:"additionalProperties",dataPath:(a||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}void 0!==r.topBody&&(n(r.topBody,(a||"")+".topBody",r,"topBody",o)||(u=(l=null===l?n.errors:l.concat(n.errors)).length)),void 0!==r.topJoin&&(e[2](r.topJoin,(a||"")+".topJoin",r,"topJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topLeft&&(e[2](r.topLeft,(a||"")+".topLeft",r,"topLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topRight&&(e[2](r.topRight,(a||"")+".topRight",r,"topRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomBody&&(e[2](r.bottomBody,(a||"")+".bottomBody",r,"bottomBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomJoin&&(e[2](r.bottomJoin,(a||"")+".bottomJoin",r,"bottomJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomLeft&&(e[2](r.bottomLeft,(a||"")+".bottomLeft",r,"bottomLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomRight&&(e[2](r.bottomRight,(a||"")+".bottomRight",r,"bottomRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyLeft&&(e[2](r.bodyLeft,(a||"")+".bodyLeft",r,"bodyLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyRight&&(e[2](r.bodyRight,(a||"")+".bodyRight",r,"bodyRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyJoin&&(e[2](r.bodyJoin,(a||"")+".bodyJoin",r,"bodyJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinBody&&(e[2](r.joinBody,(a||"")+".joinBody",r,"joinBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinLeft&&(e[2](r.joinLeft,(a||"")+".joinLeft",r,"joinLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinRight&&(e[2](r.joinRight,(a||"")+".joinRight",r,"joinRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinJoin&&(e[2](r.joinJoin,(a||"")+".joinJoin",r,"joinJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length))}else h={keyword:"type",dataPath:(a||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return t.errors=l,0===u});t.schema={type:"object",properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"}},additionalProperties:!1},t.errors=null,e[1]=t;var n=(new RegExp("^[0-9]+$"),function e(t,n,r,a,s){var i=null,o=0;if("string"!=typeof t){var l={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"string"},message:"should be string"};null===i?i=[l]:i.push(l),o++}return e.errors=i,0===o});n.schema={type:"string"},n.errors=null,e[2]=n;var a,s=(a=new RegExp("^[0-9]+$"),function e(t,n,r,s,o){var l=null,u=0;if(void 0===o&&(o=t),t&&"object"==typeof t&&!Array.isArray(t)){for(var c in t)if(!a.test(c)){var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}for(var c in t)a.test(c)&&(i(t[c],(n||"")+"['"+c+"']",t,c,o)||(u=(l=null===l?i.errors:l.concat(i.errors)).length))}else h={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return e.errors=l,0===u});s.schema={type:"object",patternProperties:{"^[0-9]+$":{$ref:"#/definitions/column"}},additionalProperties:!1},s.errors=null,e[3]=s;var i=(new RegExp("^[0-9]+$"),function e(t,n,a,s,i){var o=null,l=0;if(t&&"object"==typeof t&&!Array.isArray(t)){var u=!0;for(var c in t)if("alignment"!=c&&"width"!=c&&"wrapWord"!=c&&"truncate"!=c&&"paddingLeft"!=c&&"paddingRight"!=c){u=!1;var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===o?o=[h]:o.push(h),l++}var f=t.alignment;if(void 0!==f){var d=l;"string"!=typeof f&&(h={keyword:"type",dataPath:(n||"")+".alignment",schemaPath:"#/properties/alignment/type",params:{type:"string"},message:"should be string"},null===o?o=[h]:o.push(h),l++);var p=e.schema.properties.alignment.enum;u=!1;for(var m=0;m{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if(!Array.isArray(e))throw new TypeError("Table data must be an array.");if(0===e.length)throw new Error("Table must define at least one row.");if(0===e[0].length)throw new Error("Table must define at least one column.");const t=e[0].length;var n=!0,r=!1,a=void 0;try{for(var s,i=e[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){const e=s.value;if(!Array.isArray(e))throw new TypeError("Table row data must be an array.");if(e.length!==t)throw new Error("Table must have a consistent number of cells.");var o=!0,l=!1,u=void 0;try{for(var c,h=e[Symbol.iterator]();!(o=(c=h.next()).done);o=!0){const e=c.value;if(/[\u0001-\u0006\u0008-\u0009\u000B-\u001A]/.test(e))throw new Error("Table data must not contain control characters.")}}catch(e){l=!0,u=e}finally{try{o||null==h.return||h.return()}finally{if(l)throw u}}}}catch(e){r=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw a}}}},7810:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(6213)),a=s(n(8624));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const s=e.split("\n");for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[];do{s.push((0,r.default)(n,0,t)),n=(0,r.default)(n,t).trim()}while((0,a.default)(n));return s}},8624:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[],i=new RegExp("(^.{1,"+t+"}(\\s+|$))|(^.{1,"+(t-1)+"}(\\\\|/|_|\\.|,|;|-))");do{let e;e=n.match(i),e?(e=e[0],n=(0,r.default)(n,(0,a.default)(e)),e=e.trim()):(e=(0,r.default)(n,0,t),n=(0,r.default)(n,t)),s.push(e)}while((0,a.default)(n));return s}},5113:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},8175:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},3393:(e,t,n)=>{"use strict";const r=n(3377),a=n(1903),s=n(8175)();e.exports=e=>{if("string"!=typeof(e=e.replace(s," "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n=127&&r<=159||r>=768&&r<=879||(r>65535&&n++,t+=a(r)?2:1)}return t}},3377:(e,t,n)=>{"use strict";const r=n(5113),a=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=a,e.exports.default=a},2287:function(e,t){"use strict";var n,r;void 0===(r="function"==typeof(n=function(){function e(){return!0}function t(){return!1}function n(){}return function r(){var a=[{name:"number",test:function(e){return"number"==typeof e}},{name:"string",test:function(e){return"string"==typeof e}},{name:"boolean",test:function(e){return"boolean"==typeof e}},{name:"Function",test:function(e){return"function"==typeof e}},{name:"Array",test:Array.isArray},{name:"Date",test:function(e){return e instanceof Date}},{name:"RegExp",test:function(e){return e instanceof RegExp}},{name:"Object",test:function(e){return"object"==typeof e&&null!==e&&e.constructor===Object}},{name:"null",test:function(e){return null===e}},{name:"undefined",test:function(e){return void 0===e}}],s={name:"any",test:e},i=[],o=[],l={types:a,conversions:o,ignore:i};function u(e){var t=L(l.types,(function(t){return t.name===e}));if(t)return t;if("any"===e)return s;var n=L(l.types,(function(t){return t.name.toLowerCase()===e.toLowerCase()}));throw new TypeError('Unknown type "'+e+'"'+(n?'. Did you mean "'+n.name+'"?':""))}function c(e){return e===s?999:l.types.indexOf(e)}function h(e){var t=L(l.types,(function(t){return t.test(e)}));if(t)return t.name;throw new TypeError("Value has unknown type. Value: "+e)}function f(e){return e.map((function(e){var t=e.types.map(w);return(e.restParam?"...":"")+t.join("|")})).join(",")}function d(e,t){var n=0===e.indexOf("..."),r=(n?e.length>3?e.slice(3):"any":e).split("|").map(R).filter(F).filter(T),a=function(e,t){var n={};return e.forEach((function(e){-1!==t.indexOf(e.from)||-1===t.indexOf(e.to)||n[e.from]||(n[e.from]=e)})),Object.keys(n).map((function(e){return n[e]}))}(t,r),s=r.map((function(e){var t=u(e);return{name:e,typeIndex:c(t),test:t.test,conversion:null,conversionIndex:-1}})),i=a.map((function(e){var n=u(e.from);return{name:e.from,typeIndex:c(n),test:n.test,conversion:e,conversionIndex:t.indexOf(e)}}));return{types:s.concat(i),restParam:n}}function p(e){var t=M(e);return!!t&&t.restParam}function m(e){return e.types.some((function(e){return null!=e.conversion}))}function g(t){if(t&&0!==t.types.length){if(1===t.types.length)return u(t.types[0].name).test;if(2===t.types.length){var n=u(t.types[0].name).test,r=u(t.types[1].name).test;return function(e){return n(e)||r(e)}}var a=t.types.map((function(e){return u(e.name).test}));return function(e){for(var t=0;t=s+1}}return 0===e.length?function(e){return 0===e.length}:1===e.length?(n=g(e[0]),function(e){return n(e[0])&&1===e.length}):2===e.length?(n=g(e[0]),r=g(e[1]),function(e){return n(e[0])&&r(e[1])&&2===e.length}):(t=e.map(g),function(e){for(var n=0;n0){var u=h(t[s]);return(r=new TypeError("Unexpected type of argument in function "+i+" (expected: "+a.join(" or ")+", actual: "+u+", index: "+s+")")).data={category:"wrongType",fn:i,index:s,actual:u,expected:a},r}}else o=l}var c=o.map((function(e){return p(e.params)?1/0:e.params.length}));if(t.lengthf?((r=new TypeError("Too many arguments in function "+i+" (expected: "+f+", actual: "+t.length+")")).data={category:"tooManyArgs",fn:i,index:t.length,expectedLength:f},r):((r=new TypeError('Arguments of type "'+t.join(", ")+'" do not match any of the defined signatures of function '+i+".")).data={category:"mismatch",actual:t.map(h)},r)}function E(e){for(var t=999,n=0;n=a:o?a>=s:a===s}(t,e)}));if(t)throw new TypeError('Conflicting signatures "'+f(t.params)+'" and "'+f(e.params)+'".');a.push(e)}));var s=z(a,(function(e){return(e?D(e.params,!1):[]).map((function(t){return{params:t,fn:e.fn}}))})).filter(O);s.sort(N);var i=s[0]&&s[0].params.length<=2&&!p(s[0].params),o=s[1]&&s[1].params.length<=2&&!p(s[1].params),u=s[2]&&s[2].params.length<=2&&!p(s[2].params),c=s[3]&&s[3].params.length<=2&&!p(s[3].params),h=s[4]&&s[4].params.length<=2&&!p(s[4].params),b=s[5]&&s[5].params.length<=2&&!p(s[5].params),w=i&&o&&u&&c&&h&&b,_=s.map((function(e){return y(e.params)})),x=i?g(s[0].params[0]):t,E=o?g(s[1].params[0]):t,C=u?g(s[2].params[0]):t,S=c?g(s[3].params[0]):t,A=h?g(s[4].params[0]):t,T=b?g(s[5].params[0]):t,F=i?g(s[0].params[1]):t,M=o?g(s[1].params[1]):t,W=u?g(s[2].params[1]):t,U=c?g(s[3].params[1]):t,V=h?g(s[4].params[1]):t,j=b?g(s[5].params[1]):t,H=s.map((function(e){return function(e,t){var n=t;if(e.some(m)){var r=p(e),a=e.map(I);n=function(){for(var e=[],n=r?arguments.length-1:arguments.length,s=0;s?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[620]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖÜ¢Ł¥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[737]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[850]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[852]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[857]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[861]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[865]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[866]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[874]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[895]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[932]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[135]="����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[224]="����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[237]="����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[250]="����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);return{enc:n,dec:t}}(),t[936]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);for(r[254]="����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[254].length;++e)65533!==r[254][e].charCodeAt(0)&&(n[r[254][e]]=65024+e,t[65024+e]=r[254][e]);return{enc:n,dec:t}}(),t[949]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);return{enc:n,dec:t}}(),t[950]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[201]="����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);return{enc:n,dec:t}}(),t[1250]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1251]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1252]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1253]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1254]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1255]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1256]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1257]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1258]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1e4]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10006]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10007]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10008]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);return{enc:n,dec:t}}(),t[10029]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10079]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10081]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE&&(e.exports=t),function(n,r){"use strict";if(void 0===t){var a=t;e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE?e.exports=r(a):n.cptable=r(a)}else t=r(t)}(this,(function(e){"use strict";var t={1200:"utf16le",1201:"utf16be",12e3:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65e3:"utf7",65001:"utf8"},n=[874,1250,1251,1252,1253,1254,1255,1256,1e4],r=[932,936,949,950],a=[65001],s={},i={},o={},l={},u=function(e){return String.fromCharCode(e)},c=function(e){return e.charCodeAt(0)},h="undefined"!=typeof Buffer,f=function(){};if(h){var d=!Buffer.from;if(!d)try{Buffer.from("foo","utf8")}catch(e){d=!0}f=d?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)});var p=1024,m=Buffer.allocUnsafe(p),g=function(t){var n=function(e){for(var t=Buffer.allocUnsafe(65536),n=0;n<65536;++n)t[n]=0;for(var r=Object.keys(e),a=r.length,s=0,i=r[s];s>10&1023)],r[i++]=n[56320+(1023&l)]));r=r.slice(0,i)}else for(r=Buffer.allocUnsafe(a),s=0;s>8}return function(e){var t=e.length,n=0,a=0;if(2*t>p&&(p=2*t,m=Buffer.allocUnsafe(p)),Buffer.isBuffer(e))for(n=0;n>8}return function(e,t){var n=e.length,a=Buffer.allocUnsafe(2*n),s=0,i=0,o=0,l=0,u=0;if("string"==typeof e){for(s=l=0;s0&&(a[l++]=r[i]);a=a.slice(0,l)}else if(Buffer.isBuffer(e)){for(s=l=0;s0&&(a[l++]=r[i])):(i=2*(55296+((o=i-65536)>>10&1023)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]),i=2*(56320+(1023&o)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]));a=a.slice(0,l)}else for(s=l=0;s0&&(a[l++]=r[i]);return t&&"buf"!==t?"arr"!==t?a.toString("binary"):[].slice.call(a):a}},v=function(t){var n,r=e[t].dec,a=Buffer.allocUnsafe(131072),s=0,i=0,o=0,l=0;for(l=0;l<65536;++l)a[2*l]=255,a[2*l+1]=253;for(s=0;s>8);return function(e){var t=e.length,n=Buffer.allocUnsafe(2*t),r=0,s=0,i=0;if(Buffer.isBuffer(e))for(r=0;rp&&(p=4*n,m=Buffer.allocUnsafe(p));var s=0;n>=3&&239==t[0]&&187==t[1]&&191==t[2]&&(s=3);for(var i=1,o=0,l=0;s>8):(a=55296+((r-=65536)>>10&1023),r=56320+(1023&r),m[o++]=255&a,m[o++]=a>>>8,m[o++]=255&r,m[o++]=r>>>8&255);return m.slice(0,o).toString("ucs2")},i[65001]=function(e,t){if(h&&Buffer.isBuffer(e))return t&&"buf"!==t?"arr"!==t?e.toString("binary"):[].slice.call(e):e;var n=e.length,r=0,a=0,s=0,i="string"==typeof e;4*n>p&&(p=4*n,m=Buffer.allocUnsafe(p));for(var o=0;o>6),m[s++]=128+(63&r)):r>=55296&&r<=57343?(r-=55296,++o,a=(i?e.charCodeAt(o):e[o].charCodeAt(0))-56320+(r<<10),m[s++]=240+(a>>>18&7),m[s++]=144+(a>>>12&63),m[s++]=128+(a>>>6&63),m[s++]=128+(63&a)):(m[s++]=224+(r>>12),m[s++]=128+(r>>6&63),m[s++]=128+(63&r));return t&&"buf"!==t?"arr"!==t?m.slice(0,s).toString("binary"):[].slice.call(m,0,s):m.slice(0,s)}}var w=function(){if(h){if(o[n[0]])return;var t=0,u=0;for(t=0;t=3&&239==a[0]&&187==a[1]&&191==a[2]&&(p=3);p>10&1023),d=56320+(1023&d),u[g++]=String.fromCharCode(y)),u[g++]=String.fromCharCode(d);break;case"ascii":if(h&&Buffer.isBuffer(a))return a.toString(v);for(p=0;p=2&&255==a[0]&&254==a[1]&&(p=2),h&&Buffer.isBuffer(a))return a.toString(v);for(m=2;p+1=2&&254==a[0]&&255==a[1]&&(p=2),m=2;p+1=4&&255==a[0]&&254==a[1]&&0===a[2]&&0===a[3]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf32be":for(l>=4&&255==a[3]&&254==a[2]&&0===a[1]&&0===a[0]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf7":for(l>=4&&43==a[0]&&47==a[1]&&118==a[2]&&(l>=5&&56==a[3]&&45==a[4]?p=5:56!=a[3]&&57!=a[3]&&43!=a[3]&&47!=a[3]||(p=4));p>4,_.push(k),-1!==(I=E.indexOf(String.fromCharCode(a[p+A++]))))&&(C=(15&N)<<4|I>>2,_.push(C),-1!==(D=E.indexOf(String.fromCharCode(a[p+A++]))));)S=(3&I)<<6|D,D<64&&_.push(S);for(x=n(1201,_),A=0;A255?(c[m]=d>>8,c[++m]=255&d):c[m]=255&d;else{if(!(b=t[r]))throw new Error("Unrecognized CP: "+r);switch(b){case"utf8":if(h&&v){m=(c=f(a,b)).length;break}for(p=0;p>6),c[++m]=128+(63&d)):d>=55296&&d<=57343?(d-=55296,g=(v?a.charCodeAt(++p):a[++p].charCodeAt(0))-56320+(d<<10),c[m]=240+(g>>>18&7),c[++m]=144+(g>>>12&63),c[++m]=128+(g>>>6&63),c[++m]=128+(63&g)):(c[m]=224+(d>>12),c[++m]=128+(d>>6&63),c[++m]=128+(63&d));break;case"ascii":if(h&&"string"==typeof a){m=(c=f(a,b)).length;break}for(p=0;p>8;break;case"utf16be":for(p=0;p>8,c[m++]=255&d;break;case"utf32le":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d;break;case"utf32be":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m+3]=255&d,d>>=8,c[m+2]=255&d,d>>=8,c[m+1]=255&d,d>>=8,c[m]=255&d,m+=4;break;case"utf7":for(p=0;p-1)c[m++]=w.charCodeAt(0);else{var _=n(1201,w);c[m++]=43,c[m++]=E.charCodeAt(_[0]>>2),c[m++]=E.charCodeAt(((3&_[0])<<4)+((_[1]||0)>>4)),c[m++]=E.charCodeAt(((15&_[1])<<2)+((_[2]||0)>>6)),c[m++]=45}else c[m++]=43,c[m++]=45}break;default:throw new Error("Unsupported magic: "+r+" "+t[r])}}return c=c.slice(0,m),h?s&&"buf"!==s?"arr"!==s?c.toString("binary"):[].slice.call(c):c:"str"==s?c.map(u).join(""):c},hascp:function(n){return!(!e[n]&&!t[n])},magic:t,cache:k},e}))},2903:(e,t,n)=>{var r,a,s;!function(i){if("undefined"==typeof DO_NOT_EXPORT_JSZIP)e.exports=i();else if("undefined"==typeof DO_NOT_EXPORT_JSZIP)JSZipSync=i(),a=[],void 0===(s="function"==typeof(r=i)?r.apply(t,a):r)||(e.exports=s);else{var o;"undefined"!=typeof globalThis?o=globalThis:"undefined"!=typeof window?o=window:void 0!==n.g?o=n.g:"undefined"!=typeof $&&$.global?o=$.global:"undefined"!=typeof self&&(o=self),o.JSZipSync=i()}}((function(){return function e(t,n,r){function a(i,o){if(!n[i]){if(!t[i]){if(s)return s(i,!0);throw new Error("Cannot find module '"+i+"'")}var l=n[i]={exports:{}};t[i][0].call(l.exports,(function(e){return a(t[i][1][e]||e)}),l,l.exports,e,t,n,r)}return n[i].exports}for(var s=void 0,i=0;i>2,o=(3&n)<<4|(a=e.charCodeAt(h++))>>4,l=(15&a)<<2|(s=e.charCodeAt(h++))>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),c=c+r.charAt(i)+r.charAt(o)+r.charAt(l)+r.charAt(u);return c},n.decode=function(e,t){var n,a,s,i,o,l,u="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c>4,a=(15&i)<<4|(o=r.indexOf(e.charAt(c++)))>>2,s=(3&o)<<6|(l=r.indexOf(e.charAt(c++))),u+=String.fromCharCode(n),64!=o&&(u+=String.fromCharCode(a)),64!=l&&(u+=String.fromCharCode(s));return u}},{}],2:[function(e,t,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},t.exports=r},{}],3:[function(e,t,n){"use strict";n.STORE={magic:"\0\0",compress:function(e){return e},uncompress:function(e){return e},compressInputType:null,uncompressInputType:null},n.DEFLATE=e("./flate")},{"./flate":8}],4:[function(e,t,n){"use strict";var r=e("./utils"),a=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];t.exports=function(e,t){if(void 0===e||!e.length)return 0;var n="string"!==r.getTypeOf(e);void 0===t&&(t=0);var s=0;t^=-1;for(var i=0,o=e.length;i>>8^a[255&(t^s)];return-1^t}},{"./utils":21}],5:[function(e,t,n){"use strict";var r=e("./utils");function a(e){this.data=null,this.length=0,this.index=0}a.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1)}},t.exports=a},{"./utils":21}],6:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.comment=null},{}],7:[function(e,t,n){"use strict";var r=e("./utils");n.string2binary=function(e){return r.string2binary(e)},n.string2Uint8Array=function(e){return r.transformTo("uint8array",e)},n.uint8Array2String=function(e){return r.transformTo("string",e)},n.string2Blob=function(e){var t=r.transformTo("arraybuffer",e);return r.arrayBuffer2Blob(t)},n.arrayBuffer2Blob=function(e){return r.arrayBuffer2Blob(e)},n.transformTo=function(e,t){return r.transformTo(e,t)},n.getTypeOf=function(e){return r.getTypeOf(e)},n.checkSupport=function(e){return r.checkSupport(e)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(e){return r.pretty(e)},n.findCompression=function(e){return r.findCompression(e)},n.isRegExp=function(e){return r.isRegExp(e)}},{"./utils":21}],8:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,a=e("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\0",n.compress=function(e){return a.deflateRaw(e)},n.uncompress=function(e){return a.inflateRaw(e)}},{pako:24}],9:[function(e,t,n){"use strict";var r=e("./base64");function a(e,t){if(!(this instanceof a))return new a(e,t);this.files={},this.comment=null,this.root="",e&&this.load(e,t),this.clone=function(){var e=new a;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}a.prototype=e("./object"),a.prototype.load=e("./load"),a.support=e("./support"),a.defaults=e("./defaults"),a.utils=e("./deprecatedPublicUtils"),a.base64={encode:function(e){return r.encode(e)},decode:function(e){return r.decode(e)}},a.compressions=e("./compressions"),t.exports=a},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(e,t,n){"use strict";var r=e("./base64"),a=e("./zipEntries");t.exports=function(e,t){var n,s,i,o;for((t=t||{}).base64&&(e=r.decode(e)),n=(s=new a(e,t)).files,i=0;i>>=8;return r},w=function(){var e,t,n={};for(e=0;e0?e.substring(0,t):""},k=function(e,t){return"/"!=e.slice(-1)&&(e+="/"),t=void 0!==t&&t,this.files[e]||_.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]},E=function(e,t){var n,r=new c;return e._data instanceof c?(r.uncompressedSize=e._data.uncompressedSize,r.crc32=e._data.crc32,0===r.uncompressedSize||e.dir?(t=u.STORE,r.compressedContent="",r.crc32=0):e._data.compressionMethod===t.magic?r.compressedContent=e._data.getCompressedContent():(n=e._data.getContent(),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n)))):((n=g(e))&&0!==n.length&&!e.dir||(t=u.STORE,n=""),r.uncompressedSize=n.length,r.crc32=s(n),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n))),r.compressedSize=r.compressedContent.length,r.compressionMethod=t.magic,r},C=function(e,t,n,r){n.compressedContent;var o,l,u,c,h=a.transformTo("string",f.utf8encode(t.name)),d=t.comment||"",p=a.transformTo("string",f.utf8encode(d)),m=h.length!==t.name.length,g=p.length!==d.length,y=t.options,b="",w="",_="";u=t._initialMetadata.dir!==t.dir?t.dir:y.dir,o=(c=t._initialMetadata.date!==t.date?t.date:y.date).getHours(),o<<=6,o|=c.getMinutes(),o<<=5,o|=c.getSeconds()/2,l=c.getFullYear()-1980,l<<=4,l|=c.getMonth()+1,l<<=5,l|=c.getDate(),m&&(w=v(1,1)+v(s(h),4)+h,b+="up"+v(w.length,2)+w),g&&(_=v(1,1)+v(this.crc32(p),4)+p,b+="uc"+v(_.length,2)+_);var x="";return x+="\n\0",x+=m||g?"\0\b":"\0\0",x+=n.compressionMethod,x+=v(o,2),x+=v(l,2),x+=v(n.crc32,4),x+=v(n.compressedSize,4),x+=v(n.uncompressedSize,4),x+=v(h.length,2),x+=v(b.length,2),{fileRecord:i.LOCAL_FILE_HEADER+x+h+b,dirRecord:i.CENTRAL_FILE_HEADER+"\0"+x+v(p.length,2)+"\0\0\0\0"+(!0===u?"\0\0\0":"\0\0\0\0")+v(r,4)+h+b+p,compressedObject:n}},S={load:function(e,t){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(e){var t,n,r,a,s=[];for(t in this.files)this.files.hasOwnProperty(t)&&(r=this.files[t],a=new b(r.name,r._data,w(r.options)),n=t.slice(this.root.length,t.length),t.slice(0,this.root.length)===this.root&&e(n,a)&&s.push(a));return s},file:function(e,t,n){if(1===arguments.length){if(a.isRegExp(e)){var r=e;return this.filter((function(e,t){return!t.dir&&r.test(e)}))}return this.filter((function(t,n){return!n.dir&&t===e}))[0]||null}return e=this.root+e,_.call(this,e,t,n),this},folder:function(e){if(!e)return this;if(a.isRegExp(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=k.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!=e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r=0;--s)if(this.data[s]===t&&this.data[s+1]===n&&this.data[s+2]===r&&this.data[s+3]===a)return s;return-1},a.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.index,this.index+e);return this.index+=e,t},t.exports=a},{"./dataReader":5}],19:[function(e,t,n){"use strict";var r=e("./utils"),a=function(e){this.data=new Uint8Array(e),this.index=0};a.prototype={append:function(e){0!==e.length&&(e=r.transformTo("uint8array",e),this.data.set(e,this.index),this.index+=e.length)},finalize:function(){return this.data}},t.exports=a},{"./utils":21}],20:[function(e,t,n){"use strict";for(var r=e("./utils"),a=e("./support"),s=e("./nodeBuffer"),i=new Array(256),o=0;o<256;o++)i[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;i[254]=i[254]=1;var l=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t},u=function(e){var t,n,a,s,o=e.length,l=new Array(2*o);for(n=0,t=0;t4)l[n++]=65533,t+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&t1?l[n++]=65533:a<65536?l[n++]=a:(a-=65536,l[n++]=55296|a>>10&1023,l[n++]=56320|1023&a)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)};n.utf8encode=function(e){return a.nodebuffer?s(e,"utf-8"):function(e){var t,n,r,s,i,o=e.length,l=0;for(s=0;s>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t}(e)},n.utf8decode=function(e){if(a.nodebuffer)return r.transformTo("nodebuffer",e).toString("utf-8");for(var t=[],n=0,s=(e=r.transformTo(a.uint8array?"uint8array":"array",e)).length;n1;)try{"array"===i||"nodebuffer"===i?r.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+t,a)))):r.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+t,a)))),o+=t}catch(e){t=Math.floor(t/2)}return r.join("")}function u(e,t){for(var n=0;n1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==n)throw new Error(i[n]);t.header&&r.deflateSetHeader(this.strm,t.header)};function u(e,t){var n=new l(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}l.prototype.push=function(e,t){var n,i,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,o.input="string"==typeof e?s.string2buf(e):e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new a.Buf8(l),o.next_out=0,o.avail_out=l),1!==(n=r.deflate(o,i))&&0!==n)return this.onEnd(n),this.ended=!0,!1;(0===o.avail_out||0===o.avail_in&&4===i)&&("string"===this.options.to?this.onData(s.buf2binstring(a.shrinkBuf(o.output,o.next_out))):this.onData(a.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==n);return 4!==i||(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n)},l.prototype.onData=function(e){this.chunks.push(e)},l.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=l,n.deflate=u,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,u(e,t)}},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(e,t,n){"use strict";var r=e("./zlib/inflate.js"),a=e("./utils/common"),s=e("./utils/strings"),i=e("./zlib/constants"),o=e("./zlib/messages"),l=e("./zlib/zstream"),u=e("./zlib/gzheader"),c=function(e){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==i.Z_OK)throw new Error(o[n]);this.header=new u,r.inflateGetHeader(this.strm,this.header)};function h(e,t){var n=new c(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}c.prototype.push=function(e,t){var n,o,l,u,c,h=this.strm,f=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?i.Z_FINISH:i.Z_NO_FLUSH,h.input="string"==typeof e?s.binstring2buf(e):e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new a.Buf8(f),h.next_out=0,h.avail_out=f),(n=r.inflate(h,i.Z_NO_FLUSH))!==i.Z_STREAM_END&&n!==i.Z_OK)return this.onEnd(n),this.ended=!0,!1;h.next_out&&(0===h.avail_out||n===i.Z_STREAM_END||0===h.avail_in&&o===i.Z_FINISH)&&("string"===this.options.to?(l=s.utf8border(h.output,h.next_out),u=h.next_out-l,c=s.buf2string(h.output,l),h.next_out=u,h.avail_out=f-u,u&&a.arraySet(h.output,h.output,l,u,0),this.onData(c)):this.onData(a.shrinkBuf(h.output,h.next_out)))}while(h.avail_in>0&&n!==i.Z_STREAM_END);return n===i.Z_STREAM_END&&(o=i.Z_FINISH),o!==i.Z_FINISH||(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===i.Z_OK)},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){e===i.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=c,n.inflate=h,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},n.ungzip=h},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var a={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var s=0;s=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&a))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",i=0;i>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,a=t.length;n4)u[r++]=65533,n+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&n1?u[r++]=65533:a<65536?u[r++]=a:(a-=65536,u[r++]=55296|a>>10&1023,u[r++]=56320|1023&a)}return l(u,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t}},{"./common":27}],29:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var a=65535&e|0,s=e>>>16&65535|0,i=0;0!==n;){n-=i=n>2e3?2e3:n;do{s=s+(a=a+t[r++]|0)|0}while(--i);a%=65521,s%=65521}return a|s<<16|0}},{}],30:[function(e,t,n){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,a){var s=r,i=a+n;e^=-1;for(var o=a;o>>8^s[255&(e^t[o])];return-1^e}},{}],32:[function(e,t,n){"use strict";var r=e("../utils/common"),a=e("./trees"),s=e("./adler32"),i=e("./crc32"),o=e("./messages"),l=-2,u=258,c=262,h=103,f=113,d=666;function p(e,t){return e.msg=o[t],t}function m(e){return(e<<1)-(e>4?9:0)}function g(e){for(var t=e.length;--t>=0;)e[t]=0}function y(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(r.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function b(e,t){a._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,y(e.strm)}function v(e,t){e.pending_buf[e.pending++]=t}function w(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function _(e,t){var n,r,a=e.max_chain_length,s=e.strstart,i=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-c?e.strstart-(e.w_size-c):0,h=e.window,f=e.w_mask,d=e.prev,p=e.strstart+u,m=h[s+i-1],g=h[s+i];e.prev_length>=e.good_match&&(a>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(n=t)+i]===g&&h[n+i-1]===m&&h[n]===h[s]&&h[++n]===h[s+1]){s+=2,n++;do{}while(h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&si){if(e.match_start=t,i=r,r>=o)break;m=h[s+i-1],g=h[s+i]}}}while((t=d[t&f])>l&&0!=--a);return i<=e.lookahead?i:e.lookahead}function x(e){var t,n,a,o,l,u,h,f,d,p,m=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-c)){r.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=n=e.hash_size;do{a=e.head[--t],e.head[t]=a>=m?a-m:0}while(--n);t=n=m;do{a=e.prev[--t],e.prev[t]=a>=m?a-m:0}while(--n);o+=m}if(0===e.strm.avail_in)break;if(u=e.strm,h=e.window,f=e.strstart+e.lookahead,d=o,p=void 0,(p=u.avail_in)>d&&(p=d),n=0===p?0:(u.avail_in-=p,r.arraySet(h,u.input,u.next_in,p,f),1===u.state.wrap?u.adler=s(u.adler,h,p,f):2===u.state.wrap&&(u.adler=i(u.adler,h,p,f)),u.next_in+=p,u.total_in+=p,p),e.lookahead+=n,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=(e.ins_h<15&&(o=2,a-=16),s<1||s>9||8!==n||a<8||a>15||t<0||t>9||i<0||i>4)return p(e,l);8===a&&(a=9);var u=new N;return e.state=u,u.strm=e,u.wrap=o,u.gzhead=null,u.w_bits=a,u.w_size=1<>1,u.l_buf=3*u.lit_bufsize,u.level=t,u.strategy=i,u.method=n,D(e)}C=[new S(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(x(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,b(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-c&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(b(e,!1),e.strm.avail_out),1)})),new S(4,4,8,4,k),new S(4,5,16,8,k),new S(4,6,32,32,k),new S(4,4,16,16,E),new S(8,16,32,32,E),new S(8,16,128,128,E),new S(8,32,128,256,E),new S(32,128,258,1024,E),new S(32,258,258,4096,E)],n.deflateInit=function(e,t){return A(e,t,8,15,8,0)},n.deflateInit2=A,n.deflateReset=D,n.deflateResetKeep=I,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?l:(e.state.gzhead=t,0):l},n.deflate=function(e,t){var n,r,s,o;if(!e||!e.state||t>5||t<0)return e?p(e,l):l;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===d&&4!==t)return p(e,0===e.avail_out?-5:l);if(r.strm=e,n=r.last_flush,r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,v(r,31),v(r,139),v(r,8),r.gzhead?(v(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),v(r,255&r.gzhead.time),v(r,r.gzhead.time>>8&255),v(r,r.gzhead.time>>16&255),v(r,r.gzhead.time>>24&255),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(v(r,255&r.gzhead.extra.length),v(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=i(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(v(r,0),v(r,0),v(r,0),v(r,0),v(r,0),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,3),r.status=f);else{var c=8+(r.w_bits-8<<4)<<8;c|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(c|=32),c+=31-c%31,r.status=f,w(r,c),0!==r.strstart&&(w(r,e.adler>>>16),w(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(s=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending!==r.pending_buf_size));)v(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.status=h)}else r.status=h;if(r.status===h&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&y(e),r.pending+2<=r.pending_buf_size&&(v(r,255&e.adler),v(r,e.adler>>8&255),e.adler=0,r.status=f)):r.status=f),0!==r.pending){if(y(e),0===e.avail_out)return r.last_flush=-1,0}else if(0===e.avail_in&&m(t)<=m(n)&&4!==t)return p(e,-5);if(r.status===d&&0!==e.avail_in)return p(e,-5);if(0!==e.avail_in||0!==r.lookahead||0!==t&&r.status!==d){var _=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(x(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,s,i,o=e.window;;){if(e.lookahead<=u){if(x(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=o[s=e.strstart-1])===o[++s]&&r===o[++s]&&r===o[++s]){i=e.strstart+u;do{}while(r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&se.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):C[r.level].func(r,t);if(3!==_&&4!==_||(r.status=d),1===_||3===_)return 0===e.avail_out&&(r.last_flush=-1),0;if(2===_&&(1===t?a._tr_align(r):5!==t&&(a._tr_stored_block(r,0,0,!1),3===t&&(g(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),y(e),0===e.avail_out))return r.last_flush=-1,0}return 4!==t?0:r.wrap<=0?1:(2===r.wrap?(v(r,255&e.adler),v(r,e.adler>>8&255),v(r,e.adler>>16&255),v(r,e.adler>>24&255),v(r,255&e.total_in),v(r,e.total_in>>8&255),v(r,e.total_in>>16&255),v(r,e.total_in>>24&255)):(w(r,e.adler>>>16),w(r,65535&e.adler)),y(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},n.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&t!==h&&t!==f&&t!==d?p(e,l):(e.state=null,t===f?p(e,-3):0):l},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],34:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,a,s,i,o,l,u,c,h,f,d,p,m,g,y,b,v,w,_,x,k,E,C,S;n=e.state,r=e.next_in,C=e.input,a=r+(e.avail_in-5),s=e.next_out,S=e.output,i=s-(t-e.avail_out),o=s+(e.avail_out-257),l=n.dmax,u=n.wsize,c=n.whave,h=n.wnext,f=n.window,d=n.hold,p=n.bits,m=n.lencode,g=n.distcode,y=(1<>>=w=v>>>24,p-=w,0==(w=v>>>16&255))S[s++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=m[(65535&v)+(d&(1<>>=w,p-=w),p<15&&(d+=C[r++]<>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=g[(65535&v)+(d&(1<l){e.msg="invalid distance too far back",n.mode=30;break e}if(d>>>=w,p-=w,x>(w=s-i)){if((w=x-w)>c&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(k=0,E=f,0===h){if(k+=u-w,w<_){_-=w;do{S[s++]=f[k++]}while(--w);k=s-x,E=S}}else if(h2;)S[s++]=E[k++],S[s++]=E[k++],S[s++]=E[k++],_-=3;_&&(S[s++]=E[k++],_>1&&(S[s++]=E[k++]))}else{k=s-x;do{S[s++]=S[k++],S[s++]=S[k++],S[s++]=S[k++],_-=3}while(_>2);_&&(S[s++]=S[k++],_>1&&(S[s++]=S[k++]))}break}}break}}while(r>3,d&=(1<<(p-=_<<3))-1,e.next_in=r,e.next_out=s,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(852),t.distcode=t.distdyn=new r.Buf32(592),t.sane=1,t.back=-1,0):l}function p(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,d(e)):l}function m(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?l:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,p(e))):l}function g(e,t){var n,r;return e?(r=new f,e.state=r,r.window=null,0!==(n=m(e,t))&&(e.state=null),n):l}var y,b,v=!0;function w(e){if(v){var t;for(y=new r.Buf32(512),b=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(o(1,e.lens,0,288,y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;o(2,e.lens,0,32,b,0,e.work,{bits:5}),v=!1}e.lencode=y,e.lenbits=9,e.distcode=b,e.distbits=5}n.inflateReset=p,n.inflateReset2=m,n.inflateResetKeep=d,n.inflateInit=function(e){return g(e,15)},n.inflateInit2=g,n.inflate=function(e,t){var n,f,d,p,m,g,y,b,v,_,x,k,E,C,S,N,I,D,A,T,R,F,O,B,M=0,$=new r.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return l;(n=e.state).mode===u&&(n.mode=13),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,_=g,x=y,F=0;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0),b=0,v=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",n.mode=c;break}if(8!=(15&b)){e.msg="unknown compression method",n.mode=c;break}if(v-=4,R=8+(15&(b>>>=4)),0===n.wbits)n.wbits=R;else if(R>n.wbits){e.msg="invalid window size",n.mode=c;break}n.dmax=1<>8&1),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=3;case 3:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>8&255,$[2]=b>>>16&255,$[3]=b>>>24&255,n.check=s(n.check,$,4,0)),b=0,v=0,n.mode=4;case 4:for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>8),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=5;case 5:if(1024&n.flags){for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((k=n.length)>g&&(k=g),k&&(n.head&&(R=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,f,p,k,R)),512&n.flags&&(n.check=s(n.check,f,k,p)),g-=k,p+=k,n.length-=k),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===g)break e;k=0;do{R=f[p+k++],n.head&&R&&n.length<65536&&(n.head.name+=String.fromCharCode(R))}while(R&&k>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=u;break;case 10:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>=7&v,v-=7&v,n.mode=27;break}for(;v<3;){if(0===g)break e;g--,b+=f[p++]<>>=1)){case 0:n.mode=14;break;case 1:if(w(n),n.mode=20,6===t){b>>>=2,v-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=c}b>>>=2,v-=2;break;case 14:for(b>>>=7&v,v-=7&v;v<32;){if(0===g)break e;g--,b+=f[p++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=c;break}if(n.length=65535&b,b=0,v=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(k=n.length){if(k>g&&(k=g),k>y&&(k=y),0===k)break e;r.arraySet(d,f,p,k,m),g-=k,p+=k,y-=k,m+=k,n.length-=k;break}n.mode=u;break;case 17:for(;v<14;){if(0===g)break e;g--,b+=f[p++]<>>=5,v-=5,n.ndist=1+(31&b),b>>>=5,v-=5,n.ncode=4+(15&b),b>>>=4,v-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=c;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,v-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},F=o(0,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,F){e.msg="invalid code lengths set",n.mode=c;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=S,v-=S,n.lens[n.have++]=I;else{if(16===I){for(B=S+2;v>>=S,v-=S,0===n.have){e.msg="invalid bit length repeat",n.mode=c;break}R=n.lens[n.have-1],k=3+(3&b),b>>>=2,v-=2}else if(17===I){for(B=S+3;v>>=S)),b>>>=3,v-=3}else{for(B=S+7;v>>=S)),b>>>=7,v-=7}if(n.have+k>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=c;break}for(;k--;)n.lens[n.have++]=R}}if(n.mode===c)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=c;break}if(n.lenbits=9,O={bits:n.lenbits},F=o(1,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,F){e.msg="invalid literal/lengths set",n.mode=c;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},F=o(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,F){e.msg="invalid distances set",n.mode=c;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(g>=6&&y>=258){e.next_out=m,e.avail_out=y,e.next_in=p,e.avail_in=g,n.hold=b,n.bits=v,i(e,x),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,n.mode===u&&(n.back=-1);break}for(n.back=0;N=(M=n.lencode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>D)])>>>16&255,I=65535&M,!(D+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=D,v-=D,n.back+=D}if(b>>>=S,v-=S,n.back+=S,n.length=I,0===N){n.mode=26;break}if(32&N){n.back=-1,n.mode=u;break}if(64&N){e.msg="invalid literal/length code",n.mode=c;break}n.extra=15&N,n.mode=22;case 22:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=(M=n.distcode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>D)])>>>16&255,I=65535&M,!(D+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=D,v-=D,n.back+=D}if(b>>>=S,v-=S,n.back+=S,64&N){e.msg="invalid distance code",n.mode=c;break}n.offset=I,n.extra=15&N,n.mode=24;case 24:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=c;break}n.mode=25;case 25:if(0===y)break e;if(k=x-y,n.offset>k){if((k=n.offset-k)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=c;break}k>n.wnext?(k-=n.wnext,E=n.wsize-k):E=n.wnext-k,k>n.length&&(k=n.length),C=n.window}else C=d,E=m-n.offset,k=n.length;k>y&&(k=y),y-=k,n.length-=k;do{d[m++]=C[E++]}while(--k);0===n.length&&(n.mode=21);break;case 26:if(0===y)break e;d[m++]=n.length,y--,n.mode=21;break;case 27:if(n.wrap){for(;v<32;){if(0===g)break e;g--,b|=f[p++]<=i.wsize?(r.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((s=i.wsize-i.wnext)>a&&(s=a),r.arraySet(i.window,t,n-a,s,i.wnext),(a-=s)?(r.arraySet(i.window,t,n-a,a,0),i.wnext=a,i.whave=i.wsize):(i.wnext+=s,i.wnext===i.wsize&&(i.wnext=0),i.whave=1&&0===B[S];S--);if(N>S&&(N=S),0===S)return u[c++]=20971520,u[c++]=20971520,f.bits=1,0;for(C=1;C0&&(0===e||1!==S))return-1;for(M[1]=0,k=1;k<15;k++)M[k+1]=M[k]+B[k];for(E=0;E852||2===e&&T>592)return 1;for(;;){v=k-D,h[E]b?(w=$[P+h[E]],_=F[O+h[E]]):(w=96,_=0),d=1<>D)+(p-=d)]=v<<24|w<<16|_|0}while(0!==p);for(d=1<>=1;if(0!==d?(R&=d-1,R+=d):R=0,E++,0==--B[k]){if(k===S)break;k=t[n+h[E]]}if(k>N&&(R&g)!==m){for(0===D&&(D=N),y+=C,A=1<<(I=k-D);I+D852||2===e&&T>592)return 1;u[m=R&g]=N<<24|I<<16|y-c|0}}return 0!==R&&(u[y+R]=k-D<<24|64<<16|0),f.bits=N,0}},{"../utils/common":27}],37:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(e,t,n){"use strict";var r=e("../utils/common");function a(e){for(var t=e.length;--t>=0;)e[t]=0}var s=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],i=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],u=new Array(576);a(u);var c=new Array(60);a(c);var h=new Array(512);a(h);var f=new Array(256);a(f);var d=new Array(29);a(d);var p=new Array(30);a(p);var m,g,y,b=function(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length},v=function(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t};function w(e){return e<256?h[e]:h[256+(e>>>7)]}function _(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function x(e,t,n){e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<>>=1,n<<=1}while(--t>0);return n>>>1}function C(e,t,n){var r,a,s=new Array(16),i=0;for(r=1;r<=15;r++)s[r]=i=i+n[r-1]<<1;for(a=0;a<=t;a++){var o=e[2*a+1];0!==o&&(e[2*a]=E(s[o]++,o))}}function S(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function N(e){e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function I(e,t,n,r){var a=2*t,s=2*n;return e[a]>1;n>=1;n--)D(e,s,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],D(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,s[2*a]=s[2*n]+s[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,s[2*n+1]=s[2*r+1]=a,e.heap[1]=a++,D(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,s,i,o,l=t.dyn_tree,u=t.max_code,c=t.stat_desc.static_tree,h=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=15;s++)e.bl_count[s]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(s=l[2*l[2*(r=e.heap[n])+1]+1]+1)>p&&(s=p,m++),l[2*r+1]=s,r>u||(e.bl_count[s]++,i=0,r>=d&&(i=f[r-d]),o=l[2*r],e.opt_len+=o*(s+i),h&&(e.static_len+=o*(c[2*r+1]+i)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(s=p;0!==s;s--)for(r=e.bl_count[s];0!==r;)(a=e.heap[--n])>u||(l[2*a+1]!==s&&(e.opt_len+=(s-l[2*a+1])*l[2*a],l[2*a+1]=s),r--)}}(e,t),C(s,u,e.bl_count)}function R(e,t,n){var r,a,s=-1,i=t[1],o=0,l=7,u=4;for(0===i&&(l=138,u=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=i,i=t[2*(r+1)+1],++o>=7;r<30;r++)for(p[r]=a<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),T(e,e.l_desc),T(e,e.d_desc),i=function(e){var t;for(R(e,e.dyn_ltree,e.l_desc.max_code),R(e,e.dyn_dtree,e.d_desc.max_code),T(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*l[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),a=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=a&&(a=s)):a=s=n+5,n+4<=a&&-1!==t?B(e,t,n,r):4===e.strategy||s===a?(x(e,2+(r?1:0),3),A(e,u,c)):(x(e,4+(r?1:0),3),function(e,t,n,r){var a;for(x(e,t-257,5),x(e,n-1,5),x(e,r-4,4),a=0;a>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(f[n]+256+1)]++,e.dyn_dtree[2*w(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){x(e,2,3),k(e,256,u),function(e){16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":27}],39:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}]},{},[9])(9)}))},7869:(e,t,n)=>{!function(t){t.version="0.16.9";var r=1200,a=1252;"undefined"==typeof cptable&&(void 0!==n.g?n.g.cptable=n(6113):"undefined"!=typeof window&&(window.cptable=n(6113)));for(var s=[874,932,936,949,950],i=0;i<=8;++i)s.push(1250+i);var o={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},l=function(e){-1!=s.indexOf(e)&&(a=o[0]=e)},u=function(e){r=e,l(e)};function c(){u(1200),l(1252)}function h(e){for(var t=[],n=0,r=e.length;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n)+(e.charCodeAt(2*n+1)<<8));return t.join("")}(e.slice(2)):254==t&&255==n?function(e){for(var t=[],n=0;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n+1)+(e.charCodeAt(2*n)<<8));return t.join("")}(e.slice(2)):65279==t?e.slice(1):e},d=function(e){return String.fromCharCode(e)},p=function(e){return String.fromCharCode(e)};"undefined"!=typeof cptable&&(u=function(e){r=e,l(e)},f=function(e){return 255===e.charCodeAt(0)&&254===e.charCodeAt(1)?cptable.utils.decode(1200,h(e.slice(2))):e},d=function(e){return 1200===r?String.fromCharCode(e):cptable.utils.decode(r,[255&e,e>>8])[0]},p=function(e){return cptable.utils.decode(a,[e])[0]});var m,g=(m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",{encode:function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0,l=0,u=0;u>2,i=(3&n)<<4|(r=e.charCodeAt(u++))>>4,o=(15&r)<<2|(a=e.charCodeAt(u++))>>6,l=63&a,isNaN(r)?o=l=64:isNaN(a)&&(l=64),t+=m.charAt(s)+m.charAt(i)+m.charAt(o)+m.charAt(l);return t},decode:function(e){var t="",n=0,r=0,a=0,s=0,i=0,o=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var l=0;l>4,t+=String.fromCharCode(n),r=(15&s)<<4|(i=m.indexOf(e.charAt(l++)))>>2,64!==i&&(t+=String.fromCharCode(r)),a=(3&i)<<6|(o=m.indexOf(e.charAt(l++))),64!==o&&(t+=String.fromCharCode(a));return t}}),y="undefined"!=typeof Buffer&&"undefined"!=typeof process&&void 0!==process.versions&&!!process.versions.node,b=function(){};if("undefined"!=typeof Buffer){var v=!Buffer.from;if(!v)try{Buffer.from("foo","utf8")}catch(e){v=!0}b=v?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.alloc||(Buffer.alloc=function(e){return new Buffer(e)}),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)})}function w(e){return y?Buffer.alloc(e):new Array(e)}function _(e){return y?Buffer.allocUnsafe(e):new Array(e)}var x=function(e){return y?b(e,"binary"):e.split("").map((function(e){return 255&e.charCodeAt(0)}))};function k(e){if("undefined"==typeof ArrayBuffer)return x(e);for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r!=e.length;++r)n[r]=255&e.charCodeAt(r);return t}function E(e){if(Array.isArray(e))return e.map((function(e){return String.fromCharCode(e)})).join("");for(var t=[],n=0;n=0;)t+=e.charAt(n--);return t}function n(e,t){for(var n="";n.length=t?r:n("0",t-r.length)+r}function a(e,t){var r=""+e;return r.length>=t?r:n(" ",t-r.length)+r}function s(e,t){var r=""+e;return r.length>=t?r:r+n(" ",t-r.length)}e.version="0.11.2";var i=Math.pow(2,32);function o(e,t){return e>i||e<-i?function(e,t){var r=""+Math.round(e);return r.length>=t?r:n("0",t-r.length)+r}(e,t):function(e,t){var r=""+e;return r.length>=t?r:n("0",t-r.length)+r}(Math.round(e),t)}function l(e,t){return t=t||0,e.length>=7+t&&103==(32|e.charCodeAt(t))&&101==(32|e.charCodeAt(t+1))&&110==(32|e.charCodeAt(t+2))&&101==(32|e.charCodeAt(t+3))&&114==(32|e.charCodeAt(t+4))&&97==(32|e.charCodeAt(t+5))&&108==(32|e.charCodeAt(t+6))}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],c=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function h(e){e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var f={};h(f);var d=[],p=0;for(p=5;p<=8;++p)d[p]=32+p;for(p=23;p<=26;++p)d[p]=0;for(p=27;p<=31;++p)d[p]=14;for(p=50;p<=58;++p)d[p]=14;for(p=59;p<=62;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-58;for(p=72;p<=75;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-57;for(p=76;p<=78;++p)d[p]=p-56;for(p=79;p<=81;++p)d[p]=p-34;var m=[];function g(e,t,n){for(var r=e<0?-1:1,a=e*r,s=0,i=1,o=0,l=1,u=0,c=0,h=Math.floor(a);ut&&(u>t?(c=l,o=s):(c=u,o=i)),!n)return[0,r*o,c];var f=Math.floor(r*o/c);return[f,r*o-f*c,c]}function y(e,t,n){if(e>2958465||e<0)return null;var r=0|e,a=Math.floor(86400*(e-r)),s=0,i=[],o={D:r,T:a,u:86400*(e-r)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(o.u)<1e-6&&(o.u=0),t&&t.date1904&&(r+=1462),o.u>.9999&&(o.u=0,86400==++a&&(o.T=a=0,++r,++o.D)),60===r)i=n?[1317,10,29]:[1900,2,29],s=3;else if(0===r)i=n?[1317,8,29]:[1900,1,0],s=6;else{r>60&&--r;var l=new Date(1900,0,1);l.setDate(l.getDate()+r-1),i=[l.getFullYear(),l.getMonth()+1,l.getDate()],s=l.getDay(),r<60&&(s=(s+6)%7),n&&(s=function(e,t){t[0]-=581;var n=e.getDay();return e<60&&(n=(n+6)%7),n}(l,i))}return o.y=i[0],o.m=i[1],o.d=i[2],o.S=a%60,a=Math.floor(a/60),o.M=a%60,a=Math.floor(a/60),o.H=a,o.q=s,o}m[5]=m[63]='"$"#,##0_);\\("$"#,##0\\)',m[6]=m[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',m[7]=m[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',m[8]=m[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',m[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',m[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',m[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',m[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)',e.parse_date_code=y;var b=new Date(1899,11,31,0,0,0),v=b.getTime(),w=new Date(1900,2,1,0,0,0);function _(e,t){var n=e.getTime();return t?n-=1262304e5:e>=w&&(n+=864e5),(n-(v+6e4*(e.getTimezoneOffset()-b.getTimezoneOffset())))/864e5}e._general_int=function(e){return e.toString(10)};var x=function(){var e=/(?:\.0*|(\.\d*[1-9])0+)$/;function t(t){return-1==t.indexOf(".")?t:t.replace(e,"$1")}var n=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,r=/(E[+-])(\d)$/;return function(e){var a,s=Math.floor(Math.log(Math.abs(e))*Math.LOG10E);return a=s>=-4&&s<=-1?e.toPrecision(10+s):Math.abs(s)<=9?function(e){var n=e<0?12:11,r=t(e.toFixed(12));return r.length<=n||(r=e.toPrecision(10)).length<=n?r:e.toExponential(5)}(e):10===s?e.toFixed(10).substr(0,12):function(e){var n=t(e.toFixed(11));return n.length>(e<0?12:11)||"0"===n||"-0"===n?e.toPrecision(6):n}(e),t(function(e){return-1==e.indexOf("E")?e:e.replace(n,"$1E").replace(r,"$10$2")}(a.toUpperCase()))}}();function k(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(0|e)===e?e.toString(10):x(e);case"undefined":return"";case"object":if(null==e)return"";if(e instanceof Date)return O(14,_(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function E(e,t,n,a){var s,i="",o=0,l=0,h=n.y,f=0;switch(e){case 98:h=n.y+543;case 121:switch(t.length){case 1:case 2:s=h%100,f=2;break;default:s=h%1e4,f=4}break;case 109:switch(t.length){case 1:case 2:s=n.m,f=t.length;break;case 3:return c[n.m-1][1];case 5:return c[n.m-1][0];default:return c[n.m-1][2]}break;case 100:switch(t.length){case 1:case 2:s=n.d,f=t.length;break;case 3:return u[n.q][0];default:return u[n.q][1]}break;case 104:switch(t.length){case 1:case 2:s=1+(n.H+11)%12,f=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:s=n.H,f=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:s=n.M,f=t.length;break;default:throw"bad minute format: "+t}break;case 115:if("s"!=t&&"ss"!=t&&".0"!=t&&".00"!=t&&".000"!=t)throw"bad second format: "+t;return 0!==n.u||"s"!=t&&"ss"!=t?(l=a>=2?3===a?1e3:100:1===a?10:1,(o=Math.round(l*(n.S+n.u)))>=60*l&&(o=0),"s"===t?0===o?"0":""+o/l:(i=r(o,2+a),"ss"===t?i.substr(0,2):"."+i.substr(2,t.length-1))):r(n.S,t.length);case 90:switch(t){case"[h]":case"[hh]":s=24*n.D+n.H;break;case"[m]":case"[mm]":s=60*(24*n.D+n.H)+n.M;break;case"[s]":case"[ss]":s=60*(60*(24*n.D+n.H)+n.M)+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+t}f=3===t.length?1:2;break;case 101:s=h,f=1}return f>0?r(s,f):""}function C(e){if(e.length<=3)return e;for(var t=e.length%3,n=e.substr(0,t);t!=e.length;t+=3)n+=(n.length>0?",":"")+e.substr(t,3);return n}e._general_num=x,e._general=k;var S=function(){var e=/%/g;function i(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+i(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),-1===(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).indexOf("e")){var o=Math.floor(Math.log(t)*Math.LOG10E);for(-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(o-n.length+s):n+="E+"+(o-s);"0."===n.substr(0,2);)n=(n=n.charAt(0)+n.substr(2,a)+"."+n.substr(2+a)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}var l=/# (\?+)( ?)\/( ?)(\d+)/,u=/^#*0*\.([0#]+)/,c=/\).*[0#]/,h=/\(###\) ###\\?-####/;function f(e){for(var t,n="",r=0;r!=e.length;++r)switch(t=e.charCodeAt(r)){case 35:break;case 63:n+=" ";break;case 48:n+="0";break;default:n+=String.fromCharCode(t)}return n}function d(e,t){var n=Math.pow(10,t);return""+Math.round(e*n)/n}function p(e,t){var n=e-Math.floor(e),r=Math.pow(10,t);return t<(""+Math.round(n*r)).length?0:Math.round(n*r)}function m(y,b,v){if(40===y.charCodeAt(0)&&!b.match(c)){var w=b.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return v>=0?m("n",w,v):"("+m("n",w,-v)+")"}if(44===b.charCodeAt(b.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(y,b,v);if(-1!==b.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(y,b,v);if(-1!==b.indexOf("E"))return i(b,v);if(36===b.charCodeAt(0))return"$"+m(y,b.substr(" "==b.charAt(1)?2:1),v);var _,x,k,E,N=Math.abs(v),I=v<0?"-":"";if(b.match(/^00+$/))return I+o(N,b.length);if(b.match(/^[#?]+$/))return"0"===(_=o(v,0))&&(_=""),_.length>b.length?_:f(b.substr(0,b.length-_.length))+_;if(x=b.match(l))return function(e,t,s){var i=parseInt(e[4],10),o=Math.round(t*i),l=Math.floor(o/i),u=o-l*i,c=i;return s+(0===l?"":""+l)+" "+(0===u?n(" ",e[1].length+1+e[4].length):a(u,e[1].length)+e[2]+"/"+e[3]+r(c,e[4].length))}(x,N,I);if(b.match(/^#+0+$/))return I+o(N,b.length-b.indexOf("0"));if(x=b.match(u))return _=d(v,x[1].length).replace(/^([^\.]+)$/,"$1."+f(x[1])).replace(/\.$/,"."+f(x[1])).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(x[1]).length-t.length)})),-1!==b.indexOf("0.")?_:_.replace(/^0\./,".");if(b=b.replace(/^#+([0.])/,"$1"),x=b.match(/^(0*)\.(#*)$/))return I+d(N,x[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,x[1].length?"0.":".");if(x=b.match(/^#{1,3},##0(\.?)$/))return I+C(o(N,0));if(x=b.match(/^#,##0\.([#0]*0)$/))return v<0?"-"+m(y,b,-v):C(""+(Math.floor(v)+function(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}(v,x[1].length)))+"."+r(p(v,x[1].length),x[1].length);if(x=b.match(/^#,#*,#0/))return m(y,b.replace(/^#,#*,/,""),v);if(x=b.match(/^([0#]+)(\\?-([0#]+))+$/))return _=t(m(y,b.replace(/[\\-]/g,""),v)),k=0,t(t(b.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return k<_.length?_.charAt(k++):"0"===e?"0":""})));if(b.match(h))return"("+(_=m(y,"##########",v)).substr(0,3)+") "+_.substr(3,3)+"-"+_.substr(6);var D="";if(x=b.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return k=Math.min(x[4].length,7),E=g(N,Math.pow(10,k)-1,!1),_=""+I," "==(D=S("n",x[1],E[1])).charAt(D.length-1)&&(D=D.substr(0,D.length-1)+"0"),_+=D+x[2]+"/"+x[3],(D=s(E[2],k)).length-2147483648?""+(e>=0?0|e:e-1|0):""+Math.floor(e)}(v)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,(function(e){return"00,"+(e.length<3?r(0,3-e.length):"")+e}))+"."+r(k,x[1].length);switch(b){case"###,##0.00":return m(y,"#,##0.00",v);case"###,###":case"##,###":case"#,###":var R=C(o(N,0));return"0"!==R?I+R:"";case"###,###.00":return m(y,"###,##0.00",v).replace(/^0\./,".");case"#,###.00":return m(y,"#,##0.00",v).replace(/^0\./,".")}throw new Error("unsupported format |"+b+"|")}function y(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+y(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),!(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).match(/[Ee]/)){var i=Math.floor(Math.log(t)*Math.LOG10E);-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(i-n.length+s):n+="E+"+(i-s),n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}function b(i,o,d){if(40===i.charCodeAt(0)&&!o.match(c)){var p=o.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return d>=0?b("n",p,d):"("+b("n",p,-d)+")"}if(44===o.charCodeAt(o.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(i,o,d);if(-1!==o.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(i,o,d);if(-1!==o.indexOf("E"))return y(o,d);if(36===o.charCodeAt(0))return"$"+b(i,o.substr(" "==o.charAt(1)?2:1),d);var m,v,w,_,x=Math.abs(d),k=d<0?"-":"";if(o.match(/^00+$/))return k+r(x,o.length);if(o.match(/^[#?]+$/))return m=""+d,0===d&&(m=""),m.length>o.length?m:f(o.substr(0,o.length-m.length))+m;if(v=o.match(l))return function(e,t,r){return r+(0===t?"":""+t)+n(" ",e[1].length+2+e[4].length)}(v,x,k);if(o.match(/^#+0+$/))return k+r(x,o.length-o.indexOf("0"));if(v=o.match(u))return m=(m=(""+d).replace(/^([^\.]+)$/,"$1."+f(v[1])).replace(/\.$/,"."+f(v[1]))).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(v[1]).length-t.length)})),-1!==o.indexOf("0.")?m:m.replace(/^0\./,".");if(o=o.replace(/^#+([0.])/,"$1"),v=o.match(/^(0*)\.(#*)$/))return k+(""+x).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,v[1].length?"0.":".");if(v=o.match(/^#{1,3},##0(\.?)$/))return k+C(""+x);if(v=o.match(/^#,##0\.([#0]*0)$/))return d<0?"-"+b(i,o,-d):C(""+d)+"."+n("0",v[1].length);if(v=o.match(/^#,#*,#0/))return b(i,o.replace(/^#,#*,/,""),d);if(v=o.match(/^([0#]+)(\\?-([0#]+))+$/))return m=t(b(i,o.replace(/[\\-]/g,""),d)),w=0,t(t(o.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return w-1||"\\"==n&&"-"==e.charAt(t+1)&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===n;);break;case"*":++t," "!=e.charAt(t)&&"*"!=e.charAt(t)||++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t-1;);break;case" ":default:++t}return!1}function A(e,t,n,r){for(var a,s,i,o=[],u="",c=0,h="",f="t",d="H";c=12?"P":"A"),g.t="T",d="h",c+=3):"AM/PM"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"PM":"AM"),g.t="T",c+=5,d="h"):"上午/下午"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"下午":"上午"),g.t="T",c+=5,d="h"):(g.t="t",++c),null==a&&"T"===g.t)return"";o[o.length]=g,f=h;break;case"[":for(u=h;"]"!==e.charAt(c++)&&c-1&&(u=(u.match(/\$([^-\[\]]*)/)||[])[1]||"$",D(e)||(o[o.length]={t:"t",v:u}));break;case".":if(null!=a){for(u=h;++c-1;)u+=h;o[o.length]={t:"n",v:u};break;case"?":for(u=h;e.charAt(++c)===h;)u+=h;o[o.length]={t:h,v:u},f=h;break;case"*":++c," "!=e.charAt(c)&&"*"!=e.charAt(c)||++c;break;case"(":case")":o[o.length]={t:1===r?"t":h,v:h},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(u=h;c-1;)u+=e.charAt(c);o[o.length]={t:"D",v:u};break;case" ":o[o.length]={t:h,v:h},++c;break;case"$":o[o.length]={t:"t",v:"$"},++c;break;default:if(-1===",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h))throw new Error("unrecognized character "+h+" in "+e);o[o.length]={t:"t",v:h},++c}var b,v=0,w=0;for(c=o.length-1,f="t";c>=0;--c)switch(o[c].t){case"h":case"H":o[c].t=d,f="h",v<1&&(v=1);break;case"s":(b=o[c].v.match(/\.0+$/))&&(w=Math.max(w,b[0].length-1)),v<3&&(v=3);case"d":case"y":case"M":case"e":f=o[c].t;break;case"m":"s"===f&&(o[c].t="M",v<2&&(v=2));break;case"X":break;case"Z":v<1&&o[c].v.match(/[Hh]/)&&(v=1),v<2&&o[c].v.match(/[Mm]/)&&(v=2),v<3&&o[c].v.match(/[Ss]/)&&(v=3)}switch(v){case 0:break;case 1:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H);break;case 2:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M)}var _,x="";for(c=0;c0){40==x.charCodeAt(0)?(C=t<0&&45===x.charCodeAt(0)?-t:t,N=S("n",x,C)):(N=S("n",x,C=t<0&&r>1?-t:t),C<0&&o[0]&&"t"==o[0].t&&(N=N.substr(1),o[0].v="-"+o[0].v)),_=N.length-1;var T=o.length;for(c=0;c-1){T=c;break}var R=o.length;if(T===o.length&&-1===N.indexOf("E")){for(c=o.length-1;c>=0;--c)null!=o[c]&&-1!=="n?".indexOf(o[c].t)&&(_>=o[c].v.length-1?(_-=o[c].v.length,o[c].v=N.substr(_+1,o[c].v.length)):_<0?o[c].v="":(o[c].v=N.substr(0,_+1),_=-1),o[c].t="t",R=c);_>=0&&R=0;--c)if(null!=o[c]&&-1!=="n?".indexOf(o[c].t)){for(s=o[c].v.indexOf(".")>-1&&c===T?o[c].v.indexOf(".")-1:o[c].v.length-1,A=o[c].v.substr(s+1);s>=0;--s)_>=0&&("0"===o[c].v.charAt(s)||"#"===o[c].v.charAt(s))&&(A=N.charAt(_--)+A);o[c].v=A,o[c].t="t",R=c}for(_>=0&&R-1&&c===T?o[c].v.indexOf(".")+1:0,A=o[c].v.substr(0,s);s-1&&(C=r>1&&t<0&&c>0&&"-"===o[c-1].v?-t:t,o[c].v=S(o[c].t,o[c].v,C),o[c].t="t");var F="";for(c=0;c!==o.length;++c)null!=o[c]&&(F+=o[c].v);return F}e.is_date=D,e._eval=A;var T=/\[[=<>]/,R=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function F(e,t){if(null==t)return!1;var n=parseFloat(t[2]);switch(t[1]){case"=":if(e==n)return!0;break;case">":if(e>n)return!0;break;case"<":if(e":if(e!=n)return!0;break;case">=":if(e>=n)return!0;break;case"<=":if(e<=n)return!0}return!1}function O(e,t,n){null==n&&(n={});var r="";switch(typeof e){case"string":r="m/d/yy"==e&&n.dateNF?n.dateNF:e;break;case"number":null==(r=14==e&&n.dateNF?n.dateNF:(null!=n.table?n.table:f)[e])&&(r=n.table&&n.table[d[e]]||f[d[e]]),null==r&&(r=m[e]||"General")}if(l(r,0))return k(t,n);t instanceof Date&&(t=_(t,n.date1904));var a=function(e,t){var n=N(e),r=n.length,a=n[r-1].indexOf("@");if(r<4&&a>-1&&--r,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if("number"!=typeof t)return[4,4===n.length||a>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=a>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=a>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=a>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"]}var s=t>0?n[0]:t<0?n[1]:n[2];if(-1===n[0].indexOf("[")&&-1===n[1].indexOf("["))return[r,s];if(null!=n[0].match(T)||null!=n[1].match(T)){var i=n[0].match(R),o=n[1].match(R);return F(t,i)?[r,n[0]]:F(t,o)?[r,n[1]]:[r,n[null!=i&&null!=o?2:1]]}return[r,s]}(r,t);if(l(a[1]))return k(t,n);if(!0===t)t="TRUE";else if(!1===t)t="FALSE";else if(""===t||null==t)return"";return A(a[1],t,n,a[0])}function B(e,t){if("number"!=typeof t){t=+t||-1;for(var n=0;n<392;++n)if(null!=f[n]){if(f[n]==e){t=n;break}}else t<0&&(t=n);t<0&&(t=391)}return f[t]=e,t}e.load=B,e._table=f,e.get_table=function(){return f},e.load_table=function(e){for(var t=0;392!=t;++t)void 0!==e[t]&&B(e[t],t)},e.init_table=h,e.format=O};A(D);var T,R={"General Number":"General","General Date":D._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":D._table[15],"Short Date":D._table[14],"Long Time":D._table[19],"Medium Time":D._table[18],"Short Time":D._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:D._table[2],Standard:D._table[4],Percent:D._table[10],Scientific:D._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'},F={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},O=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;!function(e){e.version="1.2.0";var t=function(){for(var e=0,t=new Array(256),n=0;256!=n;++n)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=n)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[n]=e;return"undefined"!=typeof Int32Array?new Int32Array(t):t}();e.table=t,e.bstr=function(e,n){for(var r=-1^n,a=e.length-1,s=0;s>>8^t[255&(r^e.charCodeAt(s++))])>>>8^t[255&(r^e.charCodeAt(s++))];return s===a&&(r=r>>>8^t[255&(r^e.charCodeAt(s))]),-1^r},e.buf=function(e,n){if(e.length>1e4)return function(e,n){for(var r=-1^n,a=e.length-7,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r}(e,n);for(var r=-1^n,a=e.length-3,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r},e.str=function(e,n){for(var r,a,s=-1^n,i=0,o=e.length;i>>8^t[255&(s^r)]:r<2048?s=(s=s>>>8^t[255&(s^(192|r>>6&31))])>>>8^t[255&(s^(128|63&r))]:r>=55296&&r<57344?(r=64+(1023&r),a=1023&e.charCodeAt(i++),s=(s=(s=(s=s>>>8^t[255&(s^(240|r>>8&7))])>>>8^t[255&(s^(128|r>>2&63))])>>>8^t[255&(s^(128|a>>6&15|(3&r)<<4))])>>>8^t[255&(s^(128|63&a))]):s=(s=(s=s>>>8^t[255&(s^(224|r>>12&15))])>>>8^t[255&(s^(128|r>>6&63))])>>>8^t[255&(s^(128|63&r))];return-1^s}}(T={});var B,M=function(){var e,t={};function r(e){if("/"==e.charAt(e.length-1))return-1===e.slice(0,-1).indexOf("/")?e:r(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(0,t+1)}function a(e){if("/"==e.charAt(e.length-1))return a(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(t+1)}function s(e,t){"string"==typeof t&&(t=new Date(t));var n=t.getHours();n=(n=n<<6|t.getMinutes())<<5|t.getSeconds()>>>1,e.write_shift(2,n);var r=t.getFullYear()-1980;r=(r=r<<4|t.getMonth()+1)<<5|t.getDate(),e.write_shift(2,r)}function i(e){Bt(e,0);for(var t={},n=0;e.l<=e.length-4;){var r=e.read_shift(2),a=e.read_shift(2),s=e.l+a,i={};switch(r){case 21589:1&(n=e.read_shift(1))&&(i.mtime=e.read_shift(4)),a>5&&(2&n&&(i.atime=e.read_shift(4)),4&n&&(i.ctime=e.read_shift(4))),i.mtime&&(i.mt=new Date(1e3*i.mtime))}e.l=s,t[r]=i}return t}function o(){return e||(e=n(2993))}function l(e,t){if(80==e[0]&&75==e[1])return he(e,t);if(e.length<512)throw new Error("CFB file size "+e.length+" < 512");var n,r,a,s,i,o,l=512,d=[],p=e.slice(0,512);Bt(p,0);var m=function(e){if(80==e[e.l]&&75==e[e.l+1])return[0,0];e.chk(E,"Header Signature: "),e.l+=16;var t=e.read_shift(2,"u");return[e.read_shift(2,"u"),t]}(p);switch(n=m[0]){case 3:l=512;break;case 4:l=4096;break;case 0:if(0==m[1])return he(e,t);default:throw new Error("Major Version: Expected 3 or 4 saw "+n)}512!==l&&Bt(p=e.slice(0,l),28);var g=e.slice(0,l);!function(e,t){var n;switch(e.l+=2,n=e.read_shift(2)){case 9:if(3!=t)throw new Error("Sector Shift: Expected 9 saw "+n);break;case 12:if(4!=t)throw new Error("Sector Shift: Expected 12 saw "+n);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+n)}e.chk("0600","Mini Sector Shift: "),e.chk("000000000000","Reserved: ")}(p,n);var y=p.read_shift(4,"i");if(3===n&&0!==y)throw new Error("# Directory Sectors: Expected 0 saw "+y);p.l+=4,s=p.read_shift(4,"i"),p.l+=4,p.chk("00100000","Mini Stream Cutoff Size: "),i=p.read_shift(4,"i"),r=p.read_shift(4,"i"),o=p.read_shift(4,"i"),a=p.read_shift(4,"i");for(var b=-1,v=0;v<109&&!((b=p.read_shift(4,"i"))<0);++v)d[v]=b;var w=function(e,t){for(var n=Math.ceil(e.length/t)-1,r=[],a=1;a=a&&(f-=a),!i[f]){l=[];var p=[];for(h=f;h>=0;){p[h]=!0,i[h]=!0,o[o.length]=h,l.push(e[h]);var m=n[Math.floor(4*h/r)];if(r<4+(d=4*h&u))throw new Error("FAT boundary crossed: "+h+" 4 "+r);if(!e[m])break;if(p[h=Dt(e[m],d)])break}s[f]={nodes:o,data:it([l])}}return s}(w,s,d,l);_[s].name="!Directory",r>0&&i!==k&&(_[i].name="!MiniFAT"),_[d[0]].name="!FAT",_.fat_addrs=d,_.ssz=l;var x=[],C=[],S=[];!function(e,t,n,r,a,s,i,o){for(var l,c=0,d=r.length?2:0,p=t[e].data,m=0,g=0;m0&&c!==k&&(t[c].name="!StreamData")):b.size>=4096?(b.storage="fat",void 0===t[b.start]&&(t[b.start]=h(n,b.start,t.fat_addrs,t.ssz)),t[b.start].name=b.name,b.content=t[b.start].data.slice(0,b.size)):(b.storage="minifat",b.size<0?b.size=0:c!==k&&b.start!==k&&t[c]&&(b.content=u(b,t[c].data,(t[o]||{}).data))),b.content&&Bt(b.content,0),s[l]=b,i.push(b)}}(s,_,w,x,r,{},C,i),function(e,t,n){for(var r=0,a=0,s=0,i=0,o=0,l=n.length,u=[],c=[];r0&&i>=0;)s.push(t.slice(i*v,i*v+v)),a-=v,i=Dt(n,4*i);return 0===s.length?$t(0):S(s).slice(0,e.size)}function c(e,t,n,r,a){var s=k;if(e===k){if(0!==t)throw new Error("DIFAT chain shorter than expected")}else if(-1!==e){var i=n[e],o=(r>>>2)-1;if(!i)return;for(var l=0;l=0;){a[l]=!0,s[s.length]=l,i.push(e[l]);var c=n[Math.floor(4*l/r)];if(r<4+(u=4*l&o))throw new Error("FAT boundary crossed: "+l+" 4 "+r);if(!e[c])break;l=Dt(e[c],u)}return{nodes:s,data:it([i])}}function f(e,t){return new Date(1e3*(It(e,t+4)/1e7*Math.pow(2,32)+It(e,t)/1e7-11644473600))}function d(e,t){var n=t||{},r=n.root||"Root Entry";if(e.FullPaths||(e.FullPaths=[]),e.FileIndex||(e.FileIndex=[]),e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");0===e.FullPaths.length&&(e.FullPaths[0]=r+"/",e.FileIndex[0]={name:r,type:5}),n.CLSID&&(e.FileIndex[0].clsid=n.CLSID),function(e){var t="Sh33tJ5";if(!M.find(e,"/"+t)){var n=$t(4);n[0]=55,n[1]=n[3]=50,n[2]=54,e.FileIndex.push({name:t,type:2,content:n,size:4,L:69,R:69,C:69}),e.FullPaths.push(e.FullPaths[0]+t),p(e)}}(e)}function p(e,t){d(e);for(var n=!1,s=!1,i=e.FullPaths.length-1;i>=0;--i){var o=e.FileIndex[i];switch(o.type){case 0:s?n=!0:(e.FileIndex.pop(),e.FullPaths.pop());break;case 1:case 2:case 5:s=!0,isNaN(o.R*o.L*o.C)&&(n=!0),o.R>-1&&o.L>-1&&o.R==o.L&&(n=!0);break;default:n=!0}}if(n||t){var l=new Date(1987,1,19),u=0,c=[];for(i=0;i1?1:-1,f.size=0,f.type=5;else if("/"==p.slice(-1)){for(u=i+1;u=c.length?-1:u,u=i+1;u=c.length?-1:u,f.type=1}else r(e.FullPaths[i+1]||"")==r(p)&&(f.R=i+1),f.type=2}}}function m(e,t){var n=t||{};if(p(e),"zip"==n.fileType)return function(e,t){var n=t||{},r=[],a=[],i=$t(1),o=n.compression?8:0,l=0,u=0,c=0,h=0,f=e.FullPaths[0],d=f,p=e.FileIndex[0],m=[],g=0;for(l=1;l0&&(s<4096?t+=s+63>>6:n+=s+511>>9)}}for(var i=e.FullPaths.length+3>>2,o=t+127>>7,l=(t+7>>3)+n+i+o,u=l+127>>7,c=u<=109?0:Math.ceil((u-109)/127);l+u+c+127>>7>u;)c=++u<=109?0:Math.ceil((u-109)/127);var h=[1,c,u,o,i,n,t,0];return e.FileIndex[0].size=t<<6,h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3),h}(e),a=$t(r[7]<<9),i=0,o=0;for(i=0;i<8;++i)a.write_shift(1,C[i]);for(i=0;i<8;++i)a.write_shift(2,0);for(a.write_shift(2,62),a.write_shift(2,3),a.write_shift(2,65534),a.write_shift(2,9),a.write_shift(2,6),i=0;i<3;++i)a.write_shift(2,0);for(a.write_shift(4,0),a.write_shift(4,r[2]),a.write_shift(4,r[0]+r[1]+r[2]+r[3]-1),a.write_shift(4,0),a.write_shift(4,4096),a.write_shift(4,r[3]?r[0]+r[1]+r[2]-1:k),a.write_shift(4,r[3]),a.write_shift(-4,r[1]?r[0]-1:k),a.write_shift(4,r[1]),i=0;i<109;++i)a.write_shift(-4,i>9)));for(l(r[6]+7>>3);511&a.l;)a.write_shift(-4,A.ENDOFCHAIN);for(o=i=0,u=0;u=4096||(h.start=o,l(c+63>>6)));for(;511&a.l;)a.write_shift(-4,A.ENDOFCHAIN);for(i=0;i=4096){for(a.l=h.start+1<<9,u=0;u0&&h.size<4096){for(u=0;u>16|B>>8|B));function V(e,t){var n=W[255&e];return t<=8?n>>>8-t:(n=n<<8|W[e>>8&255],t<=16?n>>>16-t:(n=n<<8|W[e>>16&255])>>>24-t)}function j(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=6?0:e[r+1]<<8))>>>n&3}function H(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=5?0:e[r+1]<<8))>>>n&7}function G(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=3?0:e[r+1]<<8))>>>n&31}function q(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=1?0:e[r+1]<<8))>>>n&127}function K(e,t,n){var r=7&t,a=t>>>3,s=(1<>>r;return n<8-r?i&s:(i|=e[a+1]<<8-r,n<16-r?i&s:(i|=e[a+2]<<16-r,n<24-r?i&s:(i|=e[a+3]<<24-r)&s))}function X(e,t){var n=e.length,r=2*n>t?2*n:t+5,a=0;if(n>=t)return e;if(y){var s=_(r);if(e.copy)e.copy(s);else for(;a0;)t[t.l++]=e[n++]}return t.l},function(e){var t=$t(50+Math.floor(1.1*e.length)),n=J(e,t);return t.slice(0,n)});function Q(e,t,n){var r=1,a=0,s=0,i=0,o=0,l=e.length,u=z?new Uint16Array(32):Y(32);for(s=0;s<32;++s)u[s]=0;for(s=l;s>r-h,i=(1<=0;--i)t[o|i<>>3;return(e[r]|(n<=4?0:e[r+1]<<8))>>>n&15}(e,t+=5)+4;t+=4;for(var s=0,i=z?new Uint8Array(19):Y(19),o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=1,u=z?new Uint8Array(8):Y(8),c=z?new Uint8Array(8):Y(8),h=i.length,f=0;f>8-p;for(var m=(1<<7-p)-1;m>=0;--m)se[d|m<>>=3){case 16:for(s=3+j(e,t),t+=2,d=g[g.length-1];s-- >0;)g.push(d);break;case 17:for(s=3+H(e,t),t+=3;s-- >0;)g.push(0);break;case 18:for(s=11+q(e,t),t+=7;s-- >0;)g.push(0);break;default:g.push(d),l>>0,o=0,l=0;0==(1&r);)if(r=H(e,n),n+=3,r>>>1!=0)for(r>>>1==1?(o=9,l=5):(n=le(e,n),o=ie,l=oe),!t&&i>>1==1?ee[u]:re[u];if(n+=15&c,0==((c>>>=4)>>>8&255))a[s++]=c;else{if(256==c)break;var h=(c-=257)<8?0:c-4>>2;h>5&&(h=0);var f=s+P[c];h>0&&(f+=K(e,n,h),n+=h),u=K(e,n,l),n+=15&(c=r>>>1==1?te[u]:ae[u]);var d=(c>>>=4)<4?0:c-2>>1,p=L[c];for(d>0&&(p+=K(e,n,d),n+=d),!t&&i>>3]|e[1+(n>>>3)]<<8;if(n+=32,!t&&i>>3,(n>>>3)+m),s+=m,n+=8*m;else for(;m-- >0;)a[s++]=e[n>>>3],n+=8}return[t?a:a.slice(0,s),n+7>>>3]}(e.slice(e.l||0),t);return e.l+=n[1],n[0]}function ce(e,t){if(!e)throw new Error(t);"undefined"!=typeof console&&console.error(t)}function he(e,t){var n=e;Bt(n,0);var r={FileIndex:[],FullPaths:[]};d(r,{root:t.root});for(var a=n.length-4;(80!=n[a]||75!=n[a+1]||5!=n[a+2]||6!=n[a+3])&&a>=0;)--a;n.l=a+4,n.l+=4;var s=n.read_shift(2);n.l+=6;var o=n.read_shift(4);for(n.l=o,a=0;a>>=5);n>>>=4,r.setMilliseconds(0),r.setFullYear(n+1980),r.setMonth(s-1),r.setDate(a);var i=31&t,o=63&(t>>>=5);return t>>>=6,r.setHours(t),r.setMinutes(o),r.setSeconds(i<<1),r}(e);if(8257&s)throw new Error("Unsupported ZIP encryption");for(var u=e.read_shift(4),c=e.read_shift(4),h=e.read_shift(4),f=e.read_shift(2),d=e.read_shift(2),p="",m=0;m3&&(r=!0),a[s].slice(a[s].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+a[s].slice(a[s].length-1));case"D":n*=24;case"H":n*=60;case"M":if(!r)throw new Error("Unsupported ISO Duration Field: M");n*=60}t+=n*parseInt(a[s],10)}return t}var J=new Date("2017-02-19T19:06:09.000Z");isNaN(J.getFullYear())&&(J=new Date("2/19/17"));var Z=2017==J.getFullYear();function Q(e,t){var n=new Date(e);if(Z)return t>0?n.setTime(n.getTime()+60*n.getTimezoneOffset()*1e3):t<0&&n.setTime(n.getTime()-60*n.getTimezoneOffset()*1e3),n;if(e instanceof Date)return e;if(1917==J.getFullYear()&&!isNaN(n.getFullYear())){var r=n.getFullYear();return e.indexOf(""+r)>-1||n.setFullYear(n.getFullYear()+100),n}var a=e.match(/\d+/g)||["2017","2","19","0","0","0"],s=new Date(+a[0],+a[1]-1,+a[2],+a[3]||0,+a[4]||0,+a[5]||0);return e.indexOf("Z")>-1&&(s=new Date(s.getTime()-60*s.getTimezoneOffset()*1e3)),s}function ee(e){for(var t="",n=0;n!=e.length;++n)t+=String.fromCharCode(e[n]);return t}function te(e){if("undefined"!=typeof JSON&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if("object"!=typeof e||null==e)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=te(e[n]));return t}function ne(e,t){for(var n="";n.length8099?n:(a>0||s>1)&&101!=r||e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)?t:e.match(/[^-0-9:,\/\\]/)?n:t}var se,ie=5=="abacaba".split(/(:?b)/i).length;function oe(e){return e?e.data?f(e.data):e.asNodeBuffer&&y?f(e.asNodeBuffer().toString("binary")):e.asBinary?f(e.asBinary()):e._data&&e._data.getContent?f(ee(Array.prototype.slice.call(e._data.getContent(),0))):e.content&&e.type?f(ee(e.content)):null:null}function le(e,t){for(var n=e.FullPaths||z(e.files),r=t.toLowerCase(),a=r.replace(/\//g,"\\"),s=0;s\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,ye=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s?[\/\?]?>/gm;me.match(ye)||(ye=/<[^>]*>/g);var be=/<\w*:/,ve=/<(\/?)\w+:/;function we(e,t,n){for(var r={},a=0,s=0;a!==e.length&&32!==(s=e.charCodeAt(a))&&10!==s&&13!==s;++a);if(t||(r[0]=e.slice(0,a)),a===e.length)return r;var i=e.match(ge),o=0,l="",u=0,c="",h="",f=1;if(i)for(u=0;u!=i.length;++u){for(h=i[u],s=0;s!=h.length&&61!==h.charCodeAt(s);++s);for(c=h.slice(0,s).trim();32==h.charCodeAt(s+1);)++s;for(f=34==(a=h.charCodeAt(s+1))||39==a?1:0,l=h.slice(s+1+f,h.length-f),o=0;o!=c.length&&58!==c.charCodeAt(o);++o);if(o===c.length)c.indexOf("_")>0&&(c=c.slice(0,c.indexOf("_"))),r[c]=l,n||(r[c.toLowerCase()]=l);else{var d=(5===o&&"xmlns"===c.slice(0,5)?"xmlns":"")+c.slice(o+1);if(r[d]&&"ext"==c.slice(o-3,o))continue;r[d]=l,n||(r[d.toLowerCase()]=l)}}return r}function _e(e){return e.replace(ve,"<$1")}var xe,ke,Ee={""":'"',"'":"'",">":">","<":"<","&":"&"},Ce=U(Ee),Se=(xe=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi,ke=/_x([\da-fA-F]{4})_/gi,function e(t){var n=t+"",r=n.indexOf("-1?16:10))||e})).replace(ke,(function(e,t){return String.fromCharCode(parseInt(t,16))}));var a=n.indexOf("]]>");return e(n.slice(0,r))+n.slice(r+9,a)+e(n.slice(a+3))}),Ne=/[&<>'"]/g,Ie=/[\u0000-\u0008\u000b-\u001f]/g;function De(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(Ie,(function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"}))}function Ae(e){return De(e).replace(/ /g,"_x0020_")}var Te=/[\u0000-\u001f]/g;function Re(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(/\n/g,"
").replace(Te,(function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"}))}var Fe=function(){var e=/&#(\d+);/g;function t(e,t){return String.fromCharCode(parseInt(t,10))}return function(n){return n.replace(e,t)}}();function Oe(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}var Be=function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0;n191&&r<224?(i=(31&r)<<6,i|=63&a,t+=String.fromCharCode(i)):(s=e.charCodeAt(n++),r<240?t+=String.fromCharCode((15&r)<<12|(63&a)<<6|63&s):(o=((7&r)<<18|(63&a)<<12|(63&s)<<6|63&(i=e.charCodeAt(n++)))-65536,t+=String.fromCharCode(55296+(o>>>10&1023)),t+=String.fromCharCode(56320+(1023&o)))));return t},Me=function(e){for(var t=[],n=0,r=0,a=0;n>6))),t.push(String.fromCharCode(128+(63&r)));break;case r>=55296&&r<57344:r-=55296,a=e.charCodeAt(n++)-56320+(r<<10),t.push(String.fromCharCode(240+(a>>18&7))),t.push(String.fromCharCode(144+(a>>12&63))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(63&a)));break;default:t.push(String.fromCharCode(224+(r>>12))),t.push(String.fromCharCode(128+(r>>6&63))),t.push(String.fromCharCode(128+(63&r)))}return t.join("")};if(y){var $e=function(e){var t,n,r,a=Buffer.alloc(2*e.length),s=1,i=0,o=0;for(n=0;n>>10&1023),t=56320+(1023&t)),0!==o&&(a[i++]=255&o,a[i++]=o>>>8,o=0),a[i++]=t%256,a[i++]=t>>>8;return a.slice(0,i).toString("ucs2")},Pe="foo bar baz☃🍣";Be(Pe)==$e(Pe)&&(Be=$e);var Le=function(e){return b(e,"binary").toString("utf8")};Be(Pe)==Le(Pe)&&(Be=Le),Me=function(e){return b(e,"utf8").toString("binary")}}var ze,We,Ue,Ve=(ze={},function(e,t){var n=e+"|"+(t||"");return ze[n]?ze[n]:ze[n]=new RegExp("<(?:\\w+:)?"+e+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",t||"")}),je=(We=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map((function(e){return[new RegExp("&"+e[0]+";","ig"),e[1]]})),function(e){for(var t=e.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,"\n").replace(/<[^>]*>/g,""),n=0;n([\\s\\S]*?)","g")}),Ge=/<\/?(?:vt:)?variant>/g,qe=/<(?:vt:)([^>]*)>([\s\S]*)"+t+""}function Je(e){return z(e).map((function(t){return" "+t+'="'+e[t]+'"'})).join("")}function Ze(e,t,n){return"<"+e+(null!=n?Je(n):"")+(null!=t?(t.match(Xe)?' xml:space="preserve"':"")+">"+t+""}function Qe(e,t){try{return e.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}return""}var et,tt,nt={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",main:["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"]},rt="urn:schemas-microsoft-com:office:office",at="urn:schemas-microsoft-com:office:excel",st="urn:schemas-microsoft-com:office:spreadsheet",it=function(e){for(var t=[],n=0;n0?ft(e,t+4,t+4+n-1):""},mt=pt,gt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},yt=gt,bt=function(e,t){var n=2*It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},vt=bt;et=tt=function(e,t){var n=It(e,t);return n>0?lt(e,t+4,t+4+n):""};var wt,_t,xt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n):""},kt=xt;wt=_t=function(e,t){return function(e,t){for(var n=1-2*(e[t+7]>>>7),r=((127&e[t+7])<<4)+(e[t+6]>>>4&15),a=15&e[t+6],s=5;s>=0;--s)a=256*a+e[t+s];return 2047==r?0==a?n*(1/0):NaN:(0==r?r=-1022:(r-=1023,a+=Math.pow(2,52)),n*Math.pow(2,r-52)*a)}(e,t)};var Et=function(e){return Array.isArray(e)};y&&(lt=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf16le",t,n).replace(N,""):ut(e,t,n)},ct=function(e,t,n){return Buffer.isBuffer(e)?e.toString("hex",t,t+n):ht(e,t,n)},pt=function(e,t){if(!Buffer.isBuffer(e))return mt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},gt=function(e,t){if(!Buffer.isBuffer(e))return yt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},bt=function(e,t){if(!Buffer.isBuffer(e))return vt(e,t);var n=2*e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n-1)},et=function(e,t){if(!Buffer.isBuffer(e))return tt(e,t);var n=e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n)},xt=function(e,t){if(!Buffer.isBuffer(e))return kt(e,t);var n=e.readUInt32LE(t);return e.toString("utf8",t+4,t+4+n)},ft=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf8",t,n):dt(e,t,n)},it=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):ot(e)},S=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)},wt=function(e,t){return Buffer.isBuffer(e)?e.readDoubleLE(t):_t(e,t)},Et=function(e){return Buffer.isBuffer(e)||Array.isArray(e)}),"undefined"!=typeof cptable&&(lt=function(e,t,n){return cptable.utils.decode(1200,e.slice(t,n)).replace(N,"")},ft=function(e,t,n){return cptable.utils.decode(65001,e.slice(t,n))},pt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(a,e.slice(t+4,t+4+n-1)):""},gt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(r,e.slice(t+4,t+4+n-1)):""},bt=function(e,t){var n=2*It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n-1)):""},et=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n)):""},xt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(65001,e.slice(t+4,t+4+n)):""});var Ct=function(e,t){return e[t]},St=function(e,t){return 256*e[t+1]+e[t]},Nt=function(e,t){var n=256*e[t+1]+e[t];return n<32768?n:-1*(65535-n+1)},It=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},Dt=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},At=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function Tt(e,t){var n,a,s,i,o,l,u="",c=[];switch(t){case"dbcs":if(l=this.l,y&&Buffer.isBuffer(this))u=this.slice(this.l,this.l+2*e).toString("utf16le");else for(o=0;o0?Dt:At)(this,this.l),this.l+=4,n):(a=It(this,this.l),this.l+=4,a);case 8:case-8:if("f"===t)return a=8==e?wt(this,this.l):wt([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),this.l+=8,a;e=8;case 16:u=ct(this,this.l,e)}}return this.l+=e,u}var Rt=function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255};function Ft(e,t,n){var r=0,s=0;if("dbcs"===n){for(s=0;s!=t.length;++s)Rt(this,t.charCodeAt(s),this.l+2*s);r=2*t.length}else if("sbcs"===n){if("undefined"!=typeof cptable&&874==a)for(s=0;s!=t.length;++s){var i=cptable.utils.encode(a,t.charAt(s));this[this.l+s]=i[0]}else for(t=t.replace(/[^\x00-\x7F]/g,"_"),s=0;s!=t.length;++s)this[this.l+s]=255&t.charCodeAt(s);r=t.length}else{if("hex"===n){for(;s>8}for(;this.l>>=8,this[this.l+1]=255&t;break;case 3:r=3,this[this.l]=255&t,t>>>=8,this[this.l+1]=255&t,t>>>=8,this[this.l+2]=255&t;break;case 4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24&255}(this,t,this.l);break;case 8:if(r=8,"f"===n){!function(e,t,n){var r=(t<0||1/t==-1/0?1:0)<<7,a=0,s=0,i=r?-t:t;isFinite(i)?0==i?a=s=0:(a=Math.floor(Math.log(i)/Math.LN2),s=i*Math.pow(2,52-a),a<=-1023&&(!isFinite(s)||s>4|r}(this,t,this.l);break}case 16:break;case-4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>8&255,e[n+2]=t>>16&255,e[n+3]=t>>24&255}(this,t,this.l)}}return this.l+=r,this}function Ot(e,t){var n=ct(this,this.l,e.length>>1);if(n!==e)throw new Error(t+"Expected "+e+" saw "+n);this.l+=e.length>>1}function Bt(e,t){e.l=t,e.read_shift=Tt,e.chk=Ot,e.write_shift=Ft}function Mt(e,t){e.l+=t}function $t(e){var t=w(e);return Bt(t,0),t}function Pt(e,t,n){if(e){var r,a,s;Bt(e,e.l||0);for(var i=e.length,o=0,l=0;e.lr.l&&((r=r.slice(0,r.l)).l=r.length),r.length>0&&e.push(r),r=null)},s=function(e){return r&&e=128?1:0)+1,r>=128&&++a,r>=16384&&++a,r>=2097152&&++a;var i=e.next(a);s<=127?i.write_shift(1,s):(i.write_shift(1,128+(127&s)),i.write_shift(1,s>>7));for(var o=0;4!=o;++o){if(!(r>=128)){i.write_shift(1,r);break}i.write_shift(1,128+(127&r)),r>>=7}r>0&&Et(n)&&e.push(n)}}function Wt(e,t,n){var r=te(e);if(t.s?(r.cRel&&(r.c+=t.s.c),r.rRel&&(r.r+=t.s.r)):(r.cRel&&(r.c+=t.c),r.rRel&&(r.r+=t.r)),!n||n.biff<12){for(;r.c>=256;)r.c-=256;for(;r.r>=65536;)r.r-=65536}return r}function Ut(e,t,n){var r=te(e);return r.s=Wt(r.s,t.s,n),r.e=Wt(r.e,t.s,n),r}function Vt(e,t){if(e.cRel&&e.c<0)for(e=te(e);e.c<0;)e.c+=t>8?16384:256;if(e.rRel&&e.r<0)for(e=te(e);e.r<0;)e.r+=t>8?1048576:t>5?65536:16384;var n=Yt(e);return e.cRel||null==e.cRel||(n=n.replace(/^([A-Z])/,"$$$1")),e.rRel||null==e.rRel||(n=n.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")),n}function jt(e,t){return 0!=e.s.r||e.s.rRel||e.e.r!=(t.biff>=12?1048575:t.biff>=8?65536:16384)||e.e.rRel?0!=e.s.c||e.s.cRel||e.e.c!=(t.biff>=12?16383:255)||e.e.cRel?Vt(e.s,t.biff)+":"+Vt(e.e,t.biff):(e.s.rRel?"":"$")+Gt(e.s.r)+":"+(e.e.rRel?"":"$")+Gt(e.e.r):(e.s.cRel?"":"$")+Kt(e.s.c)+":"+(e.e.cRel?"":"$")+Kt(e.e.c)}function Ht(e){return parseInt(e.replace(/\$(\d+)$/,"$1"),10)-1}function Gt(e){return""+(e+1)}function qt(e){for(var t=e.replace(/^\$([A-Z])/,"$1"),n=0,r=0;r!==t.length;++r)n=26*n+t.charCodeAt(r)-64;return n-1}function Kt(e){if(e<0)throw new Error("invalid column "+e);var t="";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function Xt(e){for(var t=0,n=0,r=0;r=48&&a<=57?t=10*t+(a-48):a>=65&&a<=90&&(n=26*n+(a-64))}return{c:n-1,r:t-1}}function Yt(e){for(var t=e.c+1,n="";t;t=(t-1)/26|0)n=String.fromCharCode((t-1)%26+65)+n;return n+(e.r+1)}function Jt(e){var t=e.indexOf(":");return-1==t?{s:Xt(e),e:Xt(e)}:{s:Xt(e.slice(0,t)),e:Xt(e.slice(t+1))}}function Zt(e,t){return void 0===t||"number"==typeof t?Zt(e.s,e.e):("string"!=typeof e&&(e=Yt(e)),"string"!=typeof t&&(t=Yt(t)),e==t?e:e+":"+t)}function Qt(e){var t={s:{c:0,r:0},e:{c:0,r:0}},n=0,r=0,a=0,s=e.length;for(n=0;r26);++r)n=26*n+a;for(t.s.c=--n,n=0;r9);++r)n=10*n+a;if(t.s.r=--n,r===s||58===e.charCodeAt(++r))return t.e.c=t.s.c,t.e.r=t.s.r,t;for(n=0;r!=s&&!((a=e.charCodeAt(r)-64)<1||a>26);++r)n=26*n+a;for(t.e.c=--n,n=0;r!=s&&!((a=e.charCodeAt(r)-48)<0||a>9);++r)n=10*n+a;return t.e.r=--n,t}function en(e,t,n){return null==e||null==e.t||"z"==e.t?"":void 0!==e.w?e.w:("d"==e.t&&!e.z&&n&&n.dateNF&&(e.z=n.dateNF),function(e,t){var n="d"==e.t&&t instanceof Date;if(null!=e.z)try{return e.w=D.format(e.z,n?H(t):t)}catch(e){}try{return e.w=D.format((e.XF||{}).numFmtId||(n?14:0),n?H(t):t)}catch(e){return""+t}}(e,null==t?e.v:t))}function tn(e,t){var n=t&&t.sheet?t.sheet:"Sheet1",r={};return r[n]=e,{SheetNames:[n],Sheets:r}}function nn(e,t,n){var r=n||{},a=e?Array.isArray(e):r.dense,s=e||(a?[]:{}),i=0,o=0;if(s&&null!=r.origin){if("number"==typeof r.origin)i=r.origin;else{var l="string"==typeof r.origin?Xt(r.origin):r.origin;i=l.r,o=l.c}s["!ref"]||(s["!ref"]="A1:A1")}var u={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(s["!ref"]){var c=Qt(s["!ref"]);u.s.c=c.s.c,u.s.r=c.s.r,u.e.c=Math.max(u.e.c,c.e.c),u.e.r=Math.max(u.e.r,c.e.r),-1==i&&(u.e.r=i=c.e.r+1)}for(var h=0;h!=t.length;++h)if(t[h]){if(!Array.isArray(t[h]))throw new Error("aoa_to_sheet expects an array of arrays");for(var f=0;f!=t[h].length;++f)if(void 0!==t[h][f]){var d={v:t[h][f]},p=i+h,m=o+f;if(u.s.r>p&&(u.s.r=p),u.s.c>m&&(u.s.c=m),u.e.r0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}function ln(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function un(e,t){var n=e.l,r=e.read_shift(1),a=sn(e),s=[],i={t:a,h:a};if(0!=(1&r)){for(var o=e.read_shift(4),l=0;l!=o;++l)s.push(ln(e));i.r=s}else i.r=[{ich:0,ifnt:0}];return e.l=n+t,i}!function(e,t){var r;if(void 0!==t)r=t;else try{r=n(3906)}catch(e){r=null}e.rc4=function(e,t){var n=new Array(256),r=0,a=0,s=0,i=0;for(a=0;256!=a;++a)n[a]=a;for(a=0;256!=a;++a)s=s+n[a]+e[a%e.length].charCodeAt(0)&255,i=n[a],n[a]=n[s],n[s]=i;a=s=0;var o=w(t.length);for(r=0;r!=t.length;++r)s=(s+n[a=a+1&255])%256,i=n[a],n[a]=n[s],n[s]=i,o[r]=t[r]^n[n[a]+n[s]&255];return o},e.md5=function(e){if(!r)throw new Error("Unsupported crypto");return r.createHash("md5").update(e).digest("hex")}}({},"undefined"!=typeof crypto?crypto:void 0);var cn=un;function hn(e){var t=e.read_shift(4),n=e.read_shift(2);return n+=e.read_shift(1)<<16,e.l++,{c:t,iStyleRef:n}}function fn(e,t){return null==t&&(t=$t(8)),t.write_shift(-4,e.c),t.write_shift(3,e.iStyleRef||e.s),t.write_shift(1,0),t}var dn=sn,pn=on;function mn(e){var t=e.read_shift(4);return 0===t||4294967295===t?"":e.read_shift(t,"dbcs")}function gn(e,t){var n=!1;return null==t&&(n=!0,t=$t(127)),t.write_shift(4,e.length>0?e.length:4294967295),e.length>0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}var yn=sn,bn=mn,vn=gn;function wn(e){var t=e.slice(e.l,e.l+4),n=1&t[0],r=2&t[0];e.l+=4,t[0]&=252;var a=0===r?wt([0,0,0,0,t[0],t[1],t[2],t[3]],0):Dt(t,0)>>2;return n?a/100:a}function _n(e){var t={s:{},e:{}};return t.s.r=e.read_shift(4),t.e.r=e.read_shift(4),t.s.c=e.read_shift(4),t.e.c=e.read_shift(4),t}var xn=_n,kn=function(e,t){return t||(t=$t(16)),t.write_shift(4,e.s.r),t.write_shift(4,e.e.r),t.write_shift(4,e.s.c),t.write_shift(4,e.e.c),t};function En(e){return e.read_shift(8,"f")}function Cn(e,t){return(t||$t(8)).write_shift(8,e,"f")}function Sn(e,t){if(t||(t=$t(8)),!e||e.auto)return t.write_shift(4,0),t.write_shift(4,0),t;null!=e.index?(t.write_shift(1,2),t.write_shift(1,e.index)):null!=e.theme?(t.write_shift(1,6),t.write_shift(1,e.theme)):(t.write_shift(1,5),t.write_shift(1,0));var n=e.tint||0;if(n>0?n*=32767:n<0&&(n*=32768),t.write_shift(2,n),e.rgb&&null==e.theme){var r=e.rgb||"FFFFFF";"number"==typeof r&&(r=("000000"+r.toString(16)).slice(-6)),t.write_shift(1,parseInt(r.slice(0,2),16)),t.write_shift(1,parseInt(r.slice(2,4),16)),t.write_shift(1,parseInt(r.slice(4,6),16)),t.write_shift(1,255)}else t.write_shift(2,0),t.write_shift(1,0),t.write_shift(1,0);return t}function Nn(e,t){var n=e.read_shift(4);switch(n){case 0:return"";case 4294967295:case 4294967294:return{2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"}[e.read_shift(4)]||""}if(n>400)throw new Error("Unsupported Clipboard: "+n.toString(16));return e.l-=4,e.read_shift(0,1==t?"lpstr":"lpwstr")}var In=80,Dn=[In,81],An={1:{n:"CodePage",t:2},2:{n:"Category",t:In},3:{n:"PresentationFormat",t:In},4:{n:"ByteCount",t:3},5:{n:"LineCount",t:3},6:{n:"ParagraphCount",t:3},7:{n:"SlideCount",t:3},8:{n:"NoteCount",t:3},9:{n:"HiddenCount",t:3},10:{n:"MultimediaClipCount",t:3},11:{n:"ScaleCrop",t:11},12:{n:"HeadingPairs",t:4108},13:{n:"TitlesOfParts",t:4126},14:{n:"Manager",t:In},15:{n:"Company",t:In},16:{n:"LinksUpToDate",t:11},17:{n:"CharacterCount",t:3},19:{n:"SharedDoc",t:11},22:{n:"HyperlinksChanged",t:11},23:{n:"AppVersion",t:3,p:"version"},24:{n:"DigSig",t:65},26:{n:"ContentType",t:In},27:{n:"ContentStatus",t:In},28:{n:"Language",t:In},29:{n:"Version",t:In},255:{}},Tn={1:{n:"CodePage",t:2},2:{n:"Title",t:In},3:{n:"Subject",t:In},4:{n:"Author",t:In},5:{n:"Keywords",t:In},6:{n:"Comments",t:In},7:{n:"Template",t:In},8:{n:"LastAuthor",t:In},9:{n:"RevNumber",t:In},10:{n:"EditTime",t:64},11:{n:"LastPrinted",t:64},12:{n:"CreatedDate",t:64},13:{n:"ModifiedDate",t:64},14:{n:"PageCount",t:3},15:{n:"WordCount",t:3},16:{n:"CharCount",t:3},17:{n:"Thumbnail",t:71},18:{n:"Application",t:In},19:{n:"DocSecurity",t:3},255:{}},Rn={2147483648:{n:"Locale",t:19},2147483651:{n:"Behavior",t:19},1919054434:{}};!function(){for(var e in Rn)Object.prototype.hasOwnProperty.call(Rn,e)&&(An[e]=Tn[e]=Rn[e])}();var Fn,On=W(An,"n"),Bn=W(Tn,"n"),Mn={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},$n=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"],Pn=te([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].map((function(e){return[e>>16&255,e>>8&255,255&e]}))),Ln={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},zn=V(Ln),Wn={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},Un=(z(Fn={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xlam:"application/vnd.ms-excel.addin.macroEnabled.main+xml",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}}).forEach((function(e){["xlsm","xlam"].forEach((function(t){Fn[e][t]||(Fn[e][t]=Fn[e].xlsx)}))})),z(Fn).forEach((function(e){z(Fn[e]).forEach((function(t){Wn[Fn[e][t]]=e}))})),Fn),Vn=function(e){for(var t=[],n=z(e),r=0;r!==n.length;++r)null==t[e[n[r]]]&&(t[e[n[r]]]=[]),t[e[n[r]]].push(n[r]);return t}(Wn);nt.CT="http://schemas.openxmlformats.org/package/2006/content-types";var jn=Ze("Types",null,{xmlns:nt.CT,"xmlns:xsd":nt.xsd,"xmlns:xsi":nt.xsi}),Hn=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["data","application/vnd.openxmlformats-officedocument.model+data"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",Vn.rels[0]]].map((function(e){return Ze("Default",null,{Extension:e[0],ContentType:e[1]})})),Gn={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function qn(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function Kn(e,t){var n={"!id":{}};if(!e)return n;"/"!==t.charAt(0)&&(t="/"+t);var r={};return(e.match(ye)||[]).forEach((function(e){var a=we(e);if("2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Jn=[Gn.HLINK,Gn.XPATH,Gn.XMISS];function Zn(e,t,n,r,a,s){if(a||(a={}),e["!id"]||(e["!id"]={}),t<0)for(t=1;e["!id"]["rId"+t];++t);if(a.Id="rId"+t,a.Type=r,a.Target=n,s?a.TargetMode=s:Jn.indexOf(a.Type)>-1&&(a.TargetMode="External"),e["!id"][a.Id])throw new Error("Cannot rewrite rId "+t);return e["!id"][a.Id]=a,e[("/"+a.Target).replace("//","/")]=a,t}function Qn(e,t,n){return[' \n',' \n'," \n"].join("")}var er,tr=(er='SheetJS '+t.version+"",function(){return er}),nr=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];nt.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties",Gn.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var rr=function(){for(var e=new Array(nr.length),t=0;t]*>([\\s\\S]*?)")}return e}();function ar(e){var t={};e=Be(e);for(var n=0;n0&&(t[r[1]]=Se(a[1])),"date"===r[2]&&t[r[1]]&&(t[r[1]]=Q(t[r[1]]))}return t}var sr=Ze("cp:coreProperties",null,{"xmlns:cp":nt.CORE_PROPS,"xmlns:dc":nt.dc,"xmlns:dcterms":nt.dcterms,"xmlns:dcmitype":nt.dcmitype,"xmlns:xsi":nt.xsi});function ir(e,t,n,r,a){null==a[e]&&null!=t&&""!==t&&(a[e]=t,t=De(t),r[r.length]=n?Ze(e,t,n):Ye(e,t))}var or=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function lr(e,t,n,r){var a=[];if("string"==typeof e)a=Ke(e,r);else for(var s=0;s0)for(var u=0;u!==a.length;u+=2){switch(l=+a[u+1].v,a[u].v){case"Worksheets":case"工作表":case"Листы":case"أوراق العمل":case"ワークシート":case"גליונות עבודה":case"Arbeitsblätter":case"Çalışma Sayfaları":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de cálculo":case"Planilhas":case"Regneark":case"Hojas de cálculo":case"Werkbladen":n.Worksheets=l,n.SheetNames=i.slice(o,o+l);break;case"Named Ranges":case"Rangos con nombre":case"名前付き一覧":case"Benannte Bereiche":case"Navngivne områder":n.NamedRanges=l,n.DefinedNames=i.slice(o,o+l);break;case"Charts":case"Diagramme":n.Chartsheets=l,n.ChartNames=i.slice(o,o+l)}o+=l}}nt.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",Gn.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";var ur=Ze("Properties",null,{xmlns:nt.EXT_PROPS,"xmlns:vt":nt.vt});nt.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",Gn.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var cr=/<[^>]+>[^<]*/g,hr=Ze("Properties",null,{xmlns:nt.CUST_PROPS,"xmlns:vt":nt.vt});var fr={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"},dr=U(fr);function pr(e,t,n){e[t=dr[t]||t]=n}function mr(e){var t=e.read_shift(4),n=e.read_shift(4);return new Date(1e3*(n/1e7*Math.pow(2,32)+t/1e7-11644473600)).toISOString().replace(/\.000/,"")}function gr(e,t,n){var r=e.l,a=e.read_shift(0,"lpstr-cp");if(n)for(;e.l-r&3;)++e.l;return a}function yr(e,t,n){var r=e.read_shift(0,"lpwstr");return n&&(e.l+=4-(r.length+1&3)&3),r}function br(e,t,n){return 31===t?yr(e):gr(e,0,n)}function vr(e,t,n){return br(e,t,!1===n?0:4)}function wr(e){return[kr(e,81),kr(e,3)]}function _r(e,t){for(var n=e.read_shift(4),r={},a=0;a!=n;++a){var s=e.read_shift(4),i=e.read_shift(4);r[s]=e.read_shift(i,1200===t?"utf16le":"utf8").replace(N,"").replace(I,"!"),1200===t&&i%2&&(e.l+=2)}return 3&e.l&&(e.l=e.l>>3<<2),r}function xr(e){var t=e.read_shift(4),n=e.slice(e.l,e.l+t);return e.l+=t,(3&t)>0&&(e.l+=4-(3&t)&3),n}function kr(e,t,n){var r,a=e.read_shift(2),s=n||{};if(e.l+=2,12!==t&&a!==t&&-1===Dn.indexOf(t))throw new Error("Expected type "+t+" saw "+a);switch(12===t?a:t){case 2:return r=e.read_shift(2,"i"),s.raw||(e.l+=2),r;case 3:return e.read_shift(4,"i");case 11:return 0!==e.read_shift(4);case 19:return e.read_shift(4);case 30:return gr(e,0,4).replace(N,"");case 31:return yr(e);case 64:return mr(e);case 65:return xr(e);case 71:return function(e){var t={};return t.Size=e.read_shift(4),e.l+=t.Size+3-(t.Size-1)%4,t}(e);case 80:return vr(e,a,!s.raw).replace(N,"");case 81:return function(e,t){if(!t)throw new Error("VtUnalignedString must have positive length");return br(e,t,0)}(e,a).replace(N,"");case 4108:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t/2;++r)n.push(wr(e));return n}(e)}(e);case 4126:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t;++r)n[r]=e.read_shift(0,"lpstr-cp").replace(N,"");return n}(e)}(e);default:throw new Error("TypedPropertyValue unrecognized type "+t+" "+a)}}function Er(e,t){var n=$t(4),r=$t(4);switch(n.write_shift(4,80==e?31:e),e){case 3:r.write_shift(-4,t);break;case 5:(r=$t(8)).write_shift(8,t,"f");break;case 11:r.write_shift(4,t?1:0);break;case 64:r=function(e){var t=("string"==typeof e?new Date(Date.parse(e)):e).getTime()/1e3+11644473600,n=t%Math.pow(2,32),r=(t-n)/Math.pow(2,32);r*=1e7;var a=(n*=1e7)/Math.pow(2,32)|0;a>0&&(n%=Math.pow(2,32),r+=a);var s=$t(8);return s.write_shift(4,n),s.write_shift(4,r),s}(t);break;case 31:case 80:for((r=$t(4+2*(t.length+1)+(t.length%2?0:2))).write_shift(4,t.length+1),r.write_shift(0,t,"dbcs");r.l!=r.length;)r.write_shift(1,0);break;default:throw new Error("TypedPropertyValue unrecognized type "+e+" "+t)}return S([n,r])}function Cr(e,t){var n=e.l,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0,o=0,l=-1,c={};for(i=0;i!=a;++i){var h=e.read_shift(4),f=e.read_shift(4);s[i]=[h,f+n]}s.sort((function(e,t){return e[1]-t[1]}));var d={};for(i=0;i!=a;++i){if(e.l!==s[i][1]){var p=!0;if(i>0&&t)switch(t[s[i-1][0]].t){case 2:e.l+2===s[i][1]&&(e.l+=2,p=!1);break;case 80:case 4108:e.l<=s[i][1]&&(e.l=s[i][1],p=!1)}if((!t||0==i)&&e.l<=s[i][1]&&(p=!1,e.l=s[i][1]),p)throw new Error("Read Error: Expected address "+s[i][1]+" at "+e.l+" :"+i)}if(t){var m=t[s[i][0]];if(d[m.n]=kr(e,m.t,{raw:!0}),"version"===m.p&&(d[m.n]=String(d[m.n]>>16)+"."+("0000"+String(65535&d[m.n])).slice(-4)),"CodePage"==m.n)switch(d[m.n]){case 0:d[m.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:u(o=d[m.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[m.n])}}else if(1===s[i][0]){if(o=d.CodePage=kr(e,2),u(o),-1!==l){var g=e.l;e.l=s[l][1],c=_r(e,o),e.l=g}}else if(0===s[i][0]){if(0===o){l=i,e.l=s[i+1][1];continue}c=_r(e,o)}else{var y,b=c[s[i][0]];switch(e[e.l]){case 65:e.l+=4,y=xr(e);break;case 30:case 31:e.l+=4,y=vr(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 3:e.l+=4,y=e.read_shift(4,"i");break;case 19:e.l+=4,y=e.read_shift(4);break;case 5:e.l+=4,y=e.read_shift(8,"f");break;case 11:e.l+=4,y=Rr(e,4);break;case 64:e.l+=4,y=Q(mr(e));break;default:throw new Error("unparsed value: "+e[e.l])}d[b]=y}}return e.l=n+r,d}var Sr=["CodePage","Thumbnail","_PID_LINKBASE","_PID_HLINKS","SystemIdentifier","FMTID"].concat(["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"]);function Nr(e){switch(typeof e){case"boolean":return 11;case"number":return(0|e)==e?3:5;case"string":return 31;case"object":if(e instanceof Date)return 64}return-1}function Ir(e,t,n){var r=$t(8),a=[],s=[],i=8,o=0,l=$t(8),u=$t(8);if(l.write_shift(4,2),l.write_shift(4,1200),u.write_shift(4,1),s.push(l),a.push(u),i+=8+l.length,!t){(u=$t(8)).write_shift(4,0),a.unshift(u);var c=[$t(4)];for(c[0].write_shift(4,e.length),o=0;o-1)&&null!=e[o][1]){var f=e[o][1],d=0;if(t){var p=n[d=+t[e[o][0]]];if("version"==p.p&&"string"==typeof f){var m=f.split(".");f=(+m[0]<<16)+(+m[1]||0)}l=Er(p.t,f)}else{var g=Nr(f);-1==g&&(g=31,f=String(f)),l=Er(g,f)}s.push(l),(u=$t(8)).write_shift(4,t?d:2+o),a.push(u),i+=8+l.length}var y=8*(s.length+1);for(o=0;o=12?2:1),s="sbcs-cont",i=r;n&&n.biff>=8&&(r=1200),n&&8!=n.biff?12==n.biff&&(s="wstr"):e.read_shift(1)&&(s="dbcs-cont"),n.biff>=2&&n.biff<=5&&(s="cpstr");var o=a?e.read_shift(a,s):"";return r=i,o}function Pr(e){var t=r;r=1200;var n,a=e.read_shift(2),s=e.read_shift(1),i=4&s,o=8&s,l=1+(1&s),u=0,c={};o&&(u=e.read_shift(2)),i&&(n=e.read_shift(4));var h=2==l?"dbcs-cont":"sbcs-cont",f=0===a?"":e.read_shift(a,h);return o&&(e.l+=4*u),i&&(e.l+=n),c.t=f,o||(c.raw=""+c.t+"",c.r=c.t),r=t,c}function Lr(e){var t=e.t||"",n=$t(3);n.write_shift(2,t.length),n.write_shift(1,1);var r=$t(2*t.length);return r.write_shift(2*t.length,t,"utf16le"),S([n,r])}function zr(e,t,n){if(n){if(n.biff>=2&&n.biff<=5)return e.read_shift(t,"cpstr");if(n.biff>=12)return e.read_shift(t,"dbcs-cont")}return 0===e.read_shift(1)?e.read_shift(t,"sbcs-cont"):e.read_shift(t,"dbcs-cont")}function Wr(e,t,n){var r=e.read_shift(n&&2==n.biff?1:2);return 0===r?(e.l++,""):zr(e,r,n)}function Ur(e,t,n){if(n.biff>5)return Wr(e,0,n);var r=e.read_shift(1);return 0===r?(e.l++,""):e.read_shift(r,n.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function Vr(e,t,n){return n||(n=$t(3+2*e.length)),n.write_shift(2,e.length),n.write_shift(1,1),n.write_shift(31,e,"utf16le"),n}function jr(e){var t=e.read_shift(4);return t>0?e.read_shift(t,"utf16le").replace(N,""):""}function Hr(e){var t=$t(512),n=0,r=e.Target,a=r.indexOf("#")>-1?31:23;switch(r.charAt(0)){case"#":a=28;break;case".":a&=-3}t.write_shift(4,2),t.write_shift(4,a);var s=[8,6815827,6619237,4849780,83];for(n=0;n8?4:2;return[e.read_shift(r),e.read_shift(r,"i"),e.read_shift(r,"i")]}function Jr(e){return[e.read_shift(2),wn(e)]}function Zr(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(2),r:t},e:{c:e.read_shift(2),r:n}}}function Qr(e,t){return t||(t=$t(8)),t.write_shift(2,e.s.r),t.write_shift(2,e.e.r),t.write_shift(2,e.s.c),t.write_shift(2,e.e.c),t}function ea(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(1),r:t},e:{c:e.read_shift(1),r:n}}}var ta=ea;function na(e){e.l+=4;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(2);return e.l+=12,[n,t,r]}function ra(e){e.l+=2,e.l+=e.read_shift(2)}var aa={0:ra,4:ra,5:ra,6:ra,7:function(e){return e.l+=4,e.cf=e.read_shift(2),{}},8:ra,9:ra,10:ra,11:ra,12:ra,13:function(e){var t={};return e.l+=4,e.l+=16,t.fSharedNote=e.read_shift(2),e.l+=4,t},14:ra,15:ra,16:ra,17:ra,18:ra,19:ra,20:ra,21:na};function sa(e,t){var n={BIFFVer:0,dt:0};switch(n.BIFFVer=e.read_shift(2),(t-=2)>=2&&(n.dt=e.read_shift(2),e.l-=2),n.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(t>6)throw new Error("Unexpected BIFF Ver "+n.BIFFVer)}return e.read_shift(t),n}function ia(e,t,n){var r=1536,a=16;switch(n.bookType){case"biff8":break;case"biff5":r=1280,a=8;break;case"biff4":r=4,a=6;break;case"biff3":r=3,a=6;break;case"biff2":r=2,a=4;break;case"xla":break;default:throw new Error("unsupported BIFF version")}var s=$t(a);return s.write_shift(2,r),s.write_shift(2,t),a>4&&s.write_shift(2,29282),a>6&&s.write_shift(2,1997),a>8&&(s.write_shift(2,49161),s.write_shift(2,1),s.write_shift(2,1798),s.write_shift(2,0)),s}function oa(e,t){var n=!t||t.biff>=8?2:1,r=$t(8+n*e.name.length);r.write_shift(4,e.pos),r.write_shift(1,e.hs||0),r.write_shift(1,e.dt),r.write_shift(1,e.name.length),t.biff>=8&&r.write_shift(1,1),r.write_shift(n*e.name.length,e.name,t.biff<8?"sbcs":"utf16le");var a=r.slice(0,r.l);return a.l=r.l,a}function la(e,t,n){var r=0;n&&2==n.biff||(r=e.read_shift(2));var a=e.read_shift(2);return n&&2==n.biff&&(r=1-(a>>15),a&=32767),[{Unsynced:1&r,DyZero:(2&r)>>1,ExAsc:(4&r)>>2,ExDsc:(8&r)>>3},a]}function ua(e,t,n,r){var a=n&&5==n.biff;r||(r=$t(a?3+t.length:5+2*t.length)),r.write_shift(2,e),r.write_shift(a?1:2,t.length),a||r.write_shift(1,1),r.write_shift((a?1:2)*t.length,t,a?"sbcs":"utf16le");var s=r.length>r.l?r.slice(0,r.l):r;return null==s.l&&(s.l=s.length),s}var ca=Ur;function ha(e,t,n){var r=e.l+t,a=8!=n.biff&&n.biff?2:4,s=e.read_shift(a),i=e.read_shift(a),o=e.read_shift(2),l=e.read_shift(2);return e.l=r,{s:{r:s,c:o},e:{r:i,c:l}}}function fa(e,t,n,r){var a=n&&5==n.biff;return r||(r=$t(a?16:20)),r.write_shift(2,0),e.style?(r.write_shift(2,e.numFmtId||0),r.write_shift(2,65524)):(r.write_shift(2,e.numFmtId||0),r.write_shift(2,t<<4)),r.write_shift(4,0),r.write_shift(4,0),a||r.write_shift(4,0),r.write_shift(2,0),r}function da(e,t,n){var r=Kr(e);2==n.biff&&++e.l;var a=function(e){var t=e.read_shift(1);return 1===e.read_shift(1)?t:1===t}(e);return r.val=a,r.t=!0===a||!1===a?"b":"e",r}var pa=function(e,t,n){return 0===t?"":Ur(e,0,n)};function ma(e,t,n){var r,a=e.read_shift(2),s={fBuiltIn:1&a,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};return 14849===n.sbcch&&(r=function(e,t,n){e.l+=4,t-=4;var r=e.l+t,a=$r(e,0,n),s=e.read_shift(2);if(s!==(r-=e.l))throw new Error("Malformed AddinUdf: padding = "+r+" != "+s);return e.l+=s,a}(e,t-2,n)),s.body=r||e.read_shift(t-2),"string"==typeof r&&(s.Name=r),s}var ga=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function ya(e,t,n){var r=e.l+t,a=e.read_shift(2),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(n&&2==n.biff?1:2),l=0;(!n||n.biff>=5)&&(5!=n.biff&&(e.l+=2),l=e.read_shift(2),5==n.biff&&(e.l+=2),e.l+=4);var u=zr(e,i,n);32&a&&(u=ga[u.charCodeAt(0)]);var c=r-e.l;return n&&2==n.biff&&--c,{chKey:s,Name:u,itab:l,rgce:r==e.l||0===o?[]:function(e,t,n,r){var a,s=e.l+t,i=Oi(e,r,n);return s!==e.l&&(a=Fi(e,s-e.l,i,n)),[i,a]}(e,c,n,o)}}function ba(e,t,n){if(n.biff<8)return function(e,t,n){3==e[e.l+1]&&e[e.l]++;var r=$r(e,0,n);return 3==r.charCodeAt(0)?r.slice(1):r}(e,0,n);for(var r=[],a=e.l+t,s=e.read_shift(n.biff>8?4:2);0!=s--;)r.push(Yr(e,n.biff,n));if(e.l!=a)throw new Error("Bad ExternSheet: "+e.l+" != "+a);return r}function va(e,t,n){var r=ta(e,6);switch(n.biff){case 2:e.l++,t-=7;break;case 3:case 4:e.l+=2,t-=8;break;default:e.l+=6,t-=12}return[r,Wi(e,t,n)]}var wa=[];function _a(e){var t=$t(24),n=Xt(e[0]);t.write_shift(2,n.r),t.write_shift(2,n.r),t.write_shift(2,n.c),t.write_shift(2,n.c);for(var r="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" "),a=0;a<16;++a)t.write_shift(1,parseInt(r[a],16));return S([t,Hr(e[1])])}function xa(e){var t=e[1].Tooltip,n=$t(10+2*(t.length+1));n.write_shift(2,2048);var r=Xt(e[0]);n.write_shift(2,r.r),n.write_shift(2,r.r),n.write_shift(2,r.c),n.write_shift(2,r.c);for(var a=0;a=12?4:2,a=e.read_shift(r),s=e.read_shift(r),i=e.read_shift(r),o=e.read_shift(r),l=e.read_shift(2);2==r&&(e.l+=2);var u={s:a,e:s,w:i,ixfe:o,flags:l};return(n.biff>=5||!n.biff)&&(u.level=l>>8&7),u}wa[8]=function(e,t){var n=e.l+t;e.l+=10;var r=e.read_shift(2);e.l+=4,e.l+=2,e.l+=2,e.l+=2,e.l+=4;var a=e.read_shift(1);return e.l+=a,e.l=n,{fmt:r}};var Ea=Kr,Ca=Mr,Sa=Wr,Na=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,255:16969},t=U({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function n(t,n){var r=n||{};return r.dateNF||(r.dateNF="yyyymmdd"),rn(function(t,n){var r=[],a=w(1);switch(n.type){case"base64":a=x(g.decode(t));break;case"binary":a=x(t);break;case"buffer":case"array":a=t}Bt(a,0);var s=a.read_shift(1),i=!1,o=!1,l=!1;switch(s){case 2:case 3:break;case 48:o=!0,i=!0;break;case 49:o=!0;break;case 131:case 139:i=!0;break;case 140:i=!0,l=!0;break;case 245:i=!0;break;default:throw new Error("DBF Unsupported Version: "+s.toString(16))}var u=0,c=0;2==s&&(u=a.read_shift(2)),a.l+=3,2!=s&&(u=a.read_shift(4)),2!=s&&(c=a.read_shift(2));var h=a.read_shift(2),f=1252;2!=s&&(a.l+=16,a.read_shift(1),0!==a[a.l]&&(f=e[a[a.l]]),a.l+=1,a.l+=2),l&&(a.l+=36);for(var d=[],p={},m=c-10-(o?264:0),y=l?32:11;2==s?a.l0;)if(42!==a[a.l])for(++a.l,r[++b]=[],v=0,v=0;v!=d.length;++v){var _=a.slice(a.l,a.l+d[v].len);a.l+=d[v].len,Bt(_,0);var k=cptable.utils.decode(f,_);switch(d[v].type){case"C":r[b][v]=cptable.utils.decode(f,_),r[b][v]=r[b][v].trim();break;case"D":8===k.length?r[b][v]=new Date(+k.slice(0,4),+k.slice(4,6)-1,+k.slice(6,8)):r[b][v]=k;break;case"F":r[b][v]=parseFloat(k.trim());break;case"+":case"I":r[b][v]=l?2147483648^_.read_shift(-4,"i"):_.read_shift(4,"i");break;case"L":switch(k.toUpperCase()){case"Y":case"T":r[b][v]=!0;break;case"N":case"F":r[b][v]=!1;break;case" ":case"?":r[b][v]=!1;break;default:throw new Error("DBF Unrecognized L:|"+k+"|")}break;case"M":if(!i)throw new Error("DBF Unexpected MEMO for type "+s.toString(16));r[b][v]="##MEMO##"+(l?parseInt(k.trim(),10):_.read_shift(4));break;case"N":r[b][v]=+k.replace(/\u0000/g,"").trim();break;case"@":r[b][v]=new Date(_.read_shift(-8,"f")-621356832e5);break;case"T":r[b][v]=new Date(864e5*(_.read_shift(4)-2440588)+_.read_shift(4));break;case"Y":r[b][v]=_.read_shift(4,"i")/1e4;break;case"O":r[b][v]=-_.read_shift(-8,"f");break;case"B":if(o&&8==d[v].len){r[b][v]=_.read_shift(8,"f");break}case"G":case"P":_.l+=d[v].len;break;case"0":if("_NullFlags"===d[v].name)break;default:throw new Error("DBF Unsupported data type "+d[v].type)}}else a.l+=h;if(2!=s&&a.l=0&&u(+s.codepage),"string"==s.type)throw new Error("Cannot write DBF to JS string");var i=Lt(),o=Du(e,{header:1,raw:!0,cellDates:!0}),l=o[0],c=o.slice(1),h=0,f=0,d=0,p=1;for(h=0;h":190,"?":191,"{":223},t=new RegExp("N("+z(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),n=function(t,n){var r=e[n];return"number"==typeof r?p(r):r},r=function(e,t,n){var r=t.charCodeAt(0)-32<<4|n.charCodeAt(0)-48;return 59==r?e:p(r)};function a(e,a){var s,i=e.split(/[\n\r]+/),o=-1,l=-1,c=0,h=0,f=[],d=[],p=null,m={},g=[],y=[],b=[],v=0;for(+a.codepage>=0&&u(+a.codepage);c!==i.length;++c){v=0;var w,_=i[c].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,r).replace(t,n),x=_.replace(/;;/g,"\0").split(";").map((function(e){return e.replace(/\u0000/g,";")})),k=x[0];if(_.length>0)switch(k){case"ID":case"E":case"B":case"O":break;case"P":"P"==x[1].charAt(0)&&d.push(_.slice(3).replace(/;;/g,";"));break;case"C":var E=!1,C=!1;for(h=1;h0?(g[o].hpt=v,g[o].hpx=ys(v)):0===v&&(g[o].hidden=!0);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+_)}N<1&&(p=null);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+_)}}return g.length>0&&(m["!rows"]=g),y.length>0&&(m["!cols"]=y),a&&a.sheetRows&&(f=f.slice(0,a.sheetRows)),[f,m]}function s(e,t){var n=function(e,t){switch(t.type){case"base64":return a(g.decode(e),t);case"binary":return a(e,t);case"buffer":return a(e.toString("binary"),t);case"array":return a(ee(e),t)}throw new Error("Unrecognized type "+t.type)}(e,t),r=n[0],s=n[1],i=rn(r,t);return z(s).forEach((function(e){i[e]=s[e]})),i}function i(e,t,n,r){var a="C;Y"+(n+1)+";X"+(r+1)+";K";switch(e.t){case"n":a+=e.v||0,e.f&&!e.F&&(a+=";E"+ri(e.f,{r:n,c:r}));break;case"b":a+=e.v?"TRUE":"FALSE";break;case"e":a+=e.w||e.v;break;case"d":a+='"'+(e.w||e.v)+'"';break;case"s":a+='"'+e.v.replace(/"/g,"")+'"'}return a}return e["|"]=254,{to_workbook:function(e,t){return tn(s(e,t),t)},to_sheet:s,from_sheet:function(e,t){var n,r,a=["ID;PWXL;N;E"],s=[],o=Qt(e["!ref"]),l=Array.isArray(e),u="\r\n";a.push("P;PGeneral"),a.push("F;P0;DG0G8;M255"),e["!cols"]&&(r=a,e["!cols"].forEach((function(e,t){var n="F;W"+(t+1)+" "+(t+1)+" ";e.hidden?n+="0":("number"==typeof e.width&&(e.wpx=cs(e.width)),"number"==typeof e.wpx&&(e.wch=hs(e.wpx)),"number"==typeof e.wch&&(n+=Math.round(e.wch)))," "!=n.charAt(n.length-1)&&r.push(n)}))),e["!rows"]&&function(e,t){t.forEach((function(t,n){var r="F;";t.hidden?r+="M0;":t.hpt?r+="M"+20*t.hpt+";":t.hpx&&(r+="M"+20*gs(t.hpx)+";"),r.length>2&&e.push(r+"R"+(n+1))}))}(a,e["!rows"]),a.push("B;Y"+(o.e.r-o.s.r+1)+";X"+(o.e.c-o.s.c+1)+";D"+[o.s.c,o.s.r,o.e.c,o.e.r].join(" "));for(var c=o.s.r;c<=o.e.r;++c)for(var h=o.s.c;h<=o.e.c;++h){var f=Yt({r:c,c:h});(n=l?(e[c]||[])[h]:e[f])&&(null!=n.v||n.f&&!n.F)&&s.push(i(n,0,c,h))}return a.join(u)+u+s.join(u)+u+"E"+u}}}(),Da=function(){function e(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s)if("BOT"!==n[s].trim()){if(!(r<0)){var o=n[s].trim().split(","),l=o[0],u=o[1],c=n[++s].trim();switch(+l){case-1:if("BOT"===c){i[++r]=[],a=0;continue}if("EOD"!==c)throw new Error("Unrecognized DIF special command "+c);break;case 0:"TRUE"===c?i[r][a]=!0:"FALSE"===c?i[r][a]=!1:isNaN(re(u))?isNaN(ae(u).getDate())?i[r][a]=u:i[r][a]=Q(u):i[r][a]=re(u),++a;break;case 1:c=c.slice(1,c.length-1),i[r][a++]=""!==c?c:null}if("EOD"===c)break}}else i[++r]=[],a=0;return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}function t(t,n){return rn(function(t,n){switch(n.type){case"base64":return e(g.decode(t),n);case"binary":return e(t,n);case"buffer":return e(t.toString("binary"),n);case"array":return e(ee(t),n)}throw new Error("Unrecognized type "+n.type)}(t,n),n)}var n,r;return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:(n=function(e,t,n,r,a){e.push(t),e.push(n+","+r),e.push('"'+a.replace(/"/g,'""')+'"')},r=function(e,t,n,r){e.push(t+","+n),e.push(1==t?'"'+r.replace(/"/g,'""')+'"':r)},function(e){var t,a=[],s=Qt(e["!ref"]),i=Array.isArray(e);n(a,"TABLE",0,1,"sheetjs"),n(a,"VECTORS",0,s.e.r-s.s.r+1,""),n(a,"TUPLES",0,s.e.c-s.s.c+1,""),n(a,"DATA",0,0,"");for(var o=s.s.r;o<=s.e.r;++o){r(a,-1,0,"BOT");for(var l=s.s.c;l<=s.e.c;++l){var u=Yt({r:o,c:l});if(t=i?(e[o]||[])[l]:e[u])switch(t.t){case"n":var c=t.w;c||null==t.v||(c=t.v),null==c?t.f&&!t.F?r(a,1,0,"="+t.f):r(a,1,0,""):r(a,0,c,"V");break;case"b":r(a,0,t.v?1:0,t.v?"TRUE":"FALSE");break;case"s":r(a,1,0,isNaN(t.v)?t.v:'="'+t.v+'"');break;case"d":t.w||(t.w=D.format(t.z||D._table[14],H(Q(t.v)))),r(a,0,t.w,"V");break;default:r(a,1,0,"")}else r(a,1,0,"")}}return r(a,-1,0,"EOD"),a.join("\r\n")})}}(),Aa=function(){function e(e){return e.replace(/\\/g,"\\b").replace(/:/g,"\\c").replace(/\n/g,"\\n")}function t(e,t){return rn(function(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s){var o=n[s].trim().split(":");if("cell"===o[0]){var l=Xt(o[1]);if(i.length<=l.r)for(r=i.length;r<=l.r;++r)i[r]||(i[r]=[]);switch(r=l.r,a=l.c,o[2]){case"t":i[r][a]=o[3].replace(/\\b/g,"\\").replace(/\\c/g,":").replace(/\\n/g,"\n");break;case"v":i[r][a]=+o[3];break;case"vtf":var u=o[o.length-1];case"vtc":switch(o[3]){case"nl":i[r][a]=!!+o[4];break;default:i[r][a]=+o[4]}"vtf"==o[2]&&(i[r][a]=[i[r][a],u])}}}return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}(e,t),t)}var n=["socialcalc:version:1.5","MIME-Version: 1.0","Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"].join("\n"),r=["--SocialCalcSpreadsheetControlSave","Content-type: text/plain; charset=UTF-8"].join("\n")+"\n",a=["# SocialCalc Spreadsheet Control Save","part:sheet"].join("\n"),s="--SocialCalcSpreadsheetControlSave--";function i(t){if(!t||!t["!ref"])return"";for(var n,r=[],a=[],s="",i=Jt(t["!ref"]),o=Array.isArray(t),l=i.s.r;l<=i.e.r;++l)for(var u=i.s.c;u<=i.e.c;++u)if(s=Yt({r:l,c:u}),(n=o?(t[l]||[])[u]:t[s])&&null!=n.v&&"z"!==n.t){switch(a=["cell",s,"t"],n.t){case"s":case"str":a.push(e(n.v));break;case"n":n.f?(a[2]="vtf",a[3]="n",a[4]=n.v,a[5]=e(n.f)):(a[2]="v",a[3]=n.v);break;case"b":a[2]="vt"+(n.f?"f":"c"),a[3]="nl",a[4]=n.v?"1":"0",a[5]=e(n.f||(n.v?"TRUE":"FALSE"));break;case"d":var c=H(Q(n.v));a[2]="vtc",a[3]="nd",a[4]=""+c,a[5]=n.w||D.format(n.z||D._table[14],c);break;case"e":continue}r.push(a.join(":"))}return r.push("sheet:c:"+(i.e.c-i.s.c+1)+":r:"+(i.e.r-i.s.r+1)+":tvf:1"),r.push("valueformat:1:text-wiki"),r.join("\n")}return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:function(e){return[n,r,a,r,i(e),s].join("\n")}}}(),Ta=function(){function e(e,t,n,r,a){a.raw?t[n][r]=e:"TRUE"===e?t[n][r]=!0:"FALSE"===e?t[n][r]=!1:""===e||(isNaN(re(e))?isNaN(ae(e).getDate())?t[n][r]=e:t[n][r]=Q(e):t[n][r]=re(e))}var t={44:",",9:"\t",59:";"},n={44:3,9:2,59:1};function r(e,r){var a=r||{},s="",i=a.dense?[]:{},o={s:{c:0,r:0},e:{c:0,r:0}};"sep="==e.slice(0,4)?13==e.charCodeAt(5)&&10==e.charCodeAt(6)?(s=e.charAt(4),e=e.slice(7)):13!=e.charCodeAt(5)&&10!=e.charCodeAt(5)||(s=e.charAt(4),e=e.slice(6)):s=function(e){for(var r={},a=!1,s=0,i=0;s=0?o=u:a=u}})),l>=0&&-1==o&&a>=0&&(o=a,a=-1);var u=(""+(r>=0?r:(new Date).getFullYear())).slice(-4)+"-"+("00"+(a>=1?a:1)).slice(-2)+"-"+("00"+(s>=1?s:1)).slice(-2);7==u.length&&(u="0"+u),8==u.length&&(u="20"+u);var c=("00"+(i>=0?i:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2);return-1==i&&-1==o&&-1==l?u:-1==r&&-1==a&&-1==s?c:u+"T"+c}(0,a.dateNF,t.match(b)||[]),r=1),a.cellDates?(n.t="d",n.v=Q(t,r)):(n.t="n",n.v=H(Q(t,r))),!1!==a.cellText&&(n.w=D.format(n.z,n.v instanceof Date?H(n.v):n.v)),a.cellNF||delete n.z}else n.t="s",n.v=t;else n.t="n",!1!==a.cellText&&(n.w=t),n.v=c;if("z"==n.t||(a.dense?(i[l]||(i[l]=[]),i[l][u]=n):i[Yt({c:u,r:l})]=n),h=f+1,o.e.c0&&v(),i["!ref"]=Zt(o),i}function a(t,n){var a="",s="string"==n.type?[0,0,0,0]:yu(t,n);switch(n.type){case"base64":a=g.decode(t);break;case"binary":a=t;break;case"buffer":a=65001==n.codepage?t.toString("utf8"):n.codepage&&"undefined"!=typeof cptable?cptable.utils.decode(n.codepage,t):t.toString("binary");break;case"array":a=ee(t);break;case"string":a=t;break;default:throw new Error("Unrecognized type "+n.type)}return 239==s[0]&&187==s[1]&&191==s[2]?a=Be(a.slice(3)):"binary"==n.type&&"undefined"!=typeof cptable&&n.codepage&&(a=cptable.utils.decode(n.codepage,cptable.utils.encode(1252,a))),"socialcalc:version:"==a.slice(0,19)?Aa.to_sheet("string"==n.type?a:Be(a),n):function(t,n){return n&&n.PRN?"sep="==t.slice(0,4)||t.indexOf("\t")>=0||t.indexOf(",")>=0||t.indexOf(";")>=0?r(t,n):rn(function(t,n){var r=n||{},a=[];if(!t||0===t.length)return a;for(var s=t.split(/[\r\n]/),i=s.length-1;i>=0&&0===s[i].length;)--i;for(var o=10,l=0,u=0;u<=i;++u)-1==(l=s[u].indexOf(" "))?l=s[u].length:l++,o=Math.max(o,l);for(u=0;u<=i;++u){a[u]=[];var c=0;for(e(s[u].slice(0,o).trim(),a,u,c,r),c=1;c<=(s[u].length-o)/10+1;++c)e(s[u].slice(o+10*(c-1),o+10*c).trim(),a,u,c,r)}return r.sheetRows&&(a=a.slice(0,r.sheetRows)),a}(t,n),n):r(t,n)}(a,n)}return{to_workbook:function(e,t){return tn(a(e,t),t)},to_sheet:a,from_sheet:function(e){for(var t,n=[],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){for(var i=[],o=r.s.c;o<=r.e.c;++o){var l=Yt({r:s,c:o});if((t=a?(e[s]||[])[o]:e[l])&&null!=t.v){for(var u=(t.w||(en(t),t.w)||"").slice(0,10);u.length<10;)u+=" ";i.push(u+(0===o?" ":""))}else i.push(" ")}n.push(i.join(""))}return n.join("\n")}}}(),Ra=function(){function e(e,t){if(!e)return e;var n=t||{},r=n.dense?[]:{},a="Sheet1",s=0,l={},u=[a],c={s:{r:0,c:0},e:{r:0,c:0}},h=n.sheetRows||0;if(2==e[2])n.Enum=i;else if(26==e[2])n.Enum=o;else{if(14!=e[2])throw new Error("Unrecognized LOTUS BOF "+e[2]);n.Enum=o,n.qpro=!0,e.l=0}return function(e,t,n){if(e){Bt(e,e.l||0);for(var r=n.Enum||i;e.l=4096&&(n.qpro=!0);break;case 6:c=t;break;case 15:n.qpro||(t[1].v=t[1].v.slice(1));case 13:case 14:case 16:case 51:14==o&&112==(112&t[2])&&(15&t[2])>1&&(15&t[2])<15&&(t[1].z=n.dateNF||D._table[14],n.cellDates&&(t[1].t="d",t[1].v=X(t[1].v))),n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Yt(t[0])]=t[1]}else switch(o){case 22:t[1].v=t[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(t[3]>s&&(r["!ref"]=Zt(c),l[a]=r,r=n.dense?[]:{},c={s:{r:0,c:0},e:{r:0,c:0}},s=t[3],a="Sheet"+(s+1),u.push(a)),h>0&&t[0].r>=h)break;n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Yt(t[0])]=t[1],c.e.c0?s<>>-i)+(i>-32?a<>>-(i+32))),n}function s(e,t){var n=r(e),a=e.read_shift(8,"f");return n[1].v=a,n}var i={0:{n:"BOF",f:Or},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:function(e){var t={s:{c:0,r:0},e:{c:0,r:0}};return t.s.c=e.read_shift(2),t.s.r=e.read_shift(2),t.e.c=e.read_shift(2),t.e.r=e.read_shift(2),65535==t.s.c&&(t.s.c=t.e.c=t.s.r=t.e.r=0),t}},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(2,"i"),a}},14:{n:"NUMBER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(8,"f"),a}},15:{n:"LABEL",f:n},16:{n:"FORMULA",f:function(e,n,r){var a=e.l+n,s=t(e,0,r);if(s[1].v=e.read_shift(8,"f"),r.qpro)e.l=a;else{var i=e.read_shift(2);e.l+=i}return s}},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f:n},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},255:{n:"",f:Mt}},o={0:{n:"BOF"},1:{n:"EOF"},3:{n:"??"},4:{n:"??"},5:{n:"??"},6:{n:"??"},7:{n:"??"},9:{n:"??"},10:{n:"??"},11:{n:"??"},12:{n:"??"},14:{n:"??"},15:{n:"??"},16:{n:"??"},17:{n:"??"},18:{n:"??"},19:{n:"??"},21:{n:"??"},22:{n:"LABEL16",f:function(e,t){var n=r(e);return n[1].t="s",n[1].v=e.read_shift(t-4,"cstr"),n}},23:{n:"NUMBER17",f:a},24:{n:"NUMBER18",f:function(e,t){var n=r(e);n[1].v=e.read_shift(2);var a=n[1].v>>1;if(1&n[1].v)switch(7&a){case 1:a=500*(a>>3);break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(7&a)}return n[1].v=a,n}},25:{n:"FORMULA19",f:function(e,t){var n=a(e);return e.l+=t-14,n}},26:{n:"??"},27:{n:"??"},28:{n:"??"},29:{n:"??"},30:{n:"??"},31:{n:"??"},33:{n:"??"},37:{n:"NUMBER25",f:function(e,t){var n=r(e),a=e.read_shift(4);return n[1].v=a>>6,n}},39:{n:"NUMBER27",f:s},40:{n:"FORMULA28",f:function(e,t){var n=s(e);return e.l+=t-10,n}},255:{n:"",f:Mt}};return{to_workbook:function(t,n){switch(n.type){case"base64":return e(x(g.decode(t)),n);case"binary":return e(x(t),n);case"buffer":case"array":return e(t,n)}throw"Unsupported type "+n.type}}}(),Fa=function(){var e=Ve("t"),t=Ve("rPr");function n(n){var r=n.match(e);if(!r)return{t:"s",v:""};var a={t:"s",v:Se(r[1])},s=n.match(t);return s&&(a.s=function(e){var t={},n=e.match(ye),r=0,a=!1;if(n)for(;r!=n.length;++r){var s=we(n[r]);switch(s[0].replace(/\w*:/g,"")){case"":case"":t.shadow=1;break;case"":break;case"":case"":t.outline=1;break;case"":break;case"":case"":t.strike=1;break;case"":break;case"":case"":t.u=1;break;case"":break;case"":case"":t.b=1;break;case"":break;case"":case"":t.i=1;break;case"":break;case"":case"":break;case"":a=!1;break;default:if(47!==s[0].charCodeAt(1)&&!a)throw new Error("Unrecognized rich format "+s[0])}}return t}(s[1])),a}var r=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/;return function(e){return e.replace(r,"").split(a).map(n).filter((function(e){return e.v}))}}(),Oa=function(){var e=/(\r\n|\n)/g;function t(t){var n=[[],t.v,[]];return t.v?(t.s&&function(e,t,n){var r=[];e.u&&r.push("text-decoration: underline;"),e.uval&&r.push("text-underline-style:"+e.uval+";"),e.sz&&r.push("font-size:"+e.sz+"pt;"),e.outline&&r.push("text-effect: outline;"),e.shadow&&r.push("text-shadow: auto;"),t.push(''),e.b&&(t.push(""),n.push("")),e.i&&(t.push(""),n.push("")),e.strike&&(t.push(""),n.push(""));var a=e.valign||"";"superscript"==a||"super"==a?a="sup":"subscript"==a&&(a="sub"),""!=a&&(t.push("<"+a+">"),n.push("")),n.push("")}(t.s,n[0],n[2]),n[0].join("")+n[1].replace(e,"
")+n[2].join("")):""}return function(e){return e.map(t).join("")}}(),Ba=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ma=/<(?:\w+:)?r>/,$a=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Pa(e,t){var n=!t||t.cellHTML,r={};return e?(e.match(/^\s*<(?:\w+:)?t[^>]*>/)?(r.t=Se(Be(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=Be(e),n&&(r.h=Re(r.t))):e.match(Ma)&&(r.r=Be(e),r.t=Se(Be((e.replace($a,"").match(Ba)||[]).join("").replace(ye,""))),n&&(r.h=Oa(Fa(r.r)))),r):{t:""}}var La=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,za=/<(?:\w+:)?(?:si|sstItem)>/g,Wa=/<\/(?:\w+:)?(?:si|sstItem)>/;Gn.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Ua=/^\s|\s$|[\t\n\r]/;function Va(e,t){if(!t.bookSST)return"";var n=[me];n[n.length]=Ze("sst",null,{xmlns:nt.main[0],count:e.Count,uniqueCount:e.Unique});for(var r=0;r!=e.length;++r)if(null!=e[r]){var a=e[r],s="";a.r?s+=a.r:(s+=""),s+="",n[n.length]=s}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var ja=function(e,t){var n=!1;return null==t&&(n=!0,t=$t(15+4*e.t.length)),t.write_shift(1,0),on(e.t,t),n?t.slice(0,t.l):t};function Ha(e){var t=Lt();zt(t,"BrtBeginSst",function(e,t){return t||(t=$t(8)),t.write_shift(4,e.Count),t.write_shift(4,e.Unique),t}(e));for(var n=0;n=4&&(e.l+=t-4),n}function Ka(e){for(var t=e.read_shift(4),n=e.l+t-4,r={},a=e.read_shift(4),s=[];a-- >0;)s.push({t:e.read_shift(4),v:e.read_shift(0,"lpp4")});if(r.name=e.read_shift(0,"lpp4"),r.comps=s,e.l!=n)throw new Error("Bad DataSpaceMapEntry: "+e.l+" != "+n);return r}function Xa(e,t){var n=e.l+t,r={};r.Flags=63&e.read_shift(4),e.l+=4,r.AlgID=e.read_shift(4);var a=!1;switch(r.AlgID){case 26126:case 26127:case 26128:a=36==r.Flags;break;case 26625:a=4==r.Flags;break;case 0:a=16==r.Flags||4==r.Flags||36==r.Flags;break;default:throw"Unrecognized encryption algorithm: "+r.AlgID}if(!a)throw new Error("Encryption Flags/AlgID mismatch");return r.AlgIDHash=e.read_shift(4),r.KeySize=e.read_shift(4),r.ProviderType=e.read_shift(4),e.l+=8,r.CSPName=e.read_shift(n-e.l>>1,"utf16le"),e.l=n,r}function Ya(e,t){var n={},r=e.l+t;return e.l+=4,n.Salt=e.slice(e.l,e.l+16),e.l+=16,n.Verifier=e.slice(e.l,e.l+16),e.l+=16,e.read_shift(4),n.VerifierHash=e.slice(e.l,r),e.l=r,n}function Ja(e){if(36!=(63&e.read_shift(4)))throw new Error("EncryptionInfo mismatch");var t=e.read_shift(4);return{t:"Std",h:Xa(e,t),v:Ya(e,e.length-e.l)}}function Za(){throw new Error("File is password-protected: ECMA-376 Extensible")}function Qa(e){var t=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];e.l+=4;var n=e.read_shift(e.length-e.l,"utf8"),r={};return n.replace(ye,(function(e){var n=we(e);switch(_e(n[0])){case"":break;case"":case"":break;case"":break;case"=0;--n)r=((0==(16384&r)?0:1)|r<<1&32767)^t[n];return 52811^r}var ts,ns,rs,as,ss=(ts=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0],ns=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163],rs=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628],as=function(e,t){return 255&((n=e^t)/2|128*n);var n},function(e){for(var t,n,r,a=Ga(e),s=function(e){for(var t=ns[e.length-1],n=104,r=e.length-1;r>=0;--r)for(var a=e[r],s=0;7!=s;++s)64&a&&(t^=rs[n]),a*=2,--n;return t}(a),i=a.length,o=w(16),l=0;16!=l;++l)o[l]=0;for(1==(1&i)&&(t=s>>8,o[i]=as(ts[0],t),--i,t=255&s,n=a[a.length-1],o[i]=as(n,t));i>0;)t=s>>8,o[--i]=as(a[i],t),t=255&s,o[--i]=as(a[i],t);for(i=15,r=15-a.length;r>0;)t=s>>8,o[i]=as(ts[r],t),--r,t=255&s,o[--i]=as(a[i],t),--i,--r;return o});var is=function(){function e(e,n){switch(n.type){case"base64":return t(g.decode(e),n);case"binary":return t(e,n);case"buffer":return t(e.toString("binary"),n);case"array":return t(ee(e),n)}throw new Error("Unrecognized type "+n.type)}function t(e,t){var n=(t||{}).dense?[]:{};if(!e.match(/\\trowd/))throw new Error("RTF missing table");return n["!ref"]=Zt({s:{c:0,r:0},e:{c:0,r:0}}),n}return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,from_sheet:function(e){for(var t,n=["{\\rtf1\\ansi"],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){n.push("\\trowd\\trautofit1");for(var i=r.s.c;i<=r.e.c;++i)n.push("\\cellx"+(i+1));for(n.push("\\pard\\intbl"),i=r.s.c;i<=r.e.c;++i){var o=Yt({r:s,c:i});(t=a?(e[s]||[])[i]:e[o])&&(null!=t.v||t.f&&!t.F)&&(n.push(" "+(t.w||(en(t),t.w))),n.push("\\cell"))}n.push("\\pard\\intbl\\row")}return n.join("")+"}"}}}();function os(e){for(var t=0,n=1;3!=t;++t)n=256*n+(e[t]>255?255:e[t]<0?0:e[t]);return n.toString(16).toUpperCase().slice(1)}function ls(e,t){if(0===t)return e;var n=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,a=Math.max(t,n,r),s=Math.min(t,n,r),i=a-s;if(0===i)return[0,0,t];var o,l=0,u=a+s;switch(o=i/(u>1?2-u:u),a){case t:l=((n-r)/i+6)%6;break;case n:l=(r-t)/i+2;break;case r:l=(t-n)/i+4}return[l/6,o,u/2]}(function(e){var t=e.slice("#"===e[0]?1:0).slice(0,6);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}(e));return n[2]=t<0?n[2]*(1+t):1-(1-n[2])*(1-t),os(function(e){var t,n=e[0],r=e[1],a=e[2],s=2*r*(a<.5?a:1-a),i=a-s/2,o=[i,i,i],l=6*n;if(0!==r)switch(0|l){case 0:case 6:t=s*l,o[0]+=s,o[1]+=t;break;case 1:t=s*(2-l),o[0]+=t,o[1]+=s;break;case 2:t=s*(l-2),o[1]+=s,o[2]+=t;break;case 3:t=s*(4-l),o[1]+=t,o[2]+=s;break;case 4:t=s*(l-4),o[2]+=s,o[0]+=t;break;case 5:t=s*(6-l),o[2]+=t,o[0]+=s}for(var u=0;3!=u;++u)o[u]=Math.round(255*o[u]);return o}(n))}var us=6;function cs(e){return Math.floor((e+Math.round(128/us)/256)*us)}function hs(e){return Math.floor((e-5)/us*100+.5)/100}function fs(e){return Math.round((e*us+5)/us*256)/256}function ds(e){return fs(hs(cs(e)))}function ps(e){var t=Math.abs(e-ds(e)),n=us;if(t>.005)for(us=1;us<15;++us)Math.abs(e-ds(e))<=t&&(t=Math.abs(e-ds(e)),n=us);us=n}function ms(e){e.width?(e.wpx=cs(e.width),e.wch=hs(e.wpx),e.MDW=us):e.wpx?(e.wch=hs(e.wpx),e.width=fs(e.wch),e.MDW=us):"number"==typeof e.wch&&(e.width=fs(e.wch),e.wpx=cs(e.width),e.MDW=us),e.customWidth&&delete e.customWidth}function gs(e){return 96*e/96}function ys(e){return 96*e/96}var bs,vs,ws,_s,xs,ks={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinHorzCross:"lightGrid"},Es=["numFmtId","fillId","fontId","borderId","xfId"],Cs=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"],Ss=(bs=/<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,vs=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,ws=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,_s=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,xs=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/,function(e,t,n){var r,a={};return e?((r=(e=e.replace(//gm,"").replace(//gm,"")).match(bs))&&function(e,t,n){t.NumberFmt=[];for(var r=z(D._table),a=0;a":case"":case"":break;case"0){if(l>392){for(l=392;l>60&&null!=t.NumberFmt[l];--l);t.NumberFmt[l]=o}D.load(o,l)}break;case"":break;default:if(n.WTF)throw new Error("unrecognized "+i[0]+" in numFmts")}}}(r,a,n),(r=e.match(_s))&&function(e,t,n,r){t.Fonts=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var i=we(e);switch(_e(i[0])){case"":case"":break;case"":break;case"":case"":t.Fonts.push(a),a={};break;case"":case"":break;case"":a.bold=1;break;case"":a.italic=1;break;case"":a.underline=1;break;case"":a.strike=1;break;case"":a.outline=1;break;case"":a.shadow=1;break;case"":a.condense=1;break;case"":a.extend=1;break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+i[0]+" in fonts")}}))}(r,a,t,n),(r=e.match(ws))&&function(e,t,n,r){t.Fills=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(_e(n[0])){case"":case"":break;case"":case"":a={},t.Fills.push(a);break;case"":case"":break;case"":t.Fills.push(a),a={};break;case"":n.patternType&&(a.patternType=n.patternType);break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in fills")}}))}(r,a,0,n),(r=e.match(xs))&&function(e,t,n,r){t.Borders=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(_e(n[0])){case"":case"":break;case"":case"":a={},n.diagonalUp&&(a.diagonalUp=Oe(n.diagonalUp)),n.diagonalDown&&(a.diagonalDown=Oe(n.diagonalDown)),t.Borders.push(a);break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in borders")}}))}(r,a,0,n),(r=e.match(vs))&&function(e,t,n){var r;t.CellXf=[];var a=!1;(e[0].match(ye)||[]).forEach((function(e){var s=we(e),i=0;switch(_e(s[0])){case"":case"":case"":break;case"":for(delete(r=s)[0],i=0;i392)for(i=392;i>60;--i)if(t.NumberFmt[r.numFmtId]==t.NumberFmt[i]){r.numFmtId=i;break}t.CellXf.push(r);break;case"":break;case"":var o={};s.vertical&&(o.vertical=s.vertical),s.horizontal&&(o.horizontal=s.horizontal),null!=s.textRotation&&(o.textRotation=s.textRotation),s.indent&&(o.indent=s.indent),s.wrapText&&(o.wrapText=Oe(s.wrapText)),r.alignment=o;break;case"":case"":case"":break;case"":a=!1;break;case"":case"":break;case"":a=!1;break;default:if(n&&n.WTF&&!a)throw new Error("unrecognized "+s[0]+" in cellXfs")}}))}(r,a,n),a):a}),Ns=Ze("styleSheet",null,{xmlns:nt.main[0],"xmlns:vt":nt.vt});function Is(e,t){var n,r=[me,Ns];return e.SSF&&null!=(n=function(e){var t=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=e[r]&&(t[t.length]=Ze("numFmt",null,{numFmtId:r,formatCode:De(e[r])}))})),1===t.length?"":(t[t.length]="",t[0]=Ze("numFmts",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(e.SSF))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',(n=function(e){var t=[];return t[t.length]=Ze("cellXfs",null),e.forEach((function(e){t[t.length]=Ze("xf",null,e)})),t[t.length]="",2===t.length?"":(t[0]=Ze("cellXfs",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(t.cellXfs))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function Ds(e,t,n){n||(n=$t(6+4*t.length)),n.write_shift(2,e),on(t,n);var r=n.length>n.l?n.slice(0,n.l):n;return null==n.l&&(n.l=n.length),r}Gn.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";var As=U(["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"]),Ts=Mt;function Rs(e,t){t||(t=$t(84));var n=As[e.patternType];null==n&&(n=40),t.write_shift(4,n);var r=0;if(40!=n)for(Sn({auto:1},t),Sn({auto:1},t);r<12;++r)t.write_shift(4,0);else{for(;r<4;++r)t.write_shift(4,0);for(;r<12;++r)t.write_shift(4,0)}return t.length>t.l?t.slice(0,t.l):t}function Fs(e,t,n){return n||(n=$t(16)),n.write_shift(2,t||0),n.write_shift(2,e.numFmtId||0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n}function Os(e,t){return t||(t=$t(10)),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(4,0),t.write_shift(4,0),t}var Bs=Mt;function Ms(e,t){var n=Lt();return zt(n,"BrtBeginStyleSheet"),function(e,t){if(t){var n=0;[[5,8],[23,26],[41,44],[50,392]].forEach((function(e){for(var r=e[0];r<=e[1];++r)null!=t[r]&&++n})),0!=n&&(zt(e,"BrtBeginFmts",an(n)),[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=t[r]&&zt(e,"BrtFmt",Ds(r,t[r]))})),zt(e,"BrtEndFmts"))}}(n,e.SSF),function(e){zt(e,"BrtBeginFonts",an(1)),zt(e,"BrtFont",function(e,t){t||(t=$t(153)),t.write_shift(2,20*e.sz),function(e,t){t||(t=$t(2));var n=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);t.write_shift(1,n),t.write_shift(1,0)}(e,t),t.write_shift(2,e.bold?700:400);var n=0;"superscript"==e.vertAlign?n=1:"subscript"==e.vertAlign&&(n=2),t.write_shift(2,n),t.write_shift(1,e.underline||0),t.write_shift(1,e.family||0),t.write_shift(1,e.charset||0),t.write_shift(1,0),Sn(e.color,t);var r=0;return"major"==e.scheme&&(r=1),"minor"==e.scheme&&(r=2),t.write_shift(1,r),on(e.name,t),t.length>t.l?t.slice(0,t.l):t}({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"})),zt(e,"BrtEndFonts")}(n),function(e){zt(e,"BrtBeginFills",an(2)),zt(e,"BrtFill",Rs({patternType:"none"})),zt(e,"BrtFill",Rs({patternType:"gray125"})),zt(e,"BrtEndFills")}(n),function(e){zt(e,"BrtBeginBorders",an(1)),zt(e,"BrtBorder",function(e,t){return t||(t=$t(51)),t.write_shift(1,0),Os(0,t),Os(0,t),Os(0,t),Os(0,t),Os(0,t),t.length>t.l?t.slice(0,t.l):t}()),zt(e,"BrtEndBorders")}(n),function(e){zt(e,"BrtBeginCellStyleXFs",an(1)),zt(e,"BrtXF",Fs({numFmtId:0,fontId:0,fillId:0,borderId:0},65535)),zt(e,"BrtEndCellStyleXFs")}(n),function(e,t){zt(e,"BrtBeginCellXFs",an(t.length)),t.forEach((function(t){zt(e,"BrtXF",Fs(t,0))})),zt(e,"BrtEndCellXFs")}(n,t.cellXfs),function(e){zt(e,"BrtBeginStyles",an(1)),zt(e,"BrtStyle",function(e,t){return t||(t=$t(52)),t.write_shift(4,e.xfId),t.write_shift(2,1),t.write_shift(1,+e.builtinId),t.write_shift(1,0),gn(e.name||"",t),t.length>t.l?t.slice(0,t.l):t}({xfId:0,builtinId:0,name:"Normal"})),zt(e,"BrtEndStyles")}(n),function(e){zt(e,"BrtBeginDXFs",an(0)),zt(e,"BrtEndDXFs")}(n),function(e){zt(e,"BrtBeginTableStyles",function(e,t,n){var r=$t(2052);return r.write_shift(4,0),gn("TableStyleMedium9",r),gn("PivotStyleMedium4",r),r.length>r.l?r.slice(0,r.l):r}()),zt(e,"BrtEndTableStyles")}(n),zt(n,"BrtEndStyleSheet"),n.end()}Gn.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";var $s=["","","","","","","","","","","",""];function Ps(e,t,n){t.themeElements.clrScheme=[];var r={};(e[0].match(ye)||[]).forEach((function(e){var a=we(e);switch(a[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":"/"===a[0].charAt(1)?(t.themeElements.clrScheme[$s.indexOf(a[0])]=r,r={}):r.name=a[0].slice(3,a[0].length-1);break;default:if(n&&n.WTF)throw new Error("Unrecognized "+a[0]+" in clrScheme")}}))}function Ls(){}function zs(){}var Ws=/]*)>[\s\S]*<\/a:clrScheme>/,Us=/]*)>[\s\S]*<\/a:fontScheme>/,Vs=/]*)>[\s\S]*<\/a:fmtScheme>/,js=/]*)>[\s\S]*<\/a:themeElements>/;function Hs(e,t){if(!e||0===e.length)return Hs(Gs());var n,r={};if(!(n=e.match(js)))throw new Error("themeElements not found in theme");return function(e,t,n){var r;t.themeElements={},[["clrScheme",Ws,Ps],["fontScheme",Us,Ls],["fmtScheme",Vs,zs]].forEach((function(a){if(!(r=e.match(a[1])))throw new Error(a[0]+" not found in themeElements");a[2](r,t,n)}))}(n[0],r,t),r.raw=e,r}function Gs(e,t){if(t&&t.themeXLSX)return t.themeXLSX;if(e&&"string"==typeof e.raw)return e.raw;var n=[me];return n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n.join("")}function qs(e){var t=e.read_shift(2),n=e.read_shift(2)-4,r=[t];switch(t){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:r[1]=function(e){var t={};switch(t.xclrType=e.read_shift(2),t.nTintShade=e.read_shift(2),t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=function(e,t){return Mt(e,4)}(e);break;case 2:t.xclrValue=Gr(e);break;case 3:t.xclrValue=function(e){return e.read_shift(4)}(e);break;case 4:e.l+=4}return e.l+=8,t}(e);break;case 6:r[1]=function(e,t){return Mt(e,t)}(e,n);break;case 14:case 15:r[1]=e.read_shift(1===n?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+n)}return r}Gn.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Gn.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";var Ks=1024;function Xs(e,t){for(var n=[21600,21600],r=["m0,0l0",n[1],n[0],n[1],n[0],"0xe"].join(","),a=[Ze("xml",null,{"xmlns:v":"urn:schemas-microsoft-com:vml","xmlns:o":rt,"xmlns:x":at,"xmlns:mv":"http://macVmlSchemaUri"}).replace(/\/>/,">"),Ze("o:shapelayout",Ze("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ze("v:shapetype",[Ze("v:stroke",null,{joinstyle:"miter"}),Ze("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:n.join(","),path:r})];Ks<1e3*e;)Ks+=1e3;return t.forEach((function(e){var t=Xt(e[0]),n={color2:"#BEFF82",type:"gradient"};"gradient"==n.type&&(n.angle="-180");var r="gradient"==n.type?Ze("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}):null,s=Ze("v:fill",r,n);++Ks,a=a.concat(["",s,Ze("v:shadow",null,{on:"t",obscured:"t"}),Ze("v:path",null,{"o:connecttype":"none"}),'
','',"","",Ye("x:Anchor",[t.c+1,0,t.r+1,0,t.c+3,20,t.r+5,20].join(",")),Ye("x:AutoFill","False"),Ye("x:Row",String(t.r)),Ye("x:Column",String(t.c)),e[1].hidden?"":"","",""])})),a.push(""),a.join("")}Gn.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";var Ys=Ze("comments",null,{xmlns:nt.main[0]});function Js(e){var t=[me,Ys],n=[];return t.push(""),e.forEach((function(e){e[1].forEach((function(e){var r=De(e.a);n.indexOf(r)>-1||(n.push(r),t.push(""+r+""))}))})),t.push(""),t.push(""),e.forEach((function(e){e[1].forEach((function(r){t.push(''),t.push(Ye("t",null==r.t?"":De(r.t))),t.push("")}))})),t.push(""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Zs=sn;function Qs(e){var t=Lt(),n=[];return zt(t,"BrtBeginComments"),zt(t,"BrtBeginCommentAuthors"),e.forEach((function(e){e[1].forEach((function(e){n.indexOf(e.a)>-1||(n.push(e.a.slice(0,54)),zt(t,"BrtCommentAuthor",function(e){return on(e.slice(0,54))}(e.a)))}))})),zt(t,"BrtEndCommentAuthors"),zt(t,"BrtBeginCommentList"),e.forEach((function(e){e[1].forEach((function(r){r.iauthor=n.indexOf(r.a);var a={s:Xt(e[0]),e:Xt(e[0])};zt(t,"BrtBeginComment",function(e,t){return null==t&&(t=$t(36)),t.write_shift(4,e[1].iauthor),kn(e[0],t),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t}([a,r])),r.t&&r.t.length>0&&zt(t,"BrtCommentText",function(e,t){var n=!1;return null==t&&(n=!0,t=$t(23+4*e.t.length)),t.write_shift(1,1),on(e.t,t),t.write_shift(4,1),function(e,t){t||(t=$t(4)),t.write_shift(2,e.ich||0),t.write_shift(2,e.ifnt||0)}({ich:0,ifnt:0},t),n?t.slice(0,t.l):t}(r)),zt(t,"BrtEndComment"),delete r.iauthor}))})),zt(t,"BrtEndCommentList"),zt(t,"BrtEndComments"),t.end()}var ei=["xlsb","xlsm","xlam","biff8","xla"];Gn.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",Gn.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";var ti=function(){var e=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,t={r:0,c:0};function n(e,n,r,a){var s=!1,i=!1;0==r.length?i=!0:"["==r.charAt(0)&&(i=!0,r=r.slice(1,-1)),0==a.length?s=!0:"["==a.charAt(0)&&(s=!0,a=a.slice(1,-1));var o=r.length>0?0|parseInt(r,10):0,l=a.length>0?0|parseInt(a,10):0;return s?l+=t.c:--l,i?o+=t.r:--o,n+(s?"":"$")+Kt(l)+(i?"":"$")+Gt(o)}return function(r,a){return t=a,r.replace(e,n)}}(),ni=/(^|[^._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,ri=function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){var o=qt(a)-(r?0:t.c),l=Ht(i)-(s?0:t.r);return n+"R"+(0==l?"":s?l+1:"["+l+"]")+"C"+(0==o?"":r?o+1:"["+o+"]")}))};function ai(e,t,n){var r=Jt(t).s,a=Xt(n);return function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){return n+("$"==r?r+a:Kt(qt(a)+t.c))+("$"==s?s+i:Gt(Ht(i)+t.r))}))}(e,{r:a.r-r.r,c:a.c-r.c})}function si(e){return e.replace(/_xlfn\./g,"")}function ii(e){e.l+=1}function oi(e,t){var n=e.read_shift(1==t?1:2);return[16383&n,n>>14&1,n>>15&1]}function li(e,t,n){var r=2;if(n){if(n.biff>=2&&n.biff<=5)return ui(e);12==n.biff&&(r=4)}var a=e.read_shift(r),s=e.read_shift(r),i=oi(e,2),o=oi(e,2);return{s:{r:a,c:i[0],cRel:i[1],rRel:i[2]},e:{r:s,c:o[0],cRel:o[1],rRel:o[2]}}}function ui(e){var t=oi(e,2),n=oi(e,2),r=e.read_shift(1),a=e.read_shift(1);return{s:{r:t[0],c:r,cRel:t[1],rRel:t[2]},e:{r:n[0],c:a,cRel:n[1],rRel:n[2]}}}function ci(e,t,n){if(n&&n.biff>=2&&n.biff<=5)return function(e){var t=oi(e,2),n=e.read_shift(1);return{r:t[0],c:n,cRel:t[1],rRel:t[2]}}(e);var r=e.read_shift(n&&12==n.biff?4:2),a=oi(e,2);return{r,c:a[0],cRel:a[1],rRel:a[2]}}function hi(e){var t=e.read_shift(2),n=e.read_shift(2);return{r:t,c:255&n,fQuoted:!!(16384&n),cRel:n>>15,rRel:n>>15}}function fi(e){return[e.read_shift(1),e.read_shift(1)]}function di(e,t){var n=[e.read_shift(1)];if(12==t)switch(n[0]){case 2:n[0]=4;break;case 4:n[0]=16;break;case 0:n[0]=1;break;case 1:n[0]=2}switch(n[0]){case 4:n[1]=Rr(e,1)?"TRUE":"FALSE",12!=t&&(e.l+=7);break;case 37:case 16:n[1]=Ln[e[e.l]],e.l+=12==t?4:8;break;case 0:e.l+=8;break;case 1:n[1]=En(e);break;case 2:n[1]=Ur(e,0,{biff:t>0&&t<8?2:t});break;default:throw new Error("Bad SerAr: "+n[0])}return n}function pi(e,t,n){for(var r=e.read_shift(12==n.biff?4:2),a=[],s=0;s!=r;++s)a.push((12==n.biff?xn:Zr)(e,8));return a}function mi(e,t,n){var r=0,a=0;12==n.biff?(r=e.read_shift(4),a=e.read_shift(4)):(a=1+e.read_shift(1),r=1+e.read_shift(2)),n.biff>=2&&n.biff<8&&(--r,0==--a&&(a=256));for(var s=0,i=[];s!=r&&(i[s]=[]);++s)for(var o=0;o!=a;++o)i[s][o]=di(e,n.biff);return i}function gi(e,t,n){return e.l+=2,[hi(e)]}function yi(e){return e.l+=6,[]}var bi=gi,vi=yi,wi=yi,_i=gi;function xi(e){return e.l+=2,[Or(e),1&e.read_shift(2)]}var ki=gi,Ei=xi,Ci=yi,Si=gi,Ni=gi,Ii=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"],Di={1:{n:"PtgExp",f:function(e,t,n){return e.l++,n&&12==n.biff?[e.read_shift(4,"i"),0]:[e.read_shift(2),e.read_shift(n&&2==n.biff?1:2)]}},2:{n:"PtgTbl",f:Mt},3:{n:"PtgAdd",f:ii},4:{n:"PtgSub",f:ii},5:{n:"PtgMul",f:ii},6:{n:"PtgDiv",f:ii},7:{n:"PtgPower",f:ii},8:{n:"PtgConcat",f:ii},9:{n:"PtgLt",f:ii},10:{n:"PtgLe",f:ii},11:{n:"PtgEq",f:ii},12:{n:"PtgGe",f:ii},13:{n:"PtgGt",f:ii},14:{n:"PtgNe",f:ii},15:{n:"PtgIsect",f:ii},16:{n:"PtgUnion",f:ii},17:{n:"PtgRange",f:ii},18:{n:"PtgUplus",f:ii},19:{n:"PtgUminus",f:ii},20:{n:"PtgPercent",f:ii},21:{n:"PtgParen",f:ii},22:{n:"PtgMissArg",f:ii},23:{n:"PtgStr",f:function(e,t,n){return e.l++,$r(e,0,n)}},26:{n:"PtgSheet",f:function(e,t,n){return e.l+=5,e.l+=2,e.l+=2==n.biff?1:4,["PTGSHEET"]}},27:{n:"PtgEndSheet",f:function(e,t,n){return e.l+=2==n.biff?4:5,["PTGENDSHEET"]}},28:{n:"PtgErr",f:function(e){return e.l++,Ln[e.read_shift(1)]}},29:{n:"PtgBool",f:function(e){return e.l++,0!==e.read_shift(1)}},30:{n:"PtgInt",f:function(e){return e.l++,e.read_shift(2)}},31:{n:"PtgNum",f:function(e){return e.l++,En(e)}},32:{n:"PtgArray",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=2==n.biff?6:12==n.biff?14:7,[r]}},33:{n:"PtgFunc",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(n&&n.biff<=3?1:2);return[Ji[a],Yi[a],r]}},34:{n:"PtgFuncVar",f:function(e,t,n){var r=e[e.l++],a=e.read_shift(1),s=n&&n.biff<=3?[88==r?-1:0,e.read_shift(1)]:function(e){return[e[e.l+1]>>7,32767&e.read_shift(2)]}(e);return[a,(0===s[0]?Yi:Xi)[s[1]]]}},35:{n:"PtgName",f:function(e,t,n){var r=e.read_shift(1)>>>5&3,a=!n||n.biff>=8?4:2,s=e.read_shift(a);switch(n.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12}return[r,0,s]}},36:{n:"PtgRef",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,ci(e,0,n)]}},37:{n:"PtgArea",f:function(e,t,n){return[(96&e[e.l++])>>5,li(e,n.biff>=2&&n.biff,n)]}},38:{n:"PtgMemArea",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=n&&2==n.biff?3:4,[r,e.read_shift(n&&2==n.biff?1:2)]}},39:{n:"PtgMemErr",f:Mt},40:{n:"PtgMemNoMem",f:Mt},41:{n:"PtgMemFunc",f:function(e,t,n){return[e.read_shift(1)>>>5&3,e.read_shift(n&&2==n.biff?1:2)]}},42:{n:"PtgRefErr",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=4,n.biff<8&&e.l--,12==n.biff&&(e.l+=2),[r]}},43:{n:"PtgAreaErr",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=n&&n.biff>8?12:n.biff<8?6:8,[r]}},44:{n:"PtgRefN",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,function(e,t,n){var r=n&&n.biff?n.biff:8;if(r>=2&&r<=5)return function(e){var t=e.read_shift(2),n=e.read_shift(1),r=(32768&t)>>15,a=(16384&t)>>14;return t&=16383,1==r&&t>=8192&&(t-=16384),1==a&&n>=128&&(n-=256),{r:t,c:n,cRel:a,rRel:r}}(e);var a=e.read_shift(r>=12?4:2),s=e.read_shift(2),i=(16384&s)>>14,o=(32768&s)>>15;if(s&=16383,1==o)for(;a>524287;)a-=1048576;if(1==i)for(;s>8191;)s-=16384;return{r:a,c:s,cRel:i,rRel:o}}(e,0,n)]}},45:{n:"PtgAreaN",f:function(e,t,n){return[(96&e[e.l++])>>5,function(e,t,n){if(n.biff<8)return ui(e);var r=e.read_shift(12==n.biff?4:2),a=e.read_shift(12==n.biff?4:2),s=oi(e,2),i=oi(e,2);return{s:{r,c:s[0],cRel:s[1],rRel:s[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}(e,0,n)]}},46:{n:"PtgMemAreaN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},47:{n:"PtgMemNoMemN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},57:{n:"PtgNameX",f:function(e,t,n){return 5==n.biff?function(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2,"i");e.l+=8;var r=e.read_shift(2);return e.l+=12,[t,n,r]}(e):[e.read_shift(1)>>>5&3,e.read_shift(2),e.read_shift(4)]}},58:{n:"PtgRef3d",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(2);return n&&5==n.biff&&(e.l+=12),[r,a,ci(e,0,n)]}},59:{n:"PtgArea3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2,"i");if(n)switch(n.biff){case 5:e.l+=12}return[r,a,li(e,0,n)]}},60:{n:"PtgRefErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=4;if(n)switch(n.biff){case 5:s=15;break;case 12:s=6}return e.l+=s,[r,a]}},61:{n:"PtgAreaErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=8;if(n)switch(n.biff){case 5:e.l+=12,s=6;break;case 12:s=12}return e.l+=s,[r,a]}},255:{}},Ai={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};!function(){for(var e in Ai)Di[e]=Di[Ai[e]]}();var Ti={1:{n:"PtgElfLel",f:xi},2:{n:"PtgElfRw",f:Si},3:{n:"PtgElfCol",f:bi},6:{n:"PtgElfRwV",f:Ni},7:{n:"PtgElfColV",f:_i},10:{n:"PtgElfRadical",f:ki},11:{n:"PtgElfRadicalS",f:Ci},13:{n:"PtgElfColS",f:vi},15:{n:"PtgElfColSV",f:wi},16:{n:"PtgElfRadicalLel",f:Ei},25:{n:"PtgList",f:function(e){e.l+=2;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a=e.read_shift(2),s=e.read_shift(2);return{ixti:t,coltype:3&n,rt:Ii[n>>2&31],idx:r,c:a,C:s}}},29:{n:"PtgSxName",f:function(e){return e.l+=2,[e.read_shift(4)]}},255:{}},Ri={0:{n:"PtgAttrNoop",f:function(e){return e.l+=4,[0,0]}},1:{n:"PtgAttrSemi",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=n&&2==n.biff?3:4,[r]}},2:{n:"PtgAttrIf",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},4:{n:"PtgAttrChoose",f:function(e,t,n){e.l+=2;for(var r=e.read_shift(n&&2==n.biff?1:2),a=[],s=0;s<=r;++s)a.push(e.read_shift(n&&2==n.biff?1:2));return a}},8:{n:"PtgAttrGoto",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},16:{n:"PtgAttrSum",f:function(e,t,n){e.l+=n&&2==n.biff?3:4}},32:{n:"PtgAttrBaxcel",f:function(e){var t=1&e[e.l+1];return e.l+=4,[t,1]}},64:{n:"PtgAttrSpace",f:function(e){return e.read_shift(2),fi(e)}},65:{n:"PtgAttrSpaceSemi",f:function(e){return e.read_shift(2),fi(e)}},128:{n:"PtgAttrIfError",f:function(e){var t=255&e[e.l+1]?1:0;return e.l+=2,[t,e.read_shift(2)]}},255:{}};function Fi(e,t,n,r){if(r.biff<8)return Mt(e,t);for(var a=e.l+t,s=[],i=0;i!==n.length;++i)switch(n[i][0]){case"PtgArray":n[i][1]=mi(e,0,r),s.push(n[i][1]);break;case"PtgMemArea":n[i][2]=pi(e,n[i][1],r),s.push(n[i][2]);break;case"PtgExp":r&&12==r.biff&&(n[i][1][1]=e.read_shift(4),s.push(n[i][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+n[i][0]}return 0!=(t=a-e.l)&&s.push(Mt(e,t)),s}function Oi(e,t,n){for(var r,a,s=e.l+t,i=[];s!=e.l;)t=s-e.l,a=e[e.l],r=Di[a],24!==a&&25!==a||(r=(24===a?Ti:Ri)[e[e.l+1]]),r&&r.f?i.push([r.n,r.f(e,t,n)]):Mt(e,t);return i}function Bi(e){for(var t=[],n=0;n=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"},$i=new RegExp(/[^\w\u4E00-\u9FFF\u3040-\u30FF]/);function Pi(e,t,n){if(!e)return"SH33TJSERR0";if(n.biff>8&&(!e.XTI||!e.XTI[t]))return e.SheetNames[t];if(!e.XTI)return"SH33TJSERR6";var r=e.XTI[t];if(n.biff<8)return t>1e4&&(t-=65536),t<0&&(t=-t),0==t?"":e.XTI[t-1];if(!r)return"SH33TJSERR1";var a="";if(n.biff>8)switch(e[r[0]][0]){case 357:return a=-1==r[1]?"#REF":e.SheetNames[r[1]],r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 358:return null!=n.SID?e.SheetNames[n.SID]:"SH33TJSSAME"+e[r[0]][0];case 355:default:return"SH33TJSSRC"+e[r[0]][0]}switch(e[r[0]][0][0]){case 1025:return a=-1==r[1]?"#REF":e.SheetNames[r[1]]||"SH33TJSERR3",r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 14849:return e[r[0]].slice(1).map((function(e){return e.Name})).join(";;");default:return e[r[0]][0][3]?(a=-1==r[1]?"#REF":e[r[0]][0][3][r[1]]||"SH33TJSERR4",r[1]==r[2]?a:a+":"+e[r[0]][0][3][r[2]]):"SH33TJSERR2"}}function Li(e,t,n){return function(e,t){if(!(e||t&&t.biff<=5&&t.biff>=2))throw new Error("empty sheet name");return $i.test(e)?"'"+e+"'":e}(Pi(e,t,n),n)}function zi(e,t,n,r,a){var s,i,o,l,u=a&&a.biff||8,c={s:{c:0,r:0},e:{c:0,r:0}},h=[],f=0,d=0,p="";if(!e[0]||!e[0][0])return"";for(var m=-1,g="",y=0,b=e[0].length;y=0){switch(e[0][m][1][0]){case 0:g=ne(" ",e[0][m][1][1]);break;case 1:g=ne("\r",e[0][m][1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}i+=g,m=-1}h.push(i+Mi[v[0]]+s);break;case"PtgIsect":s=h.pop(),i=h.pop(),h.push(i+" "+s);break;case"PtgUnion":s=h.pop(),i=h.pop(),h.push(i+","+s);break;case"PtgRange":s=h.pop(),i=h.pop(),h.push(i+":"+s);break;case"PtgAttrChoose":case"PtgAttrGoto":case"PtgAttrIf":case"PtgAttrIfError":break;case"PtgRef":o=Wt(v[1][1],c,a),h.push(Vt(o,u));break;case"PtgRefN":o=n?Wt(v[1][1],n,a):v[1][1],h.push(Vt(o,u));break;case"PtgRef3d":f=v[1][1],o=Wt(v[1][2],c,a),p=Li(r,f,a),h.push(p+"!"+Vt(o,u));break;case"PtgFunc":case"PtgFuncVar":var w=v[1][0],_=v[1][1];w||(w=0);var x=0==(w&=127)?[]:h.slice(-w);h.length-=w,"User"===_&&(_=x.shift()),h.push(_+"("+x.join(",")+")");break;case"PtgBool":h.push(v[1]?"TRUE":"FALSE");break;case"PtgInt":h.push(v[1]);break;case"PtgNum":h.push(String(v[1]));break;case"PtgStr":h.push('"'+v[1].replace(/"/g,'""')+'"');break;case"PtgErr":h.push(v[1]);break;case"PtgAreaN":l=Ut(v[1][1],n?{s:n}:c,a),h.push(jt(l,a));break;case"PtgArea":l=Ut(v[1][1],c,a),h.push(jt(l,a));break;case"PtgArea3d":f=v[1][1],l=v[1][2],p=Li(r,f,a),h.push(p+"!"+jt(l,a));break;case"PtgAttrSum":h.push("SUM("+h.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":d=v[1][2];var k=(r.names||[])[d-1]||(r[0]||[])[d],E=k?k.Name:"SH33TJSNAME"+String(d);E in Zi&&(E=Zi[E]),h.push(E);break;case"PtgNameX":var C,S=v[1][1];if(d=v[1][2],!(a.biff<=5)){var N="";if(14849==((r[S]||[])[0]||[])[0]||(1025==((r[S]||[])[0]||[])[0]?r[S][d]&&r[S][d].itab>0&&(N=r.SheetNames[r[S][d].itab-1]+"!"):N=r.SheetNames[d-1]+"!"),r[S]&&r[S][d])N+=r[S][d].Name;else if(r[0]&&r[0][d])N+=r[0][d].Name;else{var I=Pi(r,S,a).split(";;");I[d-1]?N=I[d-1]:N+="SH33TJSERRX"}h.push(N);break}S<0&&(S=-S),r[S]&&(C=r[S][d]),C||(C={Name:"SH33TJSERRY"}),h.push(C.Name);break;case"PtgParen":var D="(",A=")";if(m>=0){switch(g="",e[0][m][1][0]){case 2:D=ne(" ",e[0][m][1][1])+D;break;case 3:D=ne("\r",e[0][m][1][1])+D;break;case 4:A=ne(" ",e[0][m][1][1])+A;break;case 5:A=ne("\r",e[0][m][1][1])+A;break;default:if(a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}m=-1}h.push(D+h.pop()+A);break;case"PtgRefErr":case"PtgRefErr3d":h.push("#REF!");break;case"PtgExp":o={c:v[1][1],r:v[1][0]};var T={c:n.c,r:n.r};if(r.sharedf[Yt(o)]){var R=r.sharedf[Yt(o)];h.push(zi(R,0,T,r,a))}else{var F=!1;for(s=0;s!=r.arrayf.length;++s)if(i=r.arrayf[s],!(o.ci[0].e.c||o.ri[0].e.r)){h.push(zi(i[1],0,T,r,a)),F=!0;break}F||h.push(v[1])}break;case"PtgArray":h.push("{"+Bi(v[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":m=y;break;case"PtgTbl":case"PtgMemErr":break;case"PtgMissArg":h.push("");break;case"PtgAreaErr":case"PtgAreaErr3d":h.push("#REF!");break;case"PtgList":h.push("Table"+v[1].idx+"[#"+v[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":case"PtgMemFunc":case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":default:throw new Error("Unrecognized Formula Token: "+String(v))}if(3!=a.biff&&m>=0&&-1==["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"].indexOf(e[0][y][0])){var O=!0;switch((v=e[0][m])[1][0]){case 4:O=!1;case 0:g=ne(" ",v[1][1]);break;case 5:O=!1;case 1:g=ne("\r",v[1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+v[1][0])}h.push((O?g:"")+h.pop()+(O?"":g)),m=-1}}if(h.length>1&&a.WTF)throw new Error("bad formula stack");return h[0]}function Wi(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Fi(e,t-i-s,o,n)),e.l=a,[o,r]}function Ui(e,t,n){var r,a=e.l+t,s=e.read_shift(2),i=Oi(e,s,n);return 65535==s?[[],Mt(e,t-2)]:(t!==s+2&&(r=Fi(e,a-s-2,i,n)),[i,r])}function Vi(e,t,n){var r=e.l+t,a=Kr(e);2==n.biff&&++e.l;var s=function(e){var t;if(65535!==St(e,e.l+6))return[En(e),"n"];switch(e[e.l]){case 0:return e.l+=8,["String","s"];case 1:return t=1===e[e.l+2],e.l+=8,[t,"b"];case 2:return t=e[e.l+2],e.l+=8,[t,"e"];case 3:return e.l+=8,["","s"]}return[]}(e),i=e.read_shift(1);2!=n.biff&&(e.read_shift(1),n.biff>=5&&e.read_shift(4));var o=function(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Fi(e,t-i-s,o,n)),e.l=a,[o,r]}(e,r-e.l,n);return{cell:a,val:s[0],formula:o,shared:i>>3&1,tt:s[1]}}function ji(e,t,n){var r=e.read_shift(4),a=Oi(e,r,n),s=e.read_shift(4);return[a,s>0?Fi(e,s,a,n):null]}var Hi=ji,Gi=ji,qi=ji,Ki=ji,Xi={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},Yi={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},Ji={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0},Zi={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONCAT":"CONCAT","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORECAST.ETS":"FORECAST.ETS","_xlfn.FORECAST.ETS.CONFINT":"FORECAST.ETS.CONFINT","_xlfn.FORECAST.ETS.SEASONALITY":"FORECAST.ETS.SEASONALITY","_xlfn.FORECAST.ETS.STAT":"FORECAST.ETS.STAT","_xlfn.FORECAST.LINEAR":"FORECAST.LINEAR","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFERROR":"IFERROR","_xlfn.IFNA":"IFNA","_xlfn.IFS":"IFS","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MAXIFS":"MAXIFS","_xlfn.MINIFS":"MINIFS","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.SWITCH":"SWITCH","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.TEXTJOIN":"TEXTJOIN","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Qi(e){return"of:"==e.slice(0,3)&&(e=e.slice(3)),61==e.charCodeAt(0)&&61==(e=e.slice(1)).charCodeAt(0)&&(e=e.slice(1)),(e=(e=(e=e.replace(/COM\.MICROSOFT\./g,"")).replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,(function(e,t){return t.replace(/\./g,"")}))).replace(/\[.(#[A-Z]*[?!])\]/g,"$1")).replace(/[;~]/g,",").replace(/\|/g,";")}function eo(e){var t=e.split(":");return[t[0].split(".")[0],t[0].split(".")[1]+(t.length>1?":"+(t[1].split(".")[1]||t[1].split(".")[0]):"")]}var to={},no={};Gn.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];var ro="undefined"!=typeof Map;function ao(e,t,n){var r=0,a=e.length;if(n){if(ro?n.has(t):Object.prototype.hasOwnProperty.call(n,t))for(var s=ro?n.get(t):n[t];r-1?(n.width=fs(r),n.customWidth=1):null!=t.width&&(n.width=t.width),t.hidden&&(n.hidden=!0),n}function io(e,t){if(e){var n=[.7,.7,.75,.75,.3,.3];"xlml"==t&&(n=[1,1,1,1,.5,.5]),null==e.left&&(e.left=n[0]),null==e.right&&(e.right=n[1]),null==e.top&&(e.top=n[2]),null==e.bottom&&(e.bottom=n[3]),null==e.header&&(e.header=n[4]),null==e.footer&&(e.footer=n[5])}}function oo(e,t,n){var r=n.revssf[null!=t.z?t.z:"General"],a=60,s=e.length;if(null==r&&n.ssf)for(;a<392;++a)if(null==n.ssf[a]){D.load(t.z,a),n.ssf[a]=t.z,n.revssf[t.z]=r=a;break}for(a=0;a!=s;++a)if(e[a].numFmtId===r)return a;return e[s]={numFmtId:r,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},s}function lo(e,t,n,r,a,s){try{r.cellNF&&(e.z=D._table[t])}catch(e){if(r.WTF)throw e}if("z"!==e.t){if("d"===e.t&&"string"==typeof e.v&&(e.v=Q(e.v)),!r||!1!==r.cellText)try{if(null==D._table[t]&&D.load(F[t]||"General",t),"e"===e.t)e.w=e.w||Ln[e.v];else if(0===t)if("n"===e.t)(0|e.v)===e.v?e.w=D._general_int(e.v):e.w=D._general_num(e.v);else if("d"===e.t){var i=H(e.v);e.w=(0|i)===i?D._general_int(i):D._general_num(i)}else{if(void 0===e.v)return"";e.w=D._general(e.v,no)}else"d"===e.t?e.w=D.format(t,H(e.v),no):e.w=D.format(t,e.v,no)}catch(e){if(r.WTF)throw e}if(r.cellStyles&&null!=n)try{e.s=s.Fills[n],e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb&&(e.s.fgColor.rgb=ls(a.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0),r.WTF&&(e.s.fgColor.raw_rgb=a.themeElements.clrScheme[e.s.fgColor.theme].rgb)),e.s.bgColor&&e.s.bgColor.theme&&(e.s.bgColor.rgb=ls(a.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0),r.WTF&&(e.s.bgColor.raw_rgb=a.themeElements.clrScheme[e.s.bgColor.theme].rgb))}catch(e){if(r.WTF&&s.Fills)throw e}}}function uo(e,t,n){if(e&&e["!ref"]){var r=Qt(e["!ref"]);if(r.e.c/g,ho=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,fo=/<(?:\w:)?hyperlink [^>]*>/gm,po=/"(\w*:\w*)"/,mo=/<(?:\w:)?col\b[^>]*[\/]?>/g,go=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,yo=/<(?:\w:)?pageMargins[^>]*\/>/g,bo=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,vo=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function wo(e,t,n,r){var a=we(e);n.Sheets[r]||(n.Sheets[r]={}),a.codeName&&(n.Sheets[r].CodeName=Se(Be(a.codeName)))}var _o=["objects","scenarios","selectLockedCells","selectUnlockedCells"],xo=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"],ko=/<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/;function Eo(e,t,n,r){if(void 0===e.v&&"string"!=typeof e.f||"z"===e.t)return"";var a="",s=e.t,i=e.v;if("z"!==e.t)switch(e.t){case"b":a=e.v?"1":"0";break;case"n":a=""+e.v;break;case"e":a=Ln[e.v];break;case"d":r&&r.cellDates?a=Q(e.v,-1).toISOString():((e=te(e)).t="n",a=""+(e.v=H(Q(e.v)))),void 0===e.z&&(e.z=D._table[14]);break;default:a=e.v}var o=Ye("v",De(a)),l={r:t},u=oo(r.cellXfs,e,r);switch(0!==u&&(l.s=u),e.t){case"n":break;case"d":l.t="d";break;case"b":l.t="b";break;case"e":l.t="e";break;case"z":break;default:if(null==e.v){delete e.t;break}if(r&&r.bookSST){o=Ye("v",""+ao(r.Strings,e.v,r.revStrings)),l.t="s";break}l.t="str"}if(e.t!=s&&(e.t=s,e.v=i),"string"==typeof e.f&&e.f){var c=e.F&&e.F.slice(0,t.length)==t?{t:"array",ref:e.F}:null;o=Ze("f",De(e.f),c)+(null!=e.v?o:"")}return e.l&&n["!links"].push([t,e.l]),e.c&&n["!comments"].push([t,e.c]),Ze("c",o,l)}var Co,So,No,Io,Do,Ao,To,Ro=(Co=/<(?:\w+:)?c[ \/>]/,So=/<\/(?:\w+:)?row>/,No=/r=["']([^"']*)["']/,Io=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,Do=/ref=["']([^"']*)["']/,Ao=Ve("v"),To=Ve("f"),function(e,t,n,r,a,s){for(var i,o,l,u,c,h=0,f="",d=[],p=[],m=0,g=0,y=0,b="",v=0,w=0,_=0,x=0,k=Array.isArray(s.CellXf),E=[],C=[],S=Array.isArray(t),N=[],I={},A=!1,T=!!n.sheetStubs,R=e.split(So),F=0,O=R.length;F!=O;++F){var B=(f=R[F].trim()).length;if(0!==B){for(h=0;hv-1&&(r.s.r=v-1),r.e.r":"")+f,null!=p&&2===p.length){for(m=0,b=p[1],g=0;g!=b.length&&!((y=b.charCodeAt(g)-64)<1||y>26);++g)m=26*m+y;w=--m}else++w;for(g=0;g!=f.length&&62!==f.charCodeAt(g);++g);if(++g,(o=we(f.slice(0,g),!0)).r||(o.r=Yt({r:v-1,c:w})),i={t:""},null!=(p=(b=f.slice(g)).match(Ao))&&""!==p[1]&&(i.v=Se(p[1])),n.cellFormula){if(null!=(p=b.match(To))&&""!==p[1]){if(i.f=Se(Be(p[1])).replace(/\r\n/g,"\n"),n.xlfn||(i.f=si(i.f)),p[0].indexOf('t="array"')>-1)i.F=(b.match(Do)||[])[1],i.F.indexOf(":")>-1&&E.push([Qt(i.F),i.F]);else if(p[0].indexOf('t="shared"')>-1){u=we(p[0]);var $=Se(Be(p[1]));n.xlfn||($=si($)),C[parseInt(u.si,10)]=[u,$,o.r]}}else(p=b.match(/]*\/>/))&&C[(u=we(p[0])).si]&&(i.f=ai(C[u.si][1],C[u.si][2],o.r));var P=Xt(o.r);for(g=0;g=E[g][0].s.r&&P.r<=E[g][0].e.r&&P.c>=E[g][0].s.c&&P.c<=E[g][0].e.c&&(i.F=E[g][1])}if(null==o.t&&void 0===i.v)if(i.f||i.F)i.v=0,i.t="n";else{if(!T)continue;i.t="z"}else i.t=o.t||"n";switch(r.s.c>w&&(r.s.c=w),r.e.c0&&(t["!rows"]=N)}),Fo=Ze("worksheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function Oo(e,t,n,r){var a,s=[me,Fo],i=n.SheetNames[e],o="",l=n.Sheets[i];null==l&&(l={});var u=l["!ref"]||"A1",c=Qt(u);if(c.e.c>16383||c.e.r>1048575){if(t.WTF)throw new Error("Range "+u+" exceeds format limit A1:XFD1048576");c.e.c=Math.min(c.e.c,16383),c.e.r=Math.min(c.e.c,1048575),u=Zt(c)}r||(r={}),l["!comments"]=[];var h=[];!function(e,t,n,r,a){var s=!1,i={},o=null;if("xlsx"!==r.bookType&&t.vbaraw){var l=t.SheetNames[n];try{t.Workbook&&(l=t.Workbook.Sheets[n].CodeName||l)}catch(e){}s=!0,i.codeName=Me(De(l))}if(e&&e["!outline"]){var u={summaryBelow:1,summaryRight:1};e["!outline"].above&&(u.summaryBelow=0),e["!outline"].left&&(u.summaryRight=0),o=(o||"")+Ze("outlinePr",null,u)}(s||o)&&(a[a.length]=Ze("sheetPr",o,i))}(l,n,e,t,s),s[s.length]=Ze("dimension",null,{ref:u}),s[s.length]=function(e,t,n,r){var a={workbookViewId:"0"};return(((r||{}).Workbook||{}).Views||[])[0]&&(a.rightToLeft=r.Workbook.Views[0].RTL?"1":"0"),Ze("sheetViews",Ze("sheetView",null,a),{})}(0,0,0,n),t.sheetFormat&&(s[s.length]=Ze("sheetFormatPr",null,{defaultRowHeight:t.sheetFormat.defaultRowHeight||"16",baseColWidth:t.sheetFormat.baseColWidth||"10",outlineLevelRow:t.sheetFormat.outlineLevelRow||"7"})),null!=l["!cols"]&&l["!cols"].length>0&&(s[s.length]=function(e,t){for(var n,r=[""],a=0;a!=t.length;++a)(n=t[a])&&(r[r.length]=Ze("col",null,so(a,n)));return r[r.length]="",r.join("")}(0,l["!cols"])),s[a=s.length]="",l["!links"]=[],null!=l["!ref"]&&(o=function(e,t,n,r){var a,s,i=[],o=[],l=Qt(e["!ref"]),u="",c="",h=[],f=0,d=0,p=e["!rows"],m=Array.isArray(e),g={r:c},y=-1;for(d=l.s.c;d<=l.e.c;++d)h[d]=Kt(d);for(f=l.s.r;f<=l.e.r;++f){for(o=[],c=Gt(f),d=l.s.c;d<=l.e.c;++d){a=h[d]+c;var b=m?(e[f]||[])[d]:e[a];void 0!==b&&null!=(u=Eo(b,a,e,t))&&o.push(u)}(o.length>0||p&&p[f])&&(g={r:c},p&&p[f]&&((s=p[f]).hidden&&(g.hidden=1),y=-1,s.hpx?y=gs(s.hpx):s.hpt&&(y=s.hpt),y>-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level)),i[i.length]=Ze("row",o.join(""),g))}if(p)for(;f-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level),i[i.length]=Ze("row","",g));return i.join("")}(l,t)).length>0&&(s[s.length]=o),s.length>a+1&&(s[s.length]="",s[a]=s[a].replace("/>",">")),null!=l["!protect"]&&(s[s.length]=function(e){var t={sheet:1};return _o.forEach((function(n){null!=e[n]&&e[n]&&(t[n]="1")})),xo.forEach((function(n){null==e[n]||e[n]||(t[n]="0")})),e.password&&(t.password=es(e.password).toString(16).toUpperCase()),Ze("sheetProtection",null,t)}(l["!protect"])),null!=l["!autofilter"]&&(s[s.length]=function(e,t,n,r){var a="string"==typeof e.ref?e.ref:Zt(e.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var s=n.Workbook.Names,i=Jt(a);i.s.r==i.e.r&&(i.e.r=Jt(t["!ref"]).e.r,a=Zt(i));for(var o=0;o0&&(s[s.length]=function(e){if(0===e.length)return"";for(var t='',n=0;n!=e.length;++n)t+='';return t+""}(l["!merges"]));var f,d,p=-1,m=-1;return l["!links"].length>0&&(s[s.length]="",l["!links"].forEach((function(e){e[1].Target&&(f={ref:e[0]},"#"!=e[1].Target.charAt(0)&&(m=Zn(r,-1,De(e[1].Target).replace(/#.*$/,""),Gn.HLINK),f["r:id"]="rId"+m),(p=e[1].Target.indexOf("#"))>-1&&(f.location=De(e[1].Target.slice(p+1))),e[1].Tooltip&&(f.tooltip=De(e[1].Tooltip)),s[s.length]=Ze("hyperlink",null,f))})),s[s.length]=""),delete l["!links"],null!=l["!margins"]&&(s[s.length]=(io(d=l["!margins"]),Ze("pageMargins",null,d))),t&&!t.ignoreEC&&null!=t.ignoreEC||(s[s.length]=Ye("ignoredErrors",Ze("ignoredError",null,{numberStoredAsText:1,sqref:u}))),h.length>0&&(m=Zn(r,-1,"../drawings/drawing"+(e+1)+".xml",Gn.DRAW),s[s.length]=Ze("drawing",null,{"r:id":"rId"+m}),l["!drawing"]=h),l["!comments"].length>0&&(m=Zn(r,-1,"../drawings/vmlDrawing"+(e+1)+".vml",Gn.VML),s[s.length]=Ze("legacyDrawing",null,{"r:id":"rId"+m}),l["!legacy"]=m),s.length>1&&(s[s.length]="",s[1]=s[1].replace("/>",">")),s.join("")}function Bo(e,t,n,r){var a=function(e,t,n){var r=$t(145),a=(n["!rows"]||[])[e]||{};r.write_shift(4,e),r.write_shift(4,0);var s=320;a.hpx?s=20*gs(a.hpx):a.hpt&&(s=20*a.hpt),r.write_shift(2,s),r.write_shift(1,0);var i=0;a.level&&(i|=a.level),a.hidden&&(i|=16),(a.hpx||a.hpt)&&(i|=32),r.write_shift(1,i),r.write_shift(1,0);var o=0,l=r.l;r.l+=4;for(var u={r:e,c:0},c=0;c<16;++c)if(!(t.s.c>c+1<<10||t.e.cr.l?r.slice(0,r.l):r}(r,n,t);(a.length>17||(t["!rows"]||[])[r])&&zt(e,"BrtRowHdr",a)}var Mo=xn,$o=kn;var Po=xn,Lo=kn,zo=["left","right","top","bottom","header","footer"];function Wo(e,t,n,r,a,s){if(void 0!==t.v){var i="";switch(t.t){case"b":i=t.v?"1":"0";break;case"d":(t=te(t)).z=t.z||D._table[14],t.v=H(Q(t.v)),t.t="n";break;case"n":case"e":i=""+t.v;break;default:i=t.v}var o={r:n,c:r};switch(o.s=oo(a.cellXfs,t,a),t.l&&s["!links"].push([Yt(o),t.l]),t.c&&s["!comments"].push([Yt(o),t.c]),t.t){case"s":case"str":return void(a.bookSST?(i=ao(a.Strings,t.v,a.revStrings),o.t="s",o.v=i,zt(e,"BrtCellIsst",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),n.write_shift(4,t.v),n}(0,o))):(o.t="str",zt(e,"BrtCellSt",function(e,t,n){return null==n&&(n=$t(12+4*e.v.length)),fn(t,n),on(e.v,n),n.length>n.l?n.slice(0,n.l):n}(t,o))));case"n":return void(t.v==(0|t.v)&&t.v>-1e3&&t.v<1e3?zt(e,"BrtCellRk",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),function(e,t){null==t&&(t=$t(4));var n=0,r=0,a=100*e;if(e==(0|e)&&e>=-(1<<29)&&e<1<<29?r=1:a==(0|a)&&a>=-(1<<29)&&a<1<<29&&(r=1,n=1),!r)throw new Error("unsupported RkNumber "+e);t.write_shift(-4,((n?a:e)<<2)+(n+2))}(e.v,n),n}(t,o)):zt(e,"BrtCellReal",function(e,t,n){return null==n&&(n=$t(16)),fn(t,n),Cn(e.v,n),n}(t,o)));case"b":return o.t="b",void zt(e,"BrtCellBool",function(e,t,n){return null==n&&(n=$t(9)),fn(t,n),n.write_shift(1,e.v?1:0),n}(t,o));case"e":o.t="e"}zt(e,"BrtCellBlank",function(e,t,n){return null==n&&(n=$t(8)),fn(t,n)}(0,o))}}function Uo(e,t,n,r){var a=Lt(),s=n.SheetNames[e],i=n.Sheets[s]||{},o=s;try{n&&n.Workbook&&(o=n.Workbook.Sheets[e].CodeName||o)}catch(e){}var l=Qt(i["!ref"]||"A1");if(l.e.c>16383||l.e.r>1048575){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:XFD1048576");l.e.c=Math.min(l.e.c,16383),l.e.r=Math.min(l.e.c,1048575)}return i["!links"]=[],i["!comments"]=[],zt(a,"BrtBeginSheet"),n.vbaraw&&zt(a,"BrtWsProp",function(e,t){null==t&&(t=$t(84+4*e.length));for(var n=0;n<3;++n)t.write_shift(1,0);return Sn({auto:1},t),t.write_shift(-4,-1),t.write_shift(-4,-1),pn(e,t),t.slice(0,t.l)}(o)),zt(a,"BrtWsDim",$o(l)),function(e,t,n){zt(e,"BrtBeginWsViews"),zt(e,"BrtBeginWsView",function(e,t,n){null==n&&(n=$t(30));var r=924;return(((t||{}).Views||[])[0]||{}).RTL&&(r|=32),n.write_shift(2,r),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(2,0),n.write_shift(2,100),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(4,0),n}(0,n)),zt(e,"BrtEndWsView"),zt(e,"BrtEndWsViews")}(a,0,n.Workbook),function(e,t){t&&t["!cols"]&&(zt(e,"BrtBeginColInfos"),t["!cols"].forEach((function(t,n){t&&zt(e,"BrtColInfo",function(e,t,n){null==n&&(n=$t(18));var r=so(e,t);n.write_shift(-4,e),n.write_shift(-4,e),n.write_shift(4,256*(r.width||10)),n.write_shift(4,0);var a=0;return t.hidden&&(a|=1),"number"==typeof r.width&&(a|=2),t.level&&(a|=t.level<<8),n.write_shift(2,a),n}(n,t))})),zt(e,"BrtEndColInfos"))}(a,i),function(e,t,n,r){var a,s=Qt(t["!ref"]||"A1"),i="",o=[];zt(e,"BrtBeginSheetData");var l=Array.isArray(t),u=s.e.r;t["!rows"]&&(u=Math.max(s.e.r,t["!rows"].length-1));for(var c=s.s.r;c<=u;++c)if(i=Gt(c),Bo(e,t,s,c),c<=s.e.r)for(var h=s.s.c;h<=s.e.c;++h){c===s.s.r&&(o[h]=Kt(h)),a=o[h]+i;var f=l?(t[c]||[])[h]:t[a];f&&Wo(e,f,c,h,r,t)}zt(e,"BrtEndSheetData")}(a,i,0,t),function(e,t){t["!protect"]&&zt(e,"BrtSheetProtection",function(e,t){return null==t&&(t=$t(66)),t.write_shift(2,e.password?es(e.password):0),t.write_shift(4,1),[["objects",!1],["scenarios",!1],["formatCells",!0],["formatColumns",!0],["formatRows",!0],["insertColumns",!0],["insertRows",!0],["insertHyperlinks",!0],["deleteColumns",!0],["deleteRows",!0],["selectLockedCells",!1],["sort",!0],["autoFilter",!0],["pivotTables",!0],["selectUnlockedCells",!1]].forEach((function(n){n[1]?t.write_shift(4,null==e[n[0]]||e[n[0]]?0:1):t.write_shift(4,null!=e[n[0]]&&e[n[0]]?0:1)})),t}(t["!protect"]))}(a,i),function(e,t,n,r){if(t["!autofilter"]){var a=t["!autofilter"],s="string"==typeof a.ref?a.ref:Zt(a.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var i=n.Workbook.Names,o=Jt(s);o.s.r==o.e.r&&(o.e.r=Jt(t["!ref"]).e.r,s=Zt(o));for(var l=0;l0){var a=Zn(r,-1,"../drawings/vmlDrawing"+(n+1)+".vml",Gn.VML);zt(e,"BrtLegacyDrawing",vn("rId"+a)),t["!legacy"]=a}}(a,i,e,r),zt(a,"BrtEndSheet"),a.end()}Gn.CHART="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",Gn.CHARTEX="http://schemas.microsoft.com/office/2014/relationships/chartEx",Gn.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",Ze("chartsheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});var Vo=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],jo=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],Ho=[],Go=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function qo(e,t){for(var n=0;n!=e.length;++n)for(var r=e[n],a=0;a!=t.length;++a){var s=t[a];if(null==r[s[0]])r[s[0]]=s[1];else switch(s[2]){case"bool":"string"==typeof r[s[0]]&&(r[s[0]]=Oe(r[s[0]]));break;case"int":"string"==typeof r[s[0]]&&(r[s[0]]=parseInt(r[s[0]],10))}}}function Ko(e,t){for(var n=0;n!=t.length;++n){var r=t[n];if(null==e[r[0]])e[r[0]]=r[1];else switch(r[2]){case"bool":"string"==typeof e[r[0]]&&(e[r[0]]=Oe(e[r[0]]));break;case"int":"string"==typeof e[r[0]]&&(e[r[0]]=parseInt(e[r[0]],10))}}}function Xo(e){Ko(e.WBProps,Vo),Ko(e.CalcPr,Go),qo(e.WBView,jo),qo(e.Sheets,Ho),no.date1904=Oe(e.WBProps.date1904)}var Yo="][*?/\\".split("");function Jo(e,t){if(e.length>31){if(t)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var n=!0;return Yo.forEach((function(r){if(-1!=e.indexOf(r)){if(!t)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");n=!1}})),n}var Zo=/<\w+:workbook/,Qo=Ze("workbook",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function el(e){var t=[me];t[t.length]=Qo;var n=e.Workbook&&(e.Workbook.Names||[]).length>0,r={codeName:"ThisWorkbook"};e.Workbook&&e.Workbook.WBProps&&(Vo.forEach((function(t){null!=e.Workbook.WBProps[t[0]]&&e.Workbook.WBProps[t[0]]!=t[1]&&(r[t[0]]=e.Workbook.WBProps[t[0]])})),e.Workbook.WBProps.CodeName&&(r.codeName=e.Workbook.WBProps.CodeName,delete r.CodeName)),t[t.length]=Ze("workbookPr",null,r);var a=e.Workbook&&e.Workbook.Sheets||[],s=0;if(a&&a[0]&&a[0].Hidden){for(t[t.length]="",s=0;s!=e.SheetNames.length&&a[s]&&a[s].Hidden;++s);s==e.SheetNames.length&&(s=0),t[t.length]='',t[t.length]=""}for(t[t.length]="",s=0;s!=e.SheetNames.length;++s){var i={name:De(e.SheetNames[s].slice(0,31))};if(i.sheetId=""+(s+1),i["r:id"]="rId"+(s+1),a[s])switch(a[s].Hidden){case 1:i.state="hidden";break;case 2:i.state="veryHidden"}t[t.length]=Ze("sheet",null,i)}return t[t.length]="",n&&(t[t.length]="",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach((function(e){var n={name:e.Name};e.Comment&&(n.comment=e.Comment),null!=e.Sheet&&(n.localSheetId=""+e.Sheet),e.Hidden&&(n.hidden="1"),e.Ref&&(t[t.length]=Ze("definedName",De(e.Ref),n))})),t[t.length]=""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function tl(e,t){return t||(t=$t(127)),t.write_shift(4,e.Hidden),t.write_shift(4,e.iTabID),vn(e.strRelID,t),on(e.name.slice(0,31),t),t.length>t.l?t.slice(0,t.l):t}function nl(e,n){var r=Lt();return zt(r,"BrtBeginBook"),zt(r,"BrtFileVersion",function(e,n){n||(n=$t(127));for(var r=0;4!=r;++r)n.write_shift(4,0);return on("SheetJS",n),on(t.version,n),on(t.version,n),on("7262",n),n.length=n.l,n.length>n.l?n.slice(0,n.l):n}()),zt(r,"BrtWbProp",function(e,t){t||(t=$t(72));var n=0;return e&&e.filterPrivacy&&(n|=8),t.write_shift(4,n),t.write_shift(4,0),pn(e&&e.CodeName||"ThisWorkbook",t),t.slice(0,t.l)}(e.Workbook&&e.Workbook.WBProps||null)),function(e,t){if(t.Workbook&&t.Workbook.Sheets){for(var n=t.Workbook.Sheets,r=0,a=-1,s=-1;ra||(zt(e,"BrtBeginBookViews"),zt(e,"BrtBookView",function(e,t){return t||(t=$t(29)),t.write_shift(-4,0),t.write_shift(-4,460),t.write_shift(4,28800),t.write_shift(4,17600),t.write_shift(4,500),t.write_shift(4,e),t.write_shift(4,e),t.write_shift(1,120),t.length>t.l?t.slice(0,t.l):t}(a)),zt(e,"BrtEndBookViews"))}}(r,e),function(e,t){zt(e,"BrtBeginBundleShs");for(var n=0;n!=t.SheetNames.length;++n)zt(e,"BrtBundleSh",tl({Hidden:t.Workbook&&t.Workbook.Sheets&&t.Workbook.Sheets[n]&&t.Workbook.Sheets[n].Hidden||0,iTabID:n+1,strRelID:"rId"+(n+1),name:t.SheetNames[n]}));zt(e,"BrtEndBundleShs")}(r,e),zt(r,"BrtEndBook"),r.end()}function rl(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a,s,i){if(!e)return e;var o=t||{};r||(r={"!id":{}});var l,u,c,h,f,d,p,m,g,y,b=o.dense?[]:{},v={s:{r:2e6,c:2e6},e:{r:0,c:0}},w=[],_=!1,x=!1,k=[];o.biff=12,o["!row"]=0;var E=0,C=!1,S=[],N={},I=o.supbooks||a.supbooks||[[]];if(I.sharedf=N,I.arrayf=S,I.SheetNames=a.SheetNames||a.Sheets.map((function(e){return e.name})),!o.supbooks&&(o.supbooks=I,a.Names))for(var A=0;A=O[0].s.r&&u.r<=O[0].e.r&&d>=O[0].s.c&&d<=O[0].e.c&&(c.F=Zt(O[0]),C=!0)}!C&&e.length>3&&(c.f=e[3])}if(v.s.r>u.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.ru.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.r=e.s;)T[e.e--]={width:e.w/256,hidden:!!(1&e.flags),level:e.level},F||(F=!0,ps(e.w/256)),ms(T[e.e+1]);break;case 161:b["!autofilter"]={ref:Zt(e)};break;case 476:b["!margins"]=e;break;case 147:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 137:a.Views||(a.Views=[{}]),a.Views[0]||(a.Views[0]={}),e.RTL&&(a.Views[0].RTL=!0);break;case 485:break;case 64:case 1053:case 151:break;case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 49:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 152:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:_=!0;break;case 36:_=!1;break;case 37:w.push(t),_=!0;break;case 38:w.pop(),_=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!_||o.WTF)throw new Error("Unexpected record "+A+" "+t)}}),o),delete o.supbooks,delete o["!row"],!b["!ref"]&&(v.s.r<2e6||l&&(l.e.r>0||l.e.c>0||l.s.r>0||l.s.c>0))&&(b["!ref"]=Zt(l||v)),o.sheetRows&&b["!ref"]){var O=Qt(b["!ref"]);o.sheetRows<=+O.e.r&&(O.e.r=o.sheetRows-1,O.e.r>v.e.r&&(O.e.r=v.e.r),O.e.rv.e.c&&(O.e.c=v.e.c),O.e.c0&&(b["!merges"]=k),T.length>0&&(b["!cols"]=T),R.length>0&&(b["!rows"]=R),b}(e,r,n,a,s,i,o):function(e,t,n,r,a,s,i){if(!e)return e;r||(r={"!id":{}});var o=t.dense?[]:{},l={s:{r:2e6,c:2e6},e:{r:0,c:0}},u="",c="",h=e.match(ho);h?(u=e.slice(0,h.index),c=e.slice(h.index+h[0].length)):u=c=e;var f=u.match(bo);f&&wo(f[0],0,a,n);var d=(u.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(d>0){var p=u.slice(d,d+50).match(po);p&&function(e,t){var n=Qt(t);n.s.r<=n.e.r&&n.s.c<=n.e.c&&n.s.r>=0&&n.s.c>=0&&(e["!ref"]=Zt(n))}(o,p[1])}var m=u.match(vo);m&&m[1]&&function(e,t){t.Views||(t.Views=[{}]),(e.match(ko)||[]).forEach((function(e,n){var r=we(e);t.Views[n]||(t.Views[n]={}),Oe(r.rightToLeft)&&(t.Views[n].RTL=!0)}))}(m[1],a);var g=[];if(t.cellStyles){var y=u.match(mo);y&&function(e,t){for(var n=!1,r=0;r!=t.length;++r){var a=we(t[r],!0);a.hidden&&(a.hidden=Oe(a.hidden));var s=parseInt(a.min,10)-1,i=parseInt(a.max,10)-1;for(delete a.min,delete a.max,a.width=+a.width,!n&&a.width&&(n=!0,ps(a.width)),ms(a);s<=i;)e[s++]=te(a)}}(g,y)}h&&Ro(h[1],o,t,l,s,i);var b=c.match(go);b&&(o["!autofilter"]=function(e){return{ref:(e.match(/ref="([^"]*)"/)||[])[1]}}(b[0]));var v=[],w=c.match(co);if(w)for(d=0;d!=w.length;++d)v[d]=Qt(w[d].slice(w[d].indexOf('"')+1));var _=c.match(fo);_&&function(e,t,n){for(var r=Array.isArray(e),a=0;a!=t.length;++a){var s=we(Be(t[a]),!0);if(!s.ref)return;var i=((n||{})["!id"]||[])[s.id];i?(s.Target=i.Target,s.location&&(s.Target+="#"+s.location)):(s.Target="#"+s.location,i={Target:s.Target,TargetMode:"Internal"}),s.Rel=i,s.tooltip&&(s.Tooltip=s.tooltip,delete s.tooltip);for(var o=Qt(s.ref),l=o.s.r;l<=o.e.r;++l)for(var u=o.s.c;u<=o.e.c;++u){var c=Yt({c:u,r:l});r?(e[l]||(e[l]=[]),e[l][u]||(e[l][u]={t:"z",v:void 0}),e[l][u].l=s):(e[c]||(e[c]={t:"z",v:void 0}),e[c].l=s)}}}(o,_,r);var x=c.match(yo);if(x&&(o["!margins"]=function(e){var t={};return["left","right","top","bottom","header","footer"].forEach((function(n){e[n]&&(t[n]=parseFloat(e[n]))})),t}(we(x[0]))),!o["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r&&(o["!ref"]=Zt(l)),t.sheetRows>0&&o["!ref"]){var k=Qt(o["!ref"]);t.sheetRows<=+k.e.r&&(k.e.r=t.sheetRows-1,k.e.r>l.e.r&&(k.e.r=l.e.r),k.e.rl.e.c&&(k.e.c=l.e.c),k.e.c0&&(o["!cols"]=g),v.length>0&&(o["!merges"]=v),o}(e,r,n,a,s,i,o)}function al(e,t,n){return(".bin"===t.slice(-4)?nl:el)(e,n)}function sl(e,t,n,r,a){return(".bin"===t.slice(-4)?Uo:Oo)(e,n,r,a)}function il(e,t,n){return(".bin"===t.slice(-4)?Ha:Va)(e,n)}function ol(e,t,n){return(".bin"===t.slice(-4)?Qs:Js)(e,n)}var ll=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,ul=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function cl(e,t){var n=e.split(/\s+/),r=[];if(t||(r[0]=n[0]),1===n.length)return r;var a,s,i,o=e.match(ll);if(o)for(i=0;i!=o.length;++i)-1===(s=(a=o[i].match(ul))[1].indexOf(":"))?r[a[1]]=a[2].slice(1,a[2].length-1):r["xmlns:"===a[1].slice(0,6)?"xmlns"+a[1].slice(6):a[1].slice(s+1)]=a[2].slice(1,a[2].length-1);return r}function hl(e){var t={};if(1===e.split(/\s+/).length)return t;var n,r,a,s=e.match(ll);if(s)for(a=0;a!=s.length;++a)-1===(r=(n=s[a].match(ul))[1].indexOf(":"))?t[n[1]]=n[2].slice(1,n[2].length-1):t["xmlns:"===n[1].slice(0,6)?"xmlns"+n[1].slice(6):n[1].slice(r+1)]=n[2].slice(1,n[2].length-1);return t}function fl(e,t,n,r){var a=r;switch((n[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":a=Oe(r);break;case"i2":case"int":a=parseInt(r,10);break;case"r4":case"float":a=parseFloat(r);break;case"date":case"dateTime.tz":a=Q(r);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+n[0])}e[Se(t)]=a}function dl(e,t,n){if(n.cellStyles&&t.Interior){var r=t.Interior;r.Pattern&&(r.patternType=ks[r.Pattern]||r.Pattern)}e[t.ID]=t}function pl(e,t,n,r,a,s,i,o,l,u){var c="General",h=r.StyleID,f={};u=u||{};var d=[],p=0;for(void 0===h&&o&&(h=o.StyleID),void 0===h&&i&&(h=i.StyleID);void 0!==s[h]&&(s[h].nf&&(c=s[h].nf),s[h].Interior&&d.push(s[h].Interior),s[h].Parent);)h=s[h].Parent;switch(n.Type){case"Boolean":r.t="b",r.v=Oe(e);break;case"String":r.t="s",r.r=Fe(Se(e)),r.v=e.indexOf("<")>-1?Se(t||e).replace(/<.*?>/g,""):r.r;break;case"DateTime":"Z"!=e.slice(-1)&&(e+="Z"),r.v=(Q(e)-new Date(Date.UTC(1899,11,30)))/864e5,r.v!=r.v?r.v=Se(e):r.v<60&&(r.v=r.v-1),c&&"General"!=c||(c="yyyy-mm-dd");case"Number":void 0===r.v&&(r.v=+e),r.t||(r.t="n");break;case"Error":r.t="e",r.v=zn[e],!1!==u.cellText&&(r.w=e);break;default:""==e&&""==t?r.t="z":(r.t="s",r.v=Fe(t||e))}if(function(e,t,n){if("z"!==e.t){if(!n||!1!==n.cellText)try{"e"===e.t?e.w=e.w||Ln[e.v]:"General"===t?"n"===e.t?(0|e.v)===e.v?e.w=D._general_int(e.v):e.w=D._general_num(e.v):e.w=D._general(e.v):e.w=(r=t||"General",a=e.v,"General"===(s=R[r]||Se(r))?D._general(a):D.format(s,a))}catch(e){if(n.WTF)throw e}var r,a,s;try{var i=R[t]||t||"General";if(n.cellNF&&(e.z=i),n.cellDates&&"n"==e.t&&D.is_date(i)){var o=D.parse_date_code(e.v);o&&(e.t="d",e.v=new Date(o.y,o.m-1,o.d,o.H,o.M,o.S,o.u))}}catch(e){if(n.WTF)throw e}}}(r,c,u),!1!==u.cellFormula)if(r.Formula){var m=Se(r.Formula);61==m.charCodeAt(0)&&(m=m.slice(1)),r.f=ti(m,a),delete r.Formula,"RC"==r.ArrayRange?r.F=ti("RC:RC",a):r.ArrayRange&&(r.F=ti(r.ArrayRange,a),l.push([Qt(r.F),r.F]))}else for(p=0;p=l[p][0].s.r&&a.r<=l[p][0].e.r&&a.c>=l[p][0].s.c&&a.c<=l[p][0].e.c&&(r.F=l[p][1]);u.cellStyles&&(d.forEach((function(e){!f.patternType&&e.patternType&&(f.patternType=e.patternType)})),r.s=f),void 0!==r.StyleID&&(r.ixfe=r.StyleID)}function ml(e){e.t=e.v||"",e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),e.v=e.w=e.ixfe=void 0}function gl(e){if(y&&Buffer.isBuffer(e))return e.toString("utf8");if("string"==typeof e)return e;if("undefined"!=typeof Uint8Array&&e instanceof Uint8Array)return Be(E(C(e)));throw new Error("Bad input format: expected Buffer or string")}var yl=/<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/gm;function bl(e,t){var n=t||{};A(D);var r=f(gl(e));"binary"!=n.type&&"array"!=n.type&&"base64"!=n.type||(r="undefined"!=typeof cptable?cptable.utils.decode(65001,h(r)):Be(r));var a,s=r.slice(0,1024).toLowerCase(),i=!1;if(-1==s.indexOf("=0&&(i=!0)})),i)return Ul.to_workbook(r,n);var o,l,u=[],c={},d=[],p=n.dense?[]:{},m="",g={},y={},b=cl(''),v=0,w=0,_=0,x={s:{r:2e6,c:2e6},e:{r:0,c:0}},k={},E={},C="",S=0,N=[],I={},T={},F=0,O=[],B=[],M={},$=[],P=!1,L=[],z=[],W={},U=0,V=0,j={Sheets:[],WBProps:{date1904:!1}},H={};yl.lastIndex=0,r=r.replace(//gm,"");for(var G="";a=yl.exec(r);)switch(a[3]=(G=a[3]).toLowerCase()){case"data":if("data"==G){if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break}if(u[u.length-1][1])break;"/"===a[1]?pl(r.slice(v,a.index),C,b,"comment"==u[u.length-1][0]?M:g,{c:w,r:_},k,$[w],y,L,n):(C="",b=cl(a[0]),v=a.index+a[0].length);break;case"cell":if("/"===a[1])if(B.length>0&&(g.c=B),(!n.sheetRows||n.sheetRows>_)&&void 0!==g.v&&(n.dense?(p[_]||(p[_]=[]),p[_][w]=g):p[Kt(w)+Gt(_)]=g),g.HRef&&(g.l={Target:g.HRef},g.HRefScreenTip&&(g.l.Tooltip=g.HRefScreenTip),delete g.HRef,delete g.HRefScreenTip),(g.MergeAcross||g.MergeDown)&&(U=w+(0|parseInt(g.MergeAcross,10)),V=_+(0|parseInt(g.MergeDown,10)),N.push({s:{c:w,r:_},e:{c:U,r:V}})),n.sheetStubs)if(g.MergeAcross||g.MergeDown){for(var q=w;q<=U;++q)for(var K=_;K<=V;++K)(q>w||K>_)&&(n.dense?(p[K]||(p[K]=[]),p[K][q]={t:"z"}):p[Kt(q)+Gt(K)]={t:"z"});w=U+1}else++w;else g.MergeAcross?w=U+1:++w;else(g=hl(a[0])).Index&&(w=+g.Index-1),wx.e.c&&(x.e.c=w),"/>"===a[0].slice(-2)&&++w,B=[];break;case"row":"/"===a[1]||"/>"===a[0].slice(-2)?(_x.e.r&&(x.e.r=_),"/>"===a[0].slice(-2)&&(y=cl(a[0])).Index&&(_=+y.Index-1),w=0,++_):((y=cl(a[0])).Index&&(_=+y.Index-1),W={},("0"==y.AutoFitHeight||y.Height)&&(W.hpx=parseInt(y.Height,10),W.hpt=gs(W.hpx),z[_]=W),"1"==y.Hidden&&(W.hidden=!0,z[_]=W));break;case"worksheet":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));d.push(m),x.s.r<=x.e.r&&x.s.c<=x.e.c&&(p["!ref"]=Zt(x),n.sheetRows&&n.sheetRows<=x.e.r&&(p["!fullref"]=p["!ref"],x.e.r=n.sheetRows-1,p["!ref"]=Zt(x))),N.length&&(p["!merges"]=N),$.length>0&&(p["!cols"]=$),z.length>0&&(p["!rows"]=z),c[m]=p}else x={s:{r:2e6,c:2e6},e:{r:0,c:0}},_=w=0,u.push([a[3],!1]),o=cl(a[0]),m=Se(o.Name),p=n.dense?[]:{},N=[],L=[],z=[],H={name:m,Hidden:0},j.Sheets.push(H);break;case"table":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else{if("/>"==a[0].slice(-2))break;cl(a[0]),u.push([a[3],!1]),$=[],P=!1}break;case"style":"/"===a[1]?dl(k,E,n):E=cl(a[0]);break;case"numberformat":E.nf=Se(cl(a[0]).Format||"General"),R[E.nf]&&(E.nf=R[E.nf]);for(var X=0;392!=X&&D._table[X]!=E.nf;++X);if(392==X)for(X=57;392!=X;++X)if(null==D._table[X]){D.load(E.nf,X);break}break;case"column":if("table"!==u[u.length-1][0])break;if((l=cl(a[0])).Hidden&&(l.hidden=!0,delete l.Hidden),l.Width&&(l.wpx=parseInt(l.Width,10)),!P&&l.wpx>10){P=!0,us=6;for(var Y=0;Y<$.length;++Y)$[Y]&&ms($[Y])}P&&ms(l),$[l.Index-1||$.length]=l;for(var J=0;J<+l.Span;++J)$[$.length]=te(l);break;case"namedrange":if("/"===a[1])break;j.Names||(j.Names=[]);var Z=we(a[0]),Q={Name:Z.Name,Ref:ti(Z.RefersTo.slice(1),{r:0,c:0})};j.Sheets.length>0&&(Q.Sheet=j.Sheets.length-1),j.Names.push(Q);break;case"namedcell":case"b":case"i":case"u":case"s":case"em":case"h2":case"h3":case"sub":case"sup":case"span":case"alignment":case"borders":case"border":break;case"font":if("/>"===a[0].slice(-2))break;"/"===a[1]?C+=r.slice(S,a.index):S=a.index+a[0].length;break;case"interior":if(!n.cellStyles)break;E.Interior=cl(a[0]);break;case"protection":break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if("/>"===a[0].slice(-2))break;"/"===a[1]?pr(I,G,r.slice(F,a.index)):F=a.index+a[0].length;break;case"paragraphs":break;case"styles":case"workbook":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else u.push([a[3],!1]);break;case"comment":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));ml(M),B.push(M)}else u.push([a[3],!1]),M={a:(o=cl(a[0])).Author};break;case"autofilter":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else if("/"!==a[0].charAt(a[0].length-2)){var ee=cl(a[0]);p["!autofilter"]={ref:ti(ee.Range).replace(/\$/g,"")},u.push([a[3],!0])}break;case"name":break;case"datavalidation":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;case"pixelsperinch":break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;default:if(0==u.length&&"document"==a[3])return Xl(r,n);if(0==u.length&&"uof"==a[3])return Xl(r,n);var ne=!0;switch(u[u.length-1][0]){case"officedocumentsettings":switch(a[3]){case"allowpng":case"removepersonalinformation":case"downloadcomponents":case"locationofcomponents":case"colors":case"color":case"index":case"rgb":case"targetscreensize":case"readonlyrecommended":break;default:ne=!1}break;case"componentoptions":switch(a[3]){case"toolbar":case"hideofficelogo":case"spreadsheetautofit":case"label":case"caption":case"maxheight":case"maxwidth":case"nextsheetnumber":break;default:ne=!1}break;case"excelworkbook":switch(a[3]){case"date1904":j.WBProps.date1904=!0;break;case"windowheight":case"windowwidth":case"windowtopx":case"windowtopy":case"tabratio":case"protectstructure":case"protectwindow":case"protectwindows":case"activesheet":case"displayinknotes":case"firstvisiblesheet":case"supbook":case"sheetname":case"sheetindex":case"sheetindexfirst":case"sheetindexlast":case"dll":case"acceptlabelsinformulas":case"donotsavelinkvalues":case"iteration":case"maxiterations":case"maxchange":case"path":case"xct":case"count":case"selectedsheets":case"calculation":case"uncalced":case"startupprompt":case"crn":case"externname":case"formula":case"colfirst":case"collast":case"wantadvise":case"boolean":case"error":case"text":case"ole":case"noautorecover":case"publishobjects":case"donotcalculatebeforesave":case"number":case"refmoder1c1":case"embedsavesmarttags":break;default:ne=!1}break;case"workbookoptions":switch(a[3]){case"owcversion":case"height":case"width":break;default:ne=!1}break;case"worksheetoptions":switch(a[3]){case"visible":if("/>"===a[0].slice(-2));else if("/"===a[1])switch(r.slice(F,a.index)){case"SheetHidden":H.Hidden=1;break;case"SheetVeryHidden":H.Hidden=2}else F=a.index+a[0].length;break;case"header":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].header=we(a[0]).Margin;break;case"footer":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].footer=we(a[0]).Margin;break;case"pagemargins":var re=we(a[0]);p["!margins"]||io(p["!margins"]={},"xlml"),re.Top&&(p["!margins"].top=re.Top),re.Left&&(p["!margins"].left=re.Left),re.Right&&(p["!margins"].right=re.Right),re.Bottom&&(p["!margins"].bottom=re.Bottom);break;case"displayrighttoleft":j.Views||(j.Views=[]),j.Views[0]||(j.Views[0]={}),j.Views[0].RTL=!0;break;case"freezepanes":case"frozennosplit":break;case"splithorizontal":case"splitvertical":case"donotdisplaygridlines":case"activerow":case"activecol":case"toprowbottompane":case"leftcolumnrightpane":case"unsynced":case"print":case"panes":case"scale":case"pane":case"number":case"layout":case"pagesetup":case"selected":case"protectobjects":case"enableselection":case"protectscenarios":case"validprinterinfo":case"horizontalresolution":case"verticalresolution":case"numberofcopies":case"activepane":case"toprowvisible":case"leftcolumnvisible":case"fittopage":case"rangeselection":case"papersizeindex":case"pagelayoutzoom":case"pagebreakzoom":case"filteron":case"fitwidth":case"fitheight":case"commentslayout":case"zoom":case"lefttoright":case"gridlines":case"allowsort":case"allowfilter":case"allowinsertrows":case"allowdeleterows":case"allowinsertcols":case"allowdeletecols":case"allowinserthyperlinks":case"allowformatcells":case"allowsizecols":case"allowsizerows":case"nosummaryrowsbelowdetail":case"tabcolorindex":case"donotdisplayheadings":case"showpagelayoutzoom":case"nosummarycolumnsrightdetail":case"blackandwhite":case"donotdisplayzeros":case"displaypagebreak":case"rowcolheadings":case"donotdisplayoutline":case"noorientation":case"allowusepivottables":case"zeroheight":case"viewablerange":case"selection":case"protectcontents":break;default:ne=!1}break;case"pivottable":case"pivotcache":switch(a[3]){case"immediateitemsondrop":case"showpagemultipleitemlabel":case"compactrowindent":case"location":case"pivotfield":case"orientation":case"layoutform":case"layoutsubtotallocation":case"layoutcompactrow":case"position":case"pivotitem":case"datatype":case"datafield":case"sourcename":case"parentfield":case"ptlineitems":case"ptlineitem":case"countofsameitems":case"item":case"itemtype":case"ptsource":case"cacheindex":case"consolidationreference":case"filename":case"reference":case"nocolumngrand":case"norowgrand":case"blanklineafteritems":case"hidden":case"subtotal":case"basefield":case"mapchilditems":case"function":case"refreshonfileopen":case"printsettitles":case"mergelabels":case"defaultversion":case"refreshname":case"refreshdate":case"refreshdatecopy":case"versionlastrefresh":case"versionlastupdate":case"versionupdateablemin":case"versionrefreshablemin":case"calculation":break;default:ne=!1}break;case"pagebreaks":switch(a[3]){case"colbreaks":case"colbreak":case"rowbreaks":case"rowbreak":case"colstart":case"colend":case"rowend":break;default:ne=!1}break;case"autofilter":switch(a[3]){case"autofiltercolumn":case"autofiltercondition":case"autofilterand":case"autofilteror":break;default:ne=!1}break;case"querytable":switch(a[3]){case"id":case"autoformatfont":case"autoformatpattern":case"querysource":case"querytype":case"enableredirections":case"refreshedinxl9":case"urlstring":case"htmltables":case"connection":case"commandtext":case"refreshinfo":case"notitles":case"nextid":case"columninfo":case"overwritecells":case"donotpromptforfile":case"textwizardsettings":case"source":case"number":case"decimal":case"thousandseparator":case"trailingminusnumbers":case"formatsettings":case"fieldtype":case"delimiters":case"tab":case"comma":case"autoformatname":case"versionlastedit":case"versionlastrefresh":break;default:ne=!1}break;case"datavalidation":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":case"cellrangelist":break;default:ne=!1}break;case"sorting":case"conditionalformatting":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"cellrangelist":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":break;default:ne=!1}break;case"mapinfo":case"schema":case"data":switch(a[3]){case"map":case"entry":case"range":case"xpath":case"field":case"xsdtype":case"filteron":case"aggregate":case"elementtype":case"attributetype":break;case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":case"row":break;default:ne=!1}break;case"smarttags":break;default:ne=!1}if(ne)break;if(a[3].match(/!\[CDATA/))break;if(!u[u.length-1][1])throw"Unrecognized tag: "+a[3]+"|"+u.join("|");if("customdocumentproperties"===u[u.length-1][0]){if("/>"===a[0].slice(-2))break;"/"===a[1]?fl(T,G,O,r.slice(F,a.index)):(O=a,F=a.index+a[0].length);break}if(n.WTF)throw"Unrecognized tag: "+a[3]+"|"+u.join("|")}var ae={};return n.bookSheets||n.bookProps||(ae.Sheets=c),ae.SheetNames=d,ae.Workbook=j,ae.SSF=D.get_table(),ae.Props=I,ae.Custprops=T,ae}function vl(e,t){switch(cu(t=t||{}),t.type||"base64"){case"base64":return bl(g.decode(e),t);case"binary":case"buffer":case"file":return bl(e,t);case"array":return bl(E(e),t)}}function wl(e){return Ze("NamedRange",null,{"ss:Name":e.Name,"ss:RefersTo":"="+ri(e.Ref,{r:0,c:0})})}function _l(e,t,n,r,a,s,i){if(!e||null==e.v&&null==e.f)return"";var o={};if(e.f&&(o["ss:Formula"]="="+De(ri(e.f,i))),e.F&&e.F.slice(0,t.length)==t){var l=Xt(e.F.slice(t.length+1));o["ss:ArrayRange"]="RC:R"+(l.r==i.r?"":"["+(l.r-i.r)+"]")+"C"+(l.c==i.c?"":"["+(l.c-i.c)+"]")}if(e.l&&e.l.Target&&(o["ss:HRef"]=De(e.l.Target),e.l.Tooltip&&(o["x:HRefScreenTip"]=De(e.l.Tooltip))),n["!merges"])for(var u=n["!merges"],c=0;c!=u.length;++c)u[c].s.c==i.c&&u[c].s.r==i.r&&(u[c].e.c>u[c].s.c&&(o["ss:MergeAcross"]=u[c].e.c-u[c].s.c),u[c].e.r>u[c].s.r&&(o["ss:MergeDown"]=u[c].e.r-u[c].s.r));var h="",f="";switch(e.t){case"z":if(!r.sheetStubs)return"";break;case"n":h="Number",f=String(e.v);break;case"b":h="Boolean",f=e.v?"1":"0";break;case"e":h="Error",f=Ln[e.v];break;case"d":h="DateTime",f=new Date(e.v).toISOString(),null==e.z&&(e.z=e.z||D._table[14]);break;case"s":h="String",f=((e.v||"")+"").replace(Ne,(function(e){return Ce[e]})).replace(Te,(function(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}))}var d=oo(r.cellXfs,e,r);o["ss:StyleID"]="s"+(21+d),o["ss:Index"]=i.c+1;var p=null!=e.v?f:"",m="z"==e.t?"":''+p+"";return(e.c||[]).length>0&&(m+=e.c.map((function(e){var t=Ze("ss:Data",(e.t||"").replace(/(\r\n|[\r\n])/g," "),{xmlns:"http://www.w3.org/TR/REC-html40"});return Ze("Comment",t,{"ss:Author":e.a})})).join("")),Ze("Cell",m,o)}function xl(e,t){var n='"}function kl(e,t,n){var r=[],a=n.SheetNames[e],s=n.Sheets[a],i=s?function(e,t,n,r){if(!e)return"";if(!((r||{}).Workbook||{}).Names)return"";for(var a=r.Workbook.Names,s=[],i=0;i0&&r.push(""+i+""),(i=s?function(e,t,n,r){if(!e["!ref"])return"";var a=Qt(e["!ref"]),s=e["!merges"]||[],i=0,o=[];e["!cols"]&&e["!cols"].forEach((function(e,t){ms(e);var n=!!e.width,r=so(t,e),a={"ss:Index":t+1};n&&(a["ss:Width"]=cs(r.width)),e.hidden&&(a["ss:Hidden"]="1"),o.push(Ze("Column",null,a))}));for(var l=Array.isArray(e),u=a.s.r;u<=a.e.r;++u){for(var c=[xl(u,(e["!rows"]||[])[u])],h=a.s.c;h<=a.e.c;++h){var f=!1;for(i=0;i!=s.length;++i)if(!(s[i].s.c>h||s[i].s.r>u||s[i].e.c"),c.length>2&&o.push(c.join(""))}return o.join("")}(s,t):"").length>0&&r.push(""+i+"
"),r.push(function(e,t,n,r){if(!e)return"";var a=[];if(e["!margins"]&&(a.push(""),e["!margins"].header&&a.push(Ze("Header",null,{"x:Margin":e["!margins"].header})),e["!margins"].footer&&a.push(Ze("Footer",null,{"x:Margin":e["!margins"].footer})),a.push(Ze("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"})),a.push("")),r&&r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[n])if(r.Workbook.Sheets[n].Hidden)a.push(Ze("Visible",1==r.Workbook.Sheets[n].Hidden?"SheetHidden":"SheetVeryHidden",{}));else{for(var s=0;s")}return((((r||{}).Workbook||{}).Views||[])[0]||{}).RTL&&a.push(""),e["!protect"]&&(a.push(Ye("ProtectContents","True")),e["!protect"].objects&&a.push(Ye("ProtectObjects","True")),e["!protect"].scenarios&&a.push(Ye("ProtectScenarios","True")),null==e["!protect"].selectLockedCells||e["!protect"].selectLockedCells?null==e["!protect"].selectUnlockedCells||e["!protect"].selectUnlockedCells||a.push(Ye("EnableSelection","UnlockedCells")):a.push(Ye("EnableSelection","NoSelection")),[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach((function(t){e["!protect"][t[0]]&&a.push("<"+t[1]+"/>")}))),0==a.length?"":Ze("WorksheetOptions",a.join(""),{xmlns:at})}(s,0,e,n)),r.join("")}function El(e,t){t||(t={}),e.SSF||(e.SSF=D.get_table()),e.SSF&&(A(D),D.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF,t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}));var n=[];n.push(function(e,t){var n=[];return e.Props&&n.push(function(e,t){var n=[];return z(fr).map((function(e){for(var t=0;t'+a.join("")+""}(e.Props,e.Custprops)),n.join("")}(e,t)),n.push(""),n.push(""),n.push("");for(var r=0;r'];return t.cellXfs.forEach((function(e,t){var r=[];r.push(Ze("NumberFormat",null,{"ss:Format":De(D._table[e.numFmtId])}));var a={"ss:ID":"s"+(21+t)};n.push(Ze("Style",r.join(""),a))})),Ze("Styles",n.join(""))}(0,t),n[3]=function(e){if(!((e||{}).Workbook||{}).Names)return"";for(var t=e.Workbook.Names,n=[],r=0;r40||(n.l-=4,t.Reserved1=n.read_shift(0,"lpstr-ansi"),n.length-n.l<=4||1907505652!==(r=n.read_shift(4))||(t.UnicodeClipboardFormat=function(e){return Nn(e,2)}(n),0==(r=n.read_shift(4))||r>40||(n.l-=4,t.Reserved2=n.read_shift(0,"lpwstr"))))}(n),t.bookProps&&!t.bookSheets)a={};else{var i=y?"buffer":"array";if(r&&r.content)a=function(e,t){var n,r,a,s,i,o,l,c,h={opts:{}},f={},d=t.dense?[]:{},p={},m={},g=null,y=[],b="",v={},w="",_={},x=[],k=!0,E=[],C=[],S={Sheets:[],WBProps:{date1904:!1},Views:[{}]},N={},I=function(e){return e<8?Pn[e]:e<64&&C[e-8]||Pn[e]},A=function(e,t,r){if(!(W>1)&&(r.sheetRows&&e.r>=r.sheetRows&&(k=!1),k)){if(r.cellStyles&&t.XF&&t.XF.data&&function(e,t,n){var r,a=t.XF.data;a&&a.patternType&&n&&n.cellStyles&&(t.s={},t.s.patternType=a.patternType,(r=os(I(a.icvFore)))&&(t.s.fgColor={rgb:r}),(r=os(I(a.icvBack)))&&(t.s.bgColor={rgb:r}))}(0,t,r),delete t.ixfe,delete t.XF,n=e,w=Yt(e),m&&m.s&&m.e||(m={s:{r:0,c:0},e:{r:0,c:0}}),e.rm.e.r&&(m.e.r=e.r+1),e.c+1>m.e.c&&(m.e.c=e.c+1),r.cellFormula&&t.f)for(var a=0;ae.c||x[a][0].s.r>e.r||x[a][0].e.c>8)!==q)throw new Error("rt mismatch: "+Y+"!="+q);12==X.r&&(e.l+=10,K-=10)}var J={};J="EOF"===X.n?X.f(e,K,T):Cl(X,e,K,T);var Z=X.n;if(0==W&&"BOF"!=Z)continue;switch(Z){case"Date1904":h.opts.Date1904=S.WBProps.date1904=J;break;case"WriteProtect":h.opts.WriteProtect=!0;break;case"FilePass":if(T.enc||(e.l=0),T.enc=J,!t.password)throw new Error("File is password-protected");if(null==J.valid)throw new Error("Encryption scheme unsupported");if(!J.valid)throw new Error("Password is incorrect");break;case"WriteAccess":T.lastuser=J;break;case"FileSharing":break;case"CodePage":var Q=Number(J);switch(Q){case 21010:Q=1200;break;case 32768:Q=1e4;break;case 32769:Q=1252}u(T.codepage=Q),H=!0;break;case"RRTabId":T.rrtabid=J;break;case"WinProtect":T.winlocked=J;break;case"Template":case"BookBool":case"UsesELFs":case"MTRSettings":break;case"RefreshAll":case"CalcCount":case"CalcDelta":case"CalcIter":case"CalcMode":case"CalcPrecision":case"CalcSaveRecalc":h.opts[Z]=J;break;case"CalcRefMode":T.CalcRefMode=J;break;case"Uncalced":break;case"ForceFullCalculation":h.opts.FullCalc=J;break;case"WsBool":J.fDialog&&(d["!type"]="dialog");break;case"XF":E.push(J);break;case"ExtSST":case"BookExt":case"RichTextStream":case"BkHim":break;case"SupBook":$.push([J]),$[$.length-1].XTI=[];break;case"ExternName":$[$.length-1].push(J);break;case"Index":break;case"Lbl":P={Name:J.Name,Ref:zi(J.rgce,0,null,$,T)},J.itab>0&&(P.Sheet=J.itab-1),$.names.push(P),$[0]||($[0]=[],$[0].XTI=[]),$[$.length-1].push(J),"_xlnm._FilterDatabase"==J.Name&&J.itab>0&&J.rgce&&J.rgce[0]&&J.rgce[0][0]&&"PtgArea3d"==J.rgce[0][0][0]&&(j[J.itab-1]={ref:Zt(J.rgce[0][0][1][2])});break;case"ExternCount":T.ExternCount=J;break;case"ExternSheet":0==$.length&&($[0]=[],$[0].XTI=[]),$[$.length-1].XTI=$[$.length-1].XTI.concat(J),$.XTI=$.XTI.concat(J);break;case"NameCmt":if(T.biff<8)break;null!=P&&(P.Comment=J[1]);break;case"Protect":d["!protect"]=J;break;case"Password":0!==J&&T.WTF&&console.error("Password verifier: "+J);break;case"Prot4Rev":case"Prot4RevPass":break;case"BoundSheet8":p[J.pos]=J,T.snames.push(J.name);break;case"EOF":if(--W)break;if(m.e){if(m.e.r>0&&m.e.c>0){if(m.e.r--,m.e.c--,d["!ref"]=Zt(m),t.sheetRows&&t.sheetRows<=m.e.r){var ee=m.e.r;m.e.r=t.sheetRows-1,d["!fullref"]=d["!ref"],d["!ref"]=Zt(m),m.e.r=ee}m.e.r++,m.e.c++}R.length>0&&(d["!merges"]=R),F.length>0&&(d["!objects"]=F),O.length>0&&(d["!cols"]=O),B.length>0&&(d["!rows"]=B),S.Sheets.push(N)}""===b?v=d:f[b]=d,d=t.dense?[]:{};break;case"BOF":if(8===T.biff&&(T.biff={9:2,521:3,1033:4}[q]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[J.BIFFVer]||8),8==T.biff&&0==J.BIFFVer&&16==J.dt&&(T.biff=2),W++)break;if(k=!0,d=t.dense?[]:{},T.biff<8&&!H&&(H=!0,u(T.codepage=t.codepage||1252)),T.biff<5){""===b&&(b="Sheet1"),m={s:{r:0,c:0},e:{r:0,c:0}};var te={pos:e.l-K,name:b};p[te.pos]=te,T.snames.push(b)}else b=(p[G]||{name:""}).name;32==J.dt&&(d["!type"]="chart"),64==J.dt&&(d["!type"]="macro"),R=[],F=[],T.arrayf=x=[],O=[],B=[],M=!1,N={Hidden:(p[G]||{hs:0}).hs,name:b};break;case"Number":case"BIFF2NUM":case"BIFF2INT":"chart"==d["!type"]&&(t.dense?(d[J.r]||[])[J.c]:d[Yt({c:J.c,r:J.r})])&&++J.c,o={ixfe:J.ixfe,XF:E[J.ixfe]||{},v:J.val,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"BoolErr":o={ixfe:J.ixfe,XF:E[J.ixfe],v:J.val,t:J.t},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"RK":o={ixfe:J.ixfe,XF:E[J.ixfe],v:J.rknum,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"MulRk":for(var ne=J.c;ne<=J.C;++ne){var re=J.rkrec[ne-J.c][0];o={ixfe:re,XF:E[re],v:J.rkrec[ne-J.c][1],t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:ne,r:J.r},o,t)}break;case"Formula":if("String"==J.val){g=J;break}if((o=Nl(J.val,J.cell.ixfe,J.tt)).XF=E[o.ixfe],t.cellFormula){var ae=J.formula;if(ae&&ae[0]&&ae[0][0]&&"PtgExp"==ae[0][0][0]){var se=ae[0][0][1][0],ie=ae[0][0][1][1],oe=Yt({r:se,c:ie});_[oe]?o.f=""+zi(J.formula,0,J.cell,$,T):o.F=((t.dense?(d[se]||[])[ie]:d[oe])||{}).F}else o.f=""+zi(J.formula,0,J.cell,$,T)}U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A(J.cell,o,t),g=J;break;case"String":if(!g)throw new Error("String record expects Formula");g.val=J,(o=Nl(J,g.cell.ixfe,"s")).XF=E[o.ixfe],t.cellFormula&&(o.f=""+zi(g.formula,0,g.cell,$,T)),U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A(g.cell,o,t),g=null;break;case"Array":x.push(J);var le=Yt(J[0].s);if(r=t.dense?(d[J[0].s.r]||[])[J[0].s.c]:d[le],t.cellFormula&&r){if(!g)break;if(!le||!r)break;r.f=""+zi(J[1],0,J[0],$,T),r.F=Zt(J[0])}break;case"ShrFmla":if(!k)break;if(!t.cellFormula)break;if(w){if(!g)break;_[Yt(g.cell)]=J[0],((r=t.dense?(d[g.cell.r]||[])[g.cell.c]:d[Yt(g.cell)])||{}).f=""+zi(J[0],0,n,$,T)}break;case"LabelSst":o=Nl(y[J.isst].t,J.ixfe,"s"),y[J.isst].h&&(o.h=y[J.isst].h),o.XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"Blank":t.sheetStubs&&(o={ixfe:J.ixfe,XF:E[J.ixfe],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t));break;case"MulBlank":if(t.sheetStubs)for(var ue=J.c;ue<=J.C;++ue){var ce=J.ixfe[ue-J.c];o={ixfe:ce,XF:E[ce],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:ue,r:J.r},o,t)}break;case"RString":case"Label":case"BIFF2STR":(o=Nl(J.val,J.ixfe,"s")).XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),A({c:J.c,r:J.r},o,t);break;case"Dimensions":1===W&&(m=J);break;case"SST":y=J;break;case"Format":if(4==T.biff){V[U++]=J[1];for(var he=0;he=163&&D.load(J[1],U+163)}else D.load(J[1],J[0]);break;case"BIFF2FORMAT":V[U++]=J;for(var fe=0;fe=163&&D.load(J,U+163);break;case"MergeCells":R=R.concat(J);break;case"Obj":F[J.cmo[0]]=T.lastobj=J;break;case"TxO":T.lastobj.TxO=J;break;case"ImData":T.lastobj.ImData=J;break;case"HLink":for(i=J[0].s.r;i<=J[0].e.r;++i)for(s=J[0].s.c;s<=J[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Yt({c:s,r:i})])&&(r.l=J[1]);break;case"HLinkTooltip":for(i=J[0].s.r;i<=J[0].e.r;++i)for(s=J[0].s.c;s<=J[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Yt({c:s,r:i})])&&r.l&&(r.l.Tooltip=J[1]);break;case"Note":if(T.biff<=5&&T.biff>=2)break;r=t.dense?(d[J[0].r]||[])[J[0].c]:d[Yt(J[0])];var de=F[J[2]];r||(t.dense?(d[J[0].r]||(d[J[0].r]=[]),r=d[J[0].r][J[0].c]={t:"z"}):r=d[Yt(J[0])]={t:"z"},m.e.r=Math.max(m.e.r,J[0].r),m.s.r=Math.min(m.s.r,J[0].r),m.e.c=Math.max(m.e.c,J[0].c),m.s.c=Math.min(m.s.c,J[0].c)),r.c||(r.c=[]),a={a:J[1],t:de.TxO.t},r.c.push(a);break;default:switch(X.n){case"ClrtClient":break;case"XFExt":E[J.ixfe],J.ext.forEach((function(e){e[0]}));break;case"DefColWidth":break;case"DefaultRowHeight":J[1];break;case"ColInfo":if(!T.cellStyles)break;for(;J.e>=J.s;)O[J.e--]={width:J.w/256},M||(M=!0,ps(J.w/256)),ms(O[J.e+1]);break;case"Row":var pe={};null!=J.level&&(B[J.r]=pe,pe.level=J.level),J.hidden&&(B[J.r]=pe,pe.hidden=!0),J.hpt&&(B[J.r]=pe,pe.hpt=J.hpt,pe.hpx=ys(J.hpt));break;case"LeftMargin":case"RightMargin":case"TopMargin":case"BottomMargin":d["!margins"]||io(d["!margins"]={}),d["!margins"][Z.slice(0,-6).toLowerCase()]=J;break;case"Setup":d["!margins"]||io(d["!margins"]={}),d["!margins"].header=J.header,d["!margins"].footer=J.footer;break;case"Window2":J.RTL&&(S.Views[0].RTL=!0);break;case"Header":case"Footer":case"HCenter":case"VCenter":case"Pls":case"GCW":case"LHRecord":case"DBCell":case"EntExU2":case"SxView":case"Sxvd":case"SXVI":case"SXVDEx":case"SxIvd":case"SXString":case"Sync":case"Addin":case"SXDI":case"SXLI":case"SXEx":case"QsiSXTag":case"Selection":case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Country":l=J;break;case"RecalcId":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":case"Font":case"XFCRC":case"Style":case"StyleExt":break;case"Palette":C=J;break;case"Theme":c=J;break;case"ScenarioProtect":case"ObjProtect":case"CondFmt12":case"Table":case"TableStyles":case"TableStyle":case"TableStyleElement":case"SXStreamID":case"SXVS":case"DConRef":case"SXAddl":case"DConBin":case"DConName":case"SXPI":case"SxFormat":case"SxSelect":case"SxRule":case"SxFilt":case"SxItm":case"SxDXF":case"ScenMan":case"DCon":case"CellWatch":case"PrintRowCol":case"PrintGrid":case"PrintSize":case"XCT":case"CRN":case"Scl":case"SheetExt":case"SheetExtOptional":case"ObNoMacros":case"ObProj":break;case"CodeName":b?N.CodeName=J||N.name:S.WBProps.CodeName=J||"ThisWorkbook";break;case"GUIDTypeLib":case"WOpt":case"PhoneticInfo":case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":case"DConn":case"DbOrParamQry":case"DBQueryExt":case"OleDbConn":case"ExtString":case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":case"Excel9File":case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":break;case"Window1":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(X.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":case"Surf":case"AxisParent":case"Pos":case"ValueRange":case"SXViewEx9":case"SXViewLink":case"PivotChartBits":case"SBaseRef":case"TextPropsStream":case"LnExt":case"MkrExt":case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":case"TxtQry":case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":case"AutoFilter12":case"DropDownObjIds":case"Sort":case"SortData":case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"WebPub":case"AutoWebPub":break;case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":break;case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;default:switch(X.n){case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;case"BIFF2FONTCLR":case"BIFF2FMTCNT":case"BIFF2FONTXTRA":break;case"BIFF2XF":case"BIFF3XF":case"BIFF4XF":break;case"BIFF4FMTCNT":case"BIFF2ROW":case"BIFF2WINDOW2":break;case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;case"LHNGraph":case"FnGroupName":case"AddMenu":case"LPr":break;case"ListObj":case"ListField":case"RRSort":case"BigName":break;case"ToolbarHdr":case"ToolbarEnd":case"DDEObjName":case"FRTArchId$":break;default:if(t.WTF)throw"Unrecognized Record "+X.n}}}}}else e.l+=K}return h.SheetNames=z(p).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return p[e].name})),t.bookSheets||(h.Sheets=f),h.Sheets&&j.forEach((function(e,t){h.Sheets[h.SheetNames[t]]["!autofilter"]=e})),h.Preamble=v,h.Strings=y,h.SSF=D.get_table(),T.enc&&(h.Encryption=T.enc),c&&(h.Themes=c),h.Metadata={},void 0!==l&&(h.Metadata.Country=l),$.names.length>0&&(S.Names=$.names),h.Workbook=S,h}(r.content,t);else if((s=M.find(e,"PerfectOffice_MAIN"))&&s.content)a=Ra.to_workbook(s.content,(t.type=i,t));else{if(!(s=M.find(e,"NativeContent_MAIN"))||!s.content)throw new Error("Cannot find Workbook stream");a=Ra.to_workbook(s.content,(t.type=i,t))}t.bookVBA&&e.FullPaths&&M.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(a.vbaraw=function(e){var t=M.utils.cfb_new({root:"R"});return e.FullPaths.forEach((function(n,r){if("/"!==n.slice(-1)&&n.match(/_VBA_PROJECT_CUR/)){var a=n.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");M.utils.cfb_add(t,a,e.FileIndex[r].content)}})),M.write(t)}(e))}var o={};return e.FullPaths&&function(e,t,n){var r=M.find(e,"!DocumentSummaryInformation");if(r&&r.size>0)try{var a=Dr(r,An,Dl);for(var s in a)t[s]=a[s]}catch(e){if(n.WTF)throw e}var i=M.find(e,"!SummaryInformation");if(i&&i.size>0)try{var o=Dr(i,Tn,Il);for(var l in o)null==t[l]&&(t[l]=o[l])}catch(e){if(n.WTF)throw e}t.HeadingPairs&&t.TitlesOfParts&&(lr(t.HeadingPairs,t.TitlesOfParts,t,n),delete t.HeadingPairs,delete t.TitlesOfParts)}(e,o,t),a.Props=a.Custprops=o,t.bookFiles&&(a.cfb=e),a}var Tl={0:{n:"BrtRowHdr",f:function(e,t){var n={},r=e.l+t;n.r=e.read_shift(4),e.l+=4;var a=e.read_shift(2);e.l+=1;var s=e.read_shift(1);return e.l=r,7&s&&(n.level=7&s),16&s&&(n.hidden=!0),32&s&&(n.hpt=a/20),n}},1:{n:"BrtCellBlank",f:function(e){return[hn(e)]}},2:{n:"BrtCellRk",f:function(e){return[hn(e),wn(e),"n"]}},3:{n:"BrtCellError",f:function(e){return[hn(e),e.read_shift(1),"e"]}},4:{n:"BrtCellBool",f:function(e){return[hn(e),e.read_shift(1),"b"]}},5:{n:"BrtCellReal",f:function(e){return[hn(e),En(e),"n"]}},6:{n:"BrtCellSt",f:function(e){return[hn(e),sn(e),"str"]}},7:{n:"BrtCellIsst",f:function(e){return[hn(e),e.read_shift(4),"s"]}},8:{n:"BrtFmlaString",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,sn(e),"str"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},9:{n:"BrtFmlaNum",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,En(e),"n"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},10:{n:"BrtFmlaBool",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"b"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},11:{n:"BrtFmlaError",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"e"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},16:{n:"BrtFRTArchID$",f:function(e,t){var n={};return e.read_shift(4),n.ArchID=e.read_shift(4),e.l+=t-8,n}},19:{n:"BrtSSTItem",f:un},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:function(e,t,n){var r=e.l+t;e.l+=4,e.l+=1;var a=e.read_shift(4),s=yn(e),i=qi(e,0,n),o=mn(e);e.l=r;var l={Name:s,Ptg:i};return a<268435455&&(l.Sheet=a),o&&(l.Comment=o),l}},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:function(e,t,n){var r={};r.sz=e.read_shift(2)/20;var a=function(e){var t=e.read_shift(1);return e.l++,{fBold:1&t,fItalic:2&t,fUnderline:4&t,fStrikeout:8&t,fOutline:16&t,fShadow:32&t,fCondense:64&t,fExtend:128&t}}(e);switch(a.fItalic&&(r.italic=1),a.fCondense&&(r.condense=1),a.fExtend&&(r.extend=1),a.fShadow&&(r.shadow=1),a.fOutline&&(r.outline=1),a.fStrikeout&&(r.strike=1),700===e.read_shift(2)&&(r.bold=1),e.read_shift(2)){case 1:r.vertAlign="superscript";break;case 2:r.vertAlign="subscript"}var s=e.read_shift(1);0!=s&&(r.underline=s);var i=e.read_shift(1);i>0&&(r.family=i);var o=e.read_shift(1);switch(o>0&&(r.charset=o),e.l++,r.color=function(e){var t={},n=e.read_shift(1)>>>1,r=e.read_shift(1),a=e.read_shift(2,"i"),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(1);switch(e.l++,n){case 0:t.auto=1;break;case 1:t.index=r;var l=Pn[r];l&&(t.rgb=os(l));break;case 2:t.rgb=os([s,i,o]);break;case 3:t.theme=r}return 0!=a&&(t.tint=a>0?a/32767:a/32768),t}(e),e.read_shift(1)){case 1:r.scheme="major";break;case 2:r.scheme="minor"}return r.name=sn(e),r}},44:{n:"BrtFmt",f:function(e,t){return[e.read_shift(2),sn(e)]}},45:{n:"BrtFill",f:Ts},46:{n:"BrtBorder",f:Bs},47:{n:"BrtXF",f:function(e,t){var n=e.l+t,r=e.read_shift(2),a=e.read_shift(2);return e.l=n,{ixfe:r,numFmtId:a}}},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:ka},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:function(e){var t={};t.i=e.read_shift(4);var n={};n.r=e.read_shift(4),n.c=e.read_shift(4),t.r=Yt(n);var r=e.read_shift(1);return 2&r&&(t.l="1"),8&r&&(t.a="1"),t}},64:{n:"BrtDVal",f:function(){}},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Mt,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView",f:function(e){var t=e.read_shift(2);return e.l+=28,{RTL:32&t}}},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:function(e,t){var n={};return e.l+=19,n.name=dn(e,t-19),n}},148:{n:"BrtWsDim",f:Mo,p:16},151:{n:"BrtPane",f:function(){}},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:function(e,t){var n={},r=e.read_shift(4);n.defaultThemeVersion=e.read_shift(4);var a=t>8?sn(e):"";return a.length>0&&(n.CodeName=a),n.autoCompressPictures=!!(65536&r),n.backupFile=!!(64&r),n.checkCompatibility=!!(4096&r),n.date1904=!!(1&r),n.filterPrivacy=!!(8&r),n.hidePivotFieldList=!!(1024&r),n.promptedSolutions=!!(16&r),n.publishItems=!!(2048&r),n.refreshAllConnections=!!(262144&r),n.saveExternalLinkValues=!!(128&r),n.showBorderUnselectedTables=!!(4&r),n.showInkAnnotation=!!(32&r),n.showObjects=["all","placeholders","none"][r>>13&3],n.showPivotChartFilter=!!(32768&r),n.updateLinks=["userSet","never","always"][r>>8&3],n}},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:function(e,t){var n={};return n.Hidden=e.read_shift(4),n.iTabID=e.read_shift(4),n.strRelID=bn(e,t-8),n.name=sn(e),n}},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:function(e){return[e.read_shift(4),e.read_shift(4)]}},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:xn},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:Po},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:bn},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:ba},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:function(e,t,n){var r=e.l+t,a=_n(e),s=e.read_shift(1),i=[a];if(i[2]=s,n.cellFormula){var o=Hi(e,r-e.l,n);i[1]=o}else e.l=r;return i}},427:{n:"BrtShrFmla",f:function(e,t,n){var r=e.l+t,a=[xn(e,16)];if(n.cellFormula){var s=Ki(e,r-e.l,n);a[1]=s,e.l=r}else e.l=r;return a}},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:function(e){var t={};return zo.forEach((function(n){t[n]=En(e)})),t}},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:function(){}},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:function(e,t){var n=e.l+t,r=xn(e,16),a=mn(e),s=sn(e),i=sn(e),o=sn(e);e.l=n;var l={rfx:r,relId:a,loc:s,display:o};return i&&(l.Tooltip=i),l}},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:bn},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:Zs},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:function(e){var t={};t.iauthor=e.read_shift(4);var n=xn(e,16);return t.rfx=n.s,t.ref=Yt(n.s),e.l+=16,t}},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:cn},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp",f:function(e,t){return e.l+=10,{name:sn(e)}}},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},681:{n:"BrtDValList"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14",f:function(){}},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSXView14"},1063:{n:"BrtEndSXView14"},1064:{n:"BrtBeginSXView16"},1065:{n:"BrtEndSXView16"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},2137:{n:"BrtBeginModelTimeGroupings"},2138:{n:"BrtEndModelTimeGroupings"},2139:{n:"BrtBeginModelTimeGrouping"},2140:{n:"BrtEndModelTimeGrouping"},2141:{n:"BrtModelTimeGroupingCalcCol"},3072:{n:"BrtUid"},3073:{n:"BrtRevisionPtr"},5095:{n:"BrtBeginCalcFeatures"},5096:{n:"BrtEndCalcFeatures"},5097:{n:"BrtCalcFeature"},65535:{n:""}},Rl=W(Tl,"n"),Fl={3:{n:"BIFF2NUM",f:function(e){var t=Kr(e);++e.l;var n=En(e);return t.t="n",t.val=n,t}},4:{n:"BIFF2STR",f:function(e,t,n){var r=Kr(e);++e.l;var a=Ur(e,0,n);return r.t="str",r.val=a,r}},6:{n:"Formula",f:Vi},9:{n:"BOF",f:sa},10:{n:"EOF",f:Tr},12:{n:"CalcCount",f:Or},13:{n:"CalcMode",f:Or},14:{n:"CalcPrecision",f:Rr},15:{n:"CalcRefMode",f:Rr},16:{n:"CalcDelta",f:En},17:{n:"CalcIter",f:Rr},18:{n:"Protect",f:Rr},19:{n:"Password",f:Or},20:{n:"Header",f:pa},21:{n:"Footer",f:pa},23:{n:"ExternSheet",f:ba},24:{n:"Lbl",f:ya},25:{n:"WinProtect",f:Rr},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:function(e,t,n){return function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2),i=e.read_shift(2),o=Ur(e,0,n);return n.biff<8&&e.read_shift(1),[{r,c:a},o,i,s]}}(e,0,n)}},29:{n:"Selection"},34:{n:"Date1904",f:Rr},35:{n:"ExternName",f:ma},36:{n:"COLWIDTH"},38:{n:"LeftMargin",f:En},39:{n:"RightMargin",f:En},40:{n:"TopMargin",f:En},41:{n:"BottomMargin",f:En},42:{n:"PrintRowCol",f:Rr},43:{n:"PrintGrid",f:Rr},47:{n:"FilePass",f:function(e,t,n){var r={Type:n.biff>=8?e.read_shift(2):0};return r.Type?function(e,t,n){var r=n||{};r.Info=e.read_shift(2),e.l-=2,1===r.Info?r.Data=function(e){var t={},n=t.EncryptionVersionInfo=qa(e,4);if(1!=n.Major||1!=n.Minor)throw"unrecognized version code "+n.Major+" : "+n.Minor;return t.Salt=e.read_shift(16),t.EncryptedVerifier=e.read_shift(16),t.EncryptedVerifierHash=e.read_shift(16),t}(e):r.Data=function(e,t){var n={},r=n.EncryptionVersionInfo=qa(e,4);if(t-=4,2!=r.Minor)throw new Error("unrecognized minor version code: "+r.Minor);if(r.Major>4||r.Major<2)throw new Error("unrecognized major version code: "+r.Major);n.Flags=e.read_shift(4),t-=4;var a=e.read_shift(4);return t-=4,n.EncryptionHeader=Xa(e,a),t-=a,n.EncryptionVerifier=Ya(e,t),n}(e,t)}(e,t-2,r):function(e,t,n,r){var a,s,i,o={key:Or(e),verificationBytes:Or(e)};n.password&&(o.verifier=es(n.password)),r.valid=o.verificationBytes===o.verifier,r.valid&&(r.insitu=(a=n.password,s=0,i=ss(a),function(e){var t=function(e,t,n,r,a){var s,i;for(a||(a=t),r||(r=ss("")),s=0;s!=t.length;++s)i=t[s],i=255&((i^=r[n])>>5|i<<3),a[s]=i,++n;return[a,n,r]}(0,e,s,i);return s=t[1],t[0]}))}(e,n.biff,n,r),r}},49:{n:"Font",f:function(e,t,n){var r={dyHeight:e.read_shift(2),fl:e.read_shift(2)};switch(n&&n.biff||8){case 2:break;case 3:case 4:e.l+=2;break;default:e.l+=10}return r.name=$r(e,0,n),r}},51:{n:"PrintSize",f:Or},60:{n:"Continue"},61:{n:"Window1",f:function(e){return{Pos:[e.read_shift(2),e.read_shift(2)],Dim:[e.read_shift(2),e.read_shift(2)],Flags:e.read_shift(2),CurTab:e.read_shift(2),FirstTab:e.read_shift(2),Selected:e.read_shift(2),TabRatio:e.read_shift(2)}}},64:{n:"Backup",f:Rr},65:{n:"Pane",f:function(){}},66:{n:"CodePage",f:Or},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:Or},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:function(e,t,n){if(n.enc)return e.l+=t,"";var r=e.l,a=Ur(e,0,n);return e.read_shift(t+r-e.l),a}},93:{n:"Obj",f:function(e,t,n){if(n&&n.biff<8)return function(e,t,n){e.l+=4;var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2);e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=6,t-=36;var i=[];return i.push((wa[r]||Mt)(e,t,n)),{cmo:[a,r,s],ft:i}}(e,t,n);var r=na(e);return{cmo:r,ft:function(e,t){for(var n=e.l+t,r=[];e.l7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}},129:{n:"WsBool",f:function(e,t,n){return{fDialog:16&(n&&8==n.biff||2==t?e.read_shift(2):(e.l+=t,0))}}},130:{n:"GridSet",f:Or},131:{n:"HCenter",f:Rr},132:{n:"VCenter",f:Rr},133:{n:"BoundSheet8",f:function(e,t,n){var r=e.read_shift(4),a=3&e.read_shift(1),s=e.read_shift(1);switch(s){case 0:s="Worksheet";break;case 1:s="Macrosheet";break;case 2:s="Chartsheet";break;case 6:s="VBAModule"}var i=$r(e,0,n);return 0===i.length&&(i="Sheet1"),{pos:r,hs:a,dt:s,name:i}}},134:{n:"WriteProtect"},140:{n:"Country",f:function(e){var t,n=[0,0];return t=e.read_shift(2),n[0]=Mn[t]||t,t=e.read_shift(2),n[1]=Mn[t]||t,n}},141:{n:"HideObj",f:Or},144:{n:"Sort"},146:{n:"Palette",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(qr(e));return n}},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:Or},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:Ca},161:{n:"Setup",f:function(e,t){var n={};return t<32||(e.l+=16,n.header=En(e),n.footer=En(e),e.l+=2),n}},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:function(e,t){for(var n=e.l+t-2,r=e.read_shift(2),a=e.read_shift(2),s=[];e.l>2&1,r.data=function(e,t,n,r){var a={},s=e.read_shift(4),i=e.read_shift(4),o=e.read_shift(4),l=e.read_shift(2);return a.patternType=$n[o>>26],r.cellStyles?(a.alc=7&s,a.fWrap=s>>3&1,a.alcV=s>>4&7,a.fJustLast=s>>7&1,a.trot=s>>8&255,a.cIndent=s>>16&15,a.fShrinkToFit=s>>20&1,a.iReadOrder=s>>22&2,a.fAtrNum=s>>26&1,a.fAtrFnt=s>>27&1,a.fAtrAlc=s>>28&1,a.fAtrBdr=s>>29&1,a.fAtrPat=s>>30&1,a.fAtrProt=s>>31&1,a.dgLeft=15&i,a.dgRight=i>>4&15,a.dgTop=i>>8&15,a.dgBottom=i>>12&15,a.icvLeft=i>>16&127,a.icvRight=i>>23&127,a.grbitDiag=i>>30&3,a.icvTop=127&o,a.icvBottom=o>>7&127,a.icvDiag=o>>14&127,a.dgDiag=o>>21&15,a.icvFore=127&l,a.icvBack=l>>7&127,a.fsxButton=l>>14&1,a):a}(e,0,r.fStyle,n),r}},225:{n:"InterfaceHdr",f:function(e,t){return 0===t||e.read_shift(2),1200}},226:{n:"InterfaceEnd",f:Tr},227:{n:"SXVS"},229:{n:"MergeCells",f:function(e,t){for(var n=[],r=e.read_shift(2);r--;)n.push(Zr(e));return n}},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:function(e,t){for(var n=e.l+t,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0;i!=a&&e.l255)throw new Error("Unexpected SupBook type: "+s);for(var i=zr(e,s),o=[];r>e.l;)o.push(Wr(e));return[s,a,i,o]}},431:{n:"Prot4Rev",f:Rr},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:function(e,t,n){var r=e.l,a="";try{e.l+=4;var s=(n.lastobj||{cmo:[0,0]}).cmo[1];-1==[0,5,7,11,12,14].indexOf(s)?e.l+=6:function(e){var t=e.read_shift(1);e.l++;var n=e.read_shift(2);e.l+=2}(e);var i=e.read_shift(2);e.read_shift(2),Or(e);var o=e.read_shift(2);e.l+=o;for(var l=1;l=(u?i:2*i))break}if(a.length!==i&&a.length!==2*i)throw new Error("cchText: "+i+" != "+a.length);return e.l=r+t,{t:a}}catch(n){return e.l=r+t,{t:a}}}},439:{n:"RefreshAll",f:Rr},440:{n:"HLink",f:function(e,t){var n=Zr(e);return e.l+=16,[n,function(e,t){var n=e.l+t,r=e.read_shift(4);if(2!==r)throw new Error("Unrecognized streamVersion: "+r);var a=e.read_shift(2);e.l+=2;var s,i,o,l,u,c,h="";16&a&&(s=jr(e,e.l)),128&a&&(i=jr(e,e.l)),257==(257&a)&&(o=jr(e,e.l)),1==(257&a)&&(l=function(e,t){var n=e.read_shift(16);switch(n){case"e0c9ea79f9bace118c8200aa004ba90b":return function(e){var t=e.read_shift(4),n=e.l,r=!1;t>24&&(e.l+=t-24,"795881f43b1d7f48af2c825dc4852763"===e.read_shift(16)&&(r=!0),e.l=n);var a=e.read_shift((r?t-24:t)>>1,"utf16le").replace(N,"");return r&&(e.l+=24),a}(e);case"0303000000000000c000000000000046":return function(e){e.l+=2;var t=e.read_shift(0,"lpstr-ansi");if(e.l+=2,57005!=e.read_shift(2))throw new Error("Bad FileMoniker");if(0===e.read_shift(4))return t.replace(/\\/g,"/");var n=e.read_shift(4);if(3!=e.read_shift(2))throw new Error("Bad FileMoniker");return e.read_shift(n>>1,"utf16le").replace(N,"")}(e);default:throw new Error("Unsupported Moniker "+n)}}(e,e.l)),8&a&&(h=jr(e,e.l)),32&a&&(u=e.read_shift(16)),64&a&&(c=mr(e)),e.l=n;var f=i||o||l||"";f&&h&&(f+="#"+h),f||(f="#"+h);var d={Target:f};return u&&(d.guid=u),c&&(d.time=c),s&&(d.Tooltip=s),d}(e,t-24)]}},441:{n:"Lel"},442:{n:"CodeName",f:Wr},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:Or},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:Tr},449:{n:"RecalcId",f:function(e){return e.read_shift(2),e.read_shift(4)},r:2},450:{n:"EntExU2",f:Tr},512:{n:"Dimensions",f:ha},513:{n:"Blank",f:Ea},515:{n:"Number",f:function(e){var t=Kr(e),n=En(e);return t.val=n,t}},516:{n:"Label",f:function(e,t,n){e.l;var r=Kr(e);2==n.biff&&e.l++;var a=Wr(e,e.l,n);return r.val=a,r}},517:{n:"BoolErr",f:da},518:{n:"Formula",f:Vi},519:{n:"String",f:Sa},520:{n:"Row",f:function(e){var t={};t.r=e.read_shift(2),t.c=e.read_shift(2),t.cnt=e.read_shift(2)-t.c;var n=e.read_shift(2);e.l+=4;var r=e.read_shift(1);return e.l+=3,7&r&&(t.level=7&r),32&r&&(t.hidden=!0),64&r&&(t.hpt=n/20),t}},523:{n:"Index"},545:{n:"Array",f:va},549:{n:"DefaultRowHeight",f:la},566:{n:"Table"},574:{n:"Window2",f:function(e,t,n){return n&&n.biff>=2&&n.biff<5?{}:{RTL:64&e.read_shift(2)}}},638:{n:"RK",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=Jr(e);return{r:t,c:n,ixfe:r[0],rknum:r[1]}}},659:{n:"Style"},1030:{n:"Formula",f:Vi},1048:{n:"BigName"},1054:{n:"Format",f:function(e,t,n){return[e.read_shift(2),Ur(e,0,n)]}},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:function(e,t,n){var r=ea(e);e.l++;var a=e.read_shift(1);return[Ui(e,t-=8,n),a,r]}},2048:{n:"HLinkTooltip",f:function(e,t){e.read_shift(2);var n=Zr(e),r=e.read_shift((t-10)/2,"dbcs-cont");return[n,r=r.replace(N,"")]}},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:sa},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:Tr},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:function(e){e.l+=2;var t={cxfs:0,crc:0};return t.cxfs=e.read_shift(2),t.crc=e.read_shift(4),t},r:12},2173:{n:"XFExt",f:function(e,t){e.l,e.l+=2;var n=e.read_shift(2);e.l+=2;for(var r=e.read_shift(2),a=[];r-- >0;)a.push(qs(e,e.l));return{ixfe:n,ext:a}},r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:Rr,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt"},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2);return[zr(e,r,n),zr(e,a,n)]}e.l+=t},r:12},2197:{n:"SortData"},2198:{n:"Theme",f:function(e,t,n){var r=e.l+t;if(124226!==e.read_shift(4))if(n.cellStyles&&se){var a,s=e.slice(e.l);e.l=r;try{a=new se(s)}catch(e){return}var i=he(a,"theme/theme/theme1.xml",!0);if(i)return Hs(i,n)}else e.l=r},r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:function(e){return[0!==e.read_shift(4),0!==e.read_shift(4),e.read_shift(4)]},r:12},2203:{n:"CompressPictures",f:Tr},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:function(e){var t=function(e){var t=e.read_shift(2),n=e.read_shift(2);return e.l+=8,{type:t,flags:n}}(e);if(2211!=t.type)throw new Error("Invalid Future Record "+t.type);return 0!==e.read_shift(4)}},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:Or},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:function(e,t,n){var r={area:!1};if(5!=n.biff)return e.l+=t,r;var a=e.read_shift(1);return e.l+=3,16&a&&(r.area=!0),r}},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(qr(e));return n}},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:ha},2:{n:"BIFF2INT",f:function(e){var t=Kr(e);++e.l;var n=e.read_shift(2);return t.t="n",t.val=n,t}},5:{n:"BoolErr",f:da},7:{n:"String",f:function(e){var t=e.read_shift(1);return 0===t?(e.l++,""):e.read_shift(t,"sbcs-cont")}},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:Or},30:{n:"BIFF2FORMAT",f:ca},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:va},37:{n:"DefaultRowHeight",f:la},50:{n:"BIFF2FONTXTRA",f:function(e,t){e.l+=6,e.l+=2,e.l+=1,e.l+=3,e.l+=1,e.l+=t-13}},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a={fmt:t,env:n,len:r,data:e.slice(e.l,e.l+r)};return e.l+=r,a}},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:function(e,t,n){var r=e.l+t,a=Kr(e),s=e.read_shift(2),i=zr(e,s,n);return e.l=r,a.t="str",a.val=i,a}},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:sa},536:{n:"Lbl",f:ya},547:{n:"ExternName",f:ma},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:sa},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}},Ol=W(Fl,"n");function Bl(e,t,n,r){var a=+t||+Ol[t];if(!isNaN(a)){var s=r||(n||[]).length||0,i=e.next(4);i.write_shift(2,a),i.write_shift(2,s),s>0&&Et(n)&&e.push(n)}}function Ml(e,t,n){return e||(e=$t(7)),e.write_shift(2,t),e.write_shift(2,n),e.write_shift(2,0),e.write_shift(1,0),e}function $l(e,t,n,r){if(null!=t.v)switch(t.t){case"d":case"n":var a="d"==t.t?H(Q(t.v)):t.v;return void(a==(0|a)&&a>=0&&a<65536?Bl(e,2,(s=n,i=r,o=a,l=$t(9),Ml(l,s,i),l.write_shift(2,o),l)):Bl(e,3,function(e,t,n){var r=$t(15);return Ml(r,e,t),r.write_shift(8,n,"f"),r}(n,r,a)));case"b":case"e":return void Bl(e,5,function(e,t,n,r){var a=$t(9);return Ml(a,e,t),"e"==r?(a.write_shift(1,n),a.write_shift(1,1)):(a.write_shift(1,n?1:0),a.write_shift(1,0)),a}(n,r,t.v,t.t));case"s":case"str":return void Bl(e,4,function(e,t,n){var r=$t(8+2*n.length);return Ml(r,e,t),r.write_shift(1,n.length),r.write_shift(n.length,n,"sbcs"),r.l255||d.e.r>=p){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:IV16384");d.e.c=Math.min(d.e.c,255),d.e.r=Math.min(d.e.c,p-1)}Bl(a,2057,ia(0,16,t)),Bl(a,"CalcMode",Br(1)),Bl(a,"CalcCount",Br(100)),Bl(a,"CalcRefMode",Fr(!0)),Bl(a,"CalcIter",Fr(!1)),Bl(a,"CalcDelta",Cn(.001)),Bl(a,"CalcSaveRecalc",Fr(!0)),Bl(a,"PrintRowCol",Fr(!1)),Bl(a,"PrintGrid",Fr(!1)),Bl(a,"GridSet",Br(1)),Bl(a,"Guts",function(e){var t=$t(8);return t.write_shift(4,0),t.write_shift(2,e[0]?e[0]+1:0),t.write_shift(2,e[1]?e[1]+1:0),t}([0,0])),Bl(a,"HCenter",Fr(!1)),Bl(a,"VCenter",Fr(!1)),Bl(a,512,function(e,t){var n=8!=t.biff&&t.biff?2:4,r=$t(2*n+6);return r.write_shift(n,e.s.r),r.write_shift(n,e.e.r+1),r.write_shift(2,e.s.c),r.write_shift(2,e.e.c+1),r.write_shift(2,0),r}(d,t)),c&&(i["!links"]=[]);for(var m=d.s.r;m<=d.e.r;++m){h=Gt(m);for(var g=d.s.c;g<=d.e.c;++g){m===d.s.r&&(f[g]=Kt(g)),r=f[g]+h;var y=u?(i[m]||[])[g]:i[r];y&&(Pl(a,y,m,g,t),c&&y.l&&i["!links"].push([r,y.l]))}}var b=l.CodeName||l.name||s;return c&&Bl(a,"Window2",function(e){var t=$t(18),n=1718;return e&&e.RTL&&(n|=64),t.write_shift(2,n),t.write_shift(4,0),t.write_shift(4,64),t.write_shift(4,0),t.write_shift(4,0),t}((o.Views||[])[0])),c&&(i["!merges"]||[]).length&&Bl(a,"MergeCells",function(e){var t=$t(2+8*e.length);t.write_shift(2,e.length);for(var n=0;n255||i.e.r>16383){if(r.WTF)throw new Error("Range "+(t["!ref"]||"A1")+" exceeds format limit A1:IV16384");i.e.c=Math.min(i.e.c,255),i.e.r=Math.min(i.e.c,16383),a=Zt(i)}for(var u=i.s.r;u<=i.e.r;++u){o=Gt(u);for(var c=i.s.c;c<=i.e.c;++c){u===i.s.r&&(l[c]=Kt(c)),a=l[c]+o;var h=s?(t[u]||[])[c]:t[a];h&&$l(e,h,u,c)}}}(r,e.Sheets[e.SheetNames[a]],0,n),Bl(r,10),r.end()}(e,t)}throw new Error("invalid type "+n.bookType+" for BIFF")}var Ul=function(){function e(e,t){var n=t||{},r=n.dense?[]:{},a=(e=e.replace(//g,"")).match(/");var s=e.match(/<\/table/i),i=a.index,o=s&&s.index||e.length,l=function(e,t,n){if(ie||"string"==typeof t)return e.split(t);for(var r=e.split(t),a=[r[0]],s=1;s"),a.push(r[s]);return a}(e.slice(i,o),/(:?]*>)/i),u=-1,c=0,h=0,f=0,d={s:{r:1e7,c:1e7},e:{r:0,c:0}},p=[];for(i=0;i/i);for(o=0;o"))>-1;)v=v.slice(w+1);for(var _=0;_")));f=k.colspan?+k.colspan:1,((h=+k.rowspan)>1||f>1)&&p.push({s:{r:u,c},e:{r:u+(h||1)-1,c:c+f-1}});var E=k.t||"";if(v.length){if(v=je(v),d.s.r>u&&(d.s.r=u),d.e.rc&&(d.s.c=c),d.e.cn||a[u].s.c>i||a[u].e.r1&&(d.rowspan=o),l>1&&(d.colspan=l),d.t=h&&h.t||"z",r.editable&&(f=''+f+""),d.id=(r.id||"sjs")+"-"+c,"z"!=d.t&&(d.v=h.v,null!=h.z&&(d.z=h.z)),s.push(Ze("td",f,d))}}return""+s.join("")+""}function n(e,t,n){return[].join("")+""}var r='SheetJS Table Export',a="";return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,_row:t,BEGIN:r,END:a,_preamble:n,from_sheet:function(e,s){var i=s||{},o=null!=i.header?i.header:r,l=null!=i.footer?i.footer:a,u=[o],c=Jt(e["!ref"]);i.dense=Array.isArray(e),u.push(n(0,0,i));for(var h=c.s.r;h<=c.e.r;++h)u.push(t(e,c,h,i));return u.push("
"+l),u.join("")}}}();function Vl(e,t,n){var r=n||{},a=0,s=0;if(null!=r.origin)if("number"==typeof r.origin)a=r.origin;else{var i="string"==typeof r.origin?Xt(r.origin):r.origin;a=i.r,s=i.c}var o=t.getElementsByTagName("tr"),l=Math.min(r.sheetRows||1e7,o.length),u={s:{r:0,c:0},e:{r:a,c:s}};if(e["!ref"]){var c=Jt(e["!ref"]);u.s.r=Math.min(u.s.r,c.s.r),u.s.c=Math.min(u.s.c,c.s.c),u.e.r=Math.max(u.e.r,c.e.r),u.e.c=Math.max(u.e.c,c.e.c),-1==a&&(u.e.r=a=c.e.r+1)}var h=[],f=0,d=e["!rows"]||(e["!rows"]=[]),p=0,m=0,g=0,y=0,b=0,v=0;for(e["!cols"]||(e["!cols"]=[]);p1||v>1)&&h.push({s:{r:m+a,c:y+s},e:{r:m+a+(b||1)-1,c:y+s+(v||1)-1}});var S={t:"s",v:k},N=x.getAttribute("t")||"";null!=k&&(0==k.length?S.t=N||"z":r.raw||0==k.trim().length||"s"==N||("TRUE"===k?S={t:"b",v:!0}:"FALSE"===k?S={t:"b",v:!1}:isNaN(re(k))?isNaN(ae(k).getDate())||(S={t:"d",v:Q(k)},r.cellDates||(S={t:"n",v:H(S.v)}),S.z=r.dateNF||D._table[14]):S={t:"n",v:re(k)})),void 0===S.z&&null!=E&&(S.z=E),r.dense?(e[m+a]||(e[m+a]=[]),e[m+a][y+s]=S):e[Yt({c:y+s,r:m+a})]=S,u.e.c=l&&(e["!fullref"]=Zt((u.e.r=o.length-p+m-1+a,u))),e}function jl(e,t){return Vl((t||{}).dense?[]:{},e,t)}function Hl(e){var t="",n=function(e){return e.ownerDocument.defaultView&&"function"==typeof e.ownerDocument.defaultView.getComputedStyle?e.ownerDocument.defaultView.getComputedStyle:"function"==typeof getComputedStyle?getComputedStyle:null}(e);return n&&(t=n(e).getPropertyValue("display")),t||(t=e.style.display),"none"===t}var Gl,ql=(Gl={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']},function(e,t){var n,r,a,s,i,o,l,u=t||{},c=gl(e),h=[],f={name:""},d="",p=0,m={},g=[],y=u.dense?[]:{},b={value:""},v="",w=0,_=[],x=-1,k=-1,E={s:{r:1e6,c:1e7},e:{r:0,c:0}},C=0,S={},N=[],I={},D=[],A=1,T=1,R=[],F={Names:[]},O={},B=["",""],M=[],$={},P="",L=0,z=!1,W=!1,U=0;for(yl.lastIndex=0,c=c.replace(//gm,"").replace(//gm,"");i=yl.exec(c);)switch(i[3]=i[3].replace(/_.*$/,"")){case"table":case"工作表":"/"===i[1]?(E.e.c>=E.s.c&&E.e.r>=E.s.r?y["!ref"]=Zt(E):y["!ref"]="A1:A1",u.sheetRows>0&&u.sheetRows<=E.e.r&&(y["!fullref"]=y["!ref"],E.e.r=u.sheetRows-1,y["!ref"]=Zt(E)),N.length&&(y["!merges"]=N),D.length&&(y["!rows"]=D),a.name=a["名称"]||a.name,"undefined"!=typeof JSON&&JSON.stringify(a),g.push(a.name),m[a.name]=y,W=!1):"/"!==i[0].charAt(i[0].length-2)&&(a=we(i[0],!1),x=k=-1,E.s.r=E.s.c=1e7,E.e.r=E.e.c=0,y=u.dense?[]:{},N=[],D=[],W=!0);break;case"table-row-group":"/"===i[1]?--C:++C;break;case"table-row":case"行":if("/"===i[1]){x+=A,A=1;break}if((s=we(i[0],!1))["行号"]?x=s["行号"]-1:-1==x&&(x=0),(A=+s["number-rows-repeated"]||1)<10)for(U=0;U0&&(D[x+U]={level:C});k=-1;break;case"covered-table-cell":"/"!==i[1]&&++k,u.sheetStubs&&(u.dense?(y[x]||(y[x]=[]),y[x][k]={t:"z"}):y[Yt({r:x,c:k})]={t:"z"}),v="",_=[];break;case"table-cell":case"数据":if("/"===i[0].charAt(i[0].length-2))++k,b=we(i[0],!1),T=parseInt(b["number-columns-repeated"]||"1",10),o={t:"z",v:null},b.formula&&0!=u.cellFormula&&(o.f=Qi(Se(b.formula))),"string"==(b["数据类型"]||b["value-type"])&&(o.t="s",o.v=Se(b["string-value"]||""),u.dense?(y[x]||(y[x]=[]),y[x][k]=o):y[Yt({r:x,c:k})]=o),k+=T-1;else if("/"!==i[1]){T=1;var V=A?x+A-1:x;if(++k>E.e.c&&(E.e.c=k),kE.e.r&&(E.e.r=V),M=[],$={},o={t:(b=we(i[0],!1))["数据类型"]||b["value-type"],v:null},u.cellFormula)if(b.formula&&(b.formula=Se(b.formula)),b["number-matrix-columns-spanned"]&&b["number-matrix-rows-spanned"]&&(I={s:{r:x,c:k},e:{r:x+(parseInt(b["number-matrix-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-matrix-columns-spanned"],10)||0)-1}},o.F=Zt(I),R.push([I,o.F])),b.formula)o.f=Qi(b.formula);else for(U=0;U=R[U][0].s.r&&x<=R[U][0].e.r&&k>=R[U][0].s.c&&k<=R[U][0].e.c&&(o.F=R[U][1]);switch((b["number-columns-spanned"]||b["number-rows-spanned"])&&(I={s:{r:x,c:k},e:{r:x+(parseInt(b["number-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-columns-spanned"],10)||0)-1}},N.push(I)),b["number-columns-repeated"]&&(T=parseInt(b["number-columns-repeated"],10)),o.t){case"boolean":o.t="b",o.v=Oe(b["boolean-value"]);break;case"float":case"percentage":case"currency":o.t="n",o.v=parseFloat(b.value);break;case"date":o.t="d",o.v=Q(b["date-value"]),u.cellDates||(o.t="n",o.v=H(o.v)),o.z="m/d/yy";break;case"time":o.t="n",o.v=Y(b["time-value"])/86400;break;case"number":o.t="n",o.v=parseFloat(b["数据数值"]);break;default:if("string"!==o.t&&"text"!==o.t&&o.t)throw new Error("Unsupported value type "+o.t);o.t="s",null!=b["string-value"]&&(v=Se(b["string-value"]),_=[])}}else{if(z=!1,"s"===o.t&&(o.v=v||"",_.length&&(o.R=_),z=0==w),O.Target&&(o.l=O),M.length>0&&(o.c=M,M=[]),v&&!1!==u.cellText&&(o.w=v),z&&(o.t="z",delete o.v),(!z||u.sheetStubs)&&!(u.sheetRows&&u.sheetRows<=x))for(var j=0;j0;)y[x+j][k+T]=te(o);else for(y[Yt({r:x+j,c:k})]=o;--T>0;)y[Yt({r:x+j,c:k+T})]=te(o);E.e.c<=k&&(E.e.c=k)}k+=(T=parseInt(b["number-columns-repeated"]||"1",10))-1,T=0,o={},v="",_=[]}O={};break;case"document":case"document-content":case"电子表格文档":case"spreadsheet":case"主体":case"scripts":case"styles":case"font-face-decls":case"master-styles":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!0]);break;case"annotation":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n;$.t=v,_.length&&($.R=_),$.a=P,M.push($)}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);P="",L=0,v="",w=0,_=[];break;case"creator":"/"===i[1]?P=c.slice(L,i.index):L=i.index+i[0].length;break;case"meta":case"元数据":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);v="",w=0,_=[];break;case"scientific-number":case"currency-symbol":case"currency-style":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if("/"===i[1]){if(S[f.name]=d,(n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&(d="",f=we(i[0],!1),h.push([i[3],!0]));break;case"script":case"libraries":case"automatic-styles":break;case"default-style":case"page-layout":case"style":case"map":case"font-face":case"paragraph-properties":case"table-properties":case"table-column-properties":case"table-row-properties":case"table-cell-properties":break;case"number":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"fraction":break;case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"boolean-style":case"boolean":case"text-style":break;case"text":if("/>"===i[0].slice(-2))break;if("/"===i[1])switch(h[h.length-1][0]){case"number-style":case"date-style":case"time-style":d+=c.slice(p,i.index)}else p=i.index+i[0].length;break;case"named-range":B=eo((r=we(i[0],!1))["cell-range-address"]);var G={Name:r.name,Ref:B[0]+"!"+B[1]};W&&(G.Sheet=g.length),F.Names.push(G);break;case"text-content":case"text-properties":case"embedded-text":break;case"body":case"电子表格":case"forms":case"table-column":case"table-header-rows":case"table-rows":case"table-column-group":case"table-header-columns":case"table-columns":case"null-date":case"graphic-properties":case"calculation-settings":case"named-expressions":case"label-range":case"label-ranges":case"named-expression":case"sort":case"sort-by":case"sort-groups":case"tab":case"line-break":case"span":break;case"p":case"文本串":if(["master-styles"].indexOf(h[h.length-1][0])>-1)break;if("/"!==i[1]||b&&b["string-value"])we(i[0],!1),w=i.index+i[0].length;else{var q=(l=void 0,l=c.slice(w,i.index).replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(//g," ").replace(//g,(function(e,t){return Array(parseInt(t,10)+1).join(" ")})).replace(/]*\/>/g,"\t").replace(//g,"\n"),[Se(l.replace(/<[^>]*>/g,""))]);v=(v.length>0?v+"\n":"")+q[0]}break;case"s":break;case"database-range":if("/"===i[1])break;try{m[(B=eo(we(i[0])["target-range-address"]))[0]]["!autofilter"]={ref:B[1]}}catch(e){}break;case"date":case"object":break;case"title":case"标题":case"desc":case"binary-data":case"table-source":case"scenario":case"iteration":case"content-validations":case"content-validation":case"help-message":case"error-message":case"database-ranges":case"filter":case"filter-and":case"filter-or":case"filter-condition":case"list-level-style-bullet":case"list-level-style-number":case"list-level-properties":break;case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":case"event-listener":break;case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":case"config-item":case"page-number":case"page-count":case"time":case"cell-range-source":case"detective":case"operation":case"highlighted-range":break;case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":case"rect":break;case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":case"properties":case"property":break;case"a":if("/"!==i[1]){if(!(O=we(i[0],!1)).href)break;O.Target=O.href,delete O.href,"#"==O.Target.charAt(0)&&O.Target.indexOf(".")>-1&&(B=eo(O.Target.slice(1)),O.Target="#"+B[0]+"!"+B[1])}break;case"table-protection":case"data-pilot-grand-total":case"office-document-common-attrs":break;default:switch(i[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"表:":case"字:":break;default:if(u.WTF)throw new Error(i)}}var K={Sheets:m,SheetNames:g,Workbook:F};return u.bookSheets&&delete K.Sheets,K});function Kl(e,t){t=t||{};var n=!!le(e,"objectdata");n&&function(e,t){for(var n,r,a=gl(e);n=yl.exec(a);)switch(n[3]){case"manifest":break;case"file-entry":if("/"==(r=we(n[0],!1)).path&&"application/vnd.oasis.opendocument.spreadsheet"!==r.type)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(t&&t.WTF)throw n}}(ce(e,"META-INF/manifest.xml"),t);var r=he(e,"content.xml");if(!r)throw new Error("Missing content.xml in "+(n?"ODS":"UOF")+" file");var a=ql(n?r:Be(r),t);return le(e,"meta.xml")&&(a.Props=ar(ce(e,"meta.xml"))),a}function Xl(e,t){return ql(e,t)}var Yl=function(){var e="";return function(){return me+e}}(),Jl=function(){var e=" \n",t=function(t,n,r){var a=[];a.push(' \n');var s=0,i=0,o=Jt(t["!ref"]),l=t["!merges"]||[],u=0,c=Array.isArray(t);for(s=0;s\n");for(;s<=o.e.r;++s){for(a.push(" \n"),i=0;ii||l[u].s.r>s||l[u].e.c\n");else{var p=Yt({r:s,c:i}),m=c?(t[s]||[])[i]:t[p];if(m&&m.f&&(f["table:formula"]=De(("of:="+m.f.replace(ni,"$1[.$2$3$4$5]").replace(/\]:\[/g,":")).replace(/;/g,"|").replace(/,/g,";")),m.F&&m.F.slice(0,p.length)==p)){var g=Jt(m.F);f["table:number-matrix-columns-spanned"]=g.e.c-g.s.c+1,f["table:number-matrix-rows-spanned"]=g.e.r-g.s.r+1}if(m){switch(m.t){case"b":d=m.v?"TRUE":"FALSE",f["office:value-type"]="boolean",f["office:boolean-value"]=m.v?"true":"false";break;case"n":d=m.w||String(m.v||0),f["office:value-type"]="float",f["office:value"]=m.v||0;break;case"s":case"str":d=null==m.v?"":m.v,f["office:value-type"]="string";break;case"d":d=m.w||Q(m.v).toISOString(),f["office:value-type"]="date",f["office:date-value"]=Q(m.v).toISOString(),f["table:style-name"]="ce1";break;default:a.push(e);continue}var y=De(d).replace(/ +/g,(function(e){return''})).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"");if(m.l&&m.l.Target){var b=m.l.Target;y=Ze("text:a",y,{"xlink:href":b="#"==b.charAt(0)?"#"+b.slice(1).replace(/\./,"!"):b})}a.push(" "+Ze("table:table-cell",Ze("text:p",y,{}),f)+"\n")}else a.push(e)}}a.push(" \n")}return a.push(" \n"),a.join("")};return function(e,n){var r=[me],a=Je({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"}),s=Je({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});"fods"==n.bookType?r.push("\n"):r.push("\n"),function(e){e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" /\n"),e.push(' \n'),e.push(" /\n"),e.push(" \n"),e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" \n"),e.push(' \n'),e.push(" \n")}(r),r.push(" \n"),r.push(" \n");for(var i=0;i!=e.SheetNames.length;++i)r.push(t(e.Sheets[e.SheetNames[i]],e,i));return r.push(" \n"),r.push(" \n"),"fods"==n.bookType?r.push(""):r.push(""),r.join("")}}();function Zl(e,t){if("fods"==t.bookType)return Jl(e,t);var n=de(),r="",a=[],s=[];return fe(n,r="mimetype","application/vnd.oasis.opendocument.spreadsheet"),fe(n,r="content.xml",Jl(e,t)),a.push([r,"text/xml"]),s.push([r,"ContentFile"]),fe(n,r="styles.xml",Yl(e,t)),a.push([r,"text/xml"]),s.push([r,"StylesFile"]),fe(n,r="meta.xml",tr()),a.push([r,"text/xml"]),s.push([r,"MetadataFile"]),fe(n,r="manifest.rdf",function(e){var t=[me];t.push('\n');for(var n=0;n!=e.length;++n)t.push(Qn(e[n][0],e[n][1])),t.push(("",[' \n',' \n'," \n"].join("")));return t.push(Qn("","Document","pkg")),t.push(""),t.join("")}(s)),a.push([r,"application/rdf+xml"]),fe(n,r="META-INF/manifest.xml",function(e){var t=[me];t.push('\n'),t.push(' \n');for(var n=0;n\n');return t.push(""),t.join("")}(a)),n}function Ql(e){return function(t,n){var r=function(e,t){if(!t)return 0;var n=e.SheetNames.indexOf(t);if(-1==n)throw new Error("Sheet not found: "+t);return n}(t,n.sheet);return e.from_sheet(t.Sheets[t.SheetNames[r]],n,t)}}var eu=Ql(Ul),tu=Ql({from_sheet:Ru}),nu=Ql(void 0!==Ia?Ia:{}),ru=Ql(void 0!==Da?Da:{}),au=Ql(void 0!==Ta?Ta:{}),su=Ql(void 0!==is?is:{}),iu=Ql({from_sheet:Fu}),ou=Ql(void 0!==Na?Na:{}),lu=Ql(void 0!==Aa?Aa:{});function uu(e){return function(t){for(var n=0;n!=e.length;++n){var r=e[n];void 0===t[r[0]]&&(t[r[0]]=r[1]),"n"===r[2]&&(t[r[0]]=Number(t[r[0]]))}}}var cu=function(e){uu([["cellNF",!1],["cellHTML",!0],["cellFormula",!0],["cellStyles",!1],["cellText",!0],["cellDates",!1],["sheetStubs",!1],["sheetRows",0,"n"],["bookDeps",!1],["bookSheets",!1],["bookProps",!1],["bookFiles",!1],["bookVBA",!1],["password",""],["WTF",!1]])(e)},hu=uu([["cellDates",!1],["bookSST",!1],["bookType","xlsx"],["compression",!1],["WTF",!1]]);function fu(e,t,n,r,a,s,i,o,l,u,c,h){try{s[r]=Kn(he(e,n,!0),t);var f,d=ce(e,t);switch(o){case"sheet":f=rl(d,t,a,l,s[r],u,c,h);break;case"chart":if(!(f=function(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s={"!type":"chart","!drawel":null,"!rel":""},i=[],o=!1;return Pt(e,(function(e,r,l){switch(l){case 550:s["!rel"]=e;break;case 651:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:o=!0;break;case 36:o=!1;break;case 37:i.push(r);break;case 38:i.pop();break;default:if((r||"").indexOf("Begin")>0)i.push(r);else if((r||"").indexOf("End")>0)i.pop();else if(!o||t.WTF)throw new Error("Unexpected record "+l+" "+r)}}),t),r["!id"][s["!rel"]]&&(s["!drawel"]=r["!id"][s["!rel"]]),s}(e,r,n,a,s):function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s,i={"!type":"chart","!drawel":null,"!rel":""},o=e.match(bo);return o&&wo(o[0],0,a,n),(s=e.match(/drawing r:id="(.*?)"/))&&(i["!rel"]=s[1]),r["!id"][i["!rel"]]&&(i["!drawel"]=r["!id"][i["!rel"]]),i}(e,0,n,a,s)}(d,t,a,l,s[r],u))||!f["!drawel"])break;var p=pe(f["!drawel"].Target,t),m=qn(p),g=pe(function(e,t){if(!e)return"??";var n=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return t["!id"][n].Target}(he(e,p,!0),Kn(he(e,m,!0),p)),p),y=qn(g);f=function(e,t,n,r,a,s){var i=s||{"!type":"chart"};if(!e)return s;var o=0,l=0,u="A",c={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach((function(e){var t=function(e){var t,n=[],r=e.match(/^/);(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach((function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);t&&(n[+t[1]]=r?+t[2]:t[2])}));var a=Se((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(e.match(/(.*?)<\/c:f>/gm)||[]).forEach((function(e){t=e.replace(/<.*?>/g,"")})),[n,a,t]}(e);c.s.r=c.s.c=0,c.e.c=o,u=Kt(o),t[0].forEach((function(e,n){i[u+Gt(n)]={t:"n",v:e,z:t[1]},l=n})),c.e.r0&&(i["!ref"]=Zt(c)),i}(he(e,g,!0),0,0,Kn(he(e,y,!0),g),0,f);break;case"macro":v=t,s[r],v.slice(-4),f={"!type":"macro"};break;case"dialog":f=function(e,t,n,r,a,s,i,o){return t.slice(-4),{"!type":"dialog"}}(0,t,0,0,s[r]);break;default:throw new Error("Unrecognized sheet type "+o)}i[r]=f;var b=[];s&&s[r]&&z(s[r]).forEach((function(n){if(s[r][n].Type==Gn.CMNT){var a=pe(s[r][n].Target,t);if(!(b=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=[],a={},s=!1;return Pt(e,(function(e,i,o){switch(o){case 632:r.push(e);break;case 635:a=e;break;case 637:a.t=e.t,a.h=e.h,a.r=e.r;break;case 636:if(a.author=r[a.iauthor],delete a.iauthor,t.sheetRows&&a.rfx&&t.sheetRows<=a.rfx.r)break;a.t||(a.t=""),delete a.rfx,n.push(a);break;case 3072:break;case 35:s=!0;break;case 36:s=!1;break;case 37:case 38:break;default:if((i||"").indexOf("Begin")>0);else if((i||"").indexOf("End")>0);else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+i)}})),n}(e,n):function(e,t){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var n=[],r=[],a=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);a&&a[1]&&a[1].split(/<\/\w*:?author>/).forEach((function(e){if(""!==e&&""!==e.trim()){var t=e.match(/<(?:\w+:)?author[^>]*>(.*)/);t&&n.push(t[1])}}));var s=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return s&&s[1]&&s[1].split(/<\/\w*:?comment>/).forEach((function(e){if(""!==e&&""!==e.trim()){var a=e.match(/<(?:\w+:)?comment[^>]*>/);if(a){var s=we(a[0]),i={author:s.authorId&&n[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid},o=Xt(s.ref);if(!(t.sheetRows&&t.sheetRows<=o.r)){var l=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),u=!!l&&!!l[1]&&Pa(l[1])||{r:"",t:"",h:""};i.r=u.r,""==u.r&&(u.t=u.h=""),i.t=u.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),t.cellHTML&&(i.h=u.h),r.push(i)}}}})),r}(e,n)}(ce(e,a,!0),a,l))||!b.length)return;!function(e,t){var n,r=Array.isArray(e);t.forEach((function(t){var a=Xt(t.ref);if(r?(e[a.r]||(e[a.r]=[]),n=e[a.r][a.c]):n=e[t.ref],!n){n={t:"z"},r?e[a.r][a.c]=n:e[t.ref]=n;var s=Qt(e["!ref"]||"BDWGO1000001:A1");s.s.r>a.r&&(s.s.r=a.r),s.e.ra.c&&(s.s.c=a.c),s.e.c0?t.calcchains[0]:"",t.sst=t.strs.length>0?t.strs[0]:"",t.style=t.styles.length>0?t.styles[0]:"",t.defaults=n,delete t.calcchains,t}(he(e,"[Content_Types].xml")),i=!1;if(0===s.workbooks.length&&ce(e,r="xl/workbook.xml",!0)&&s.workbooks.push(r),0===s.workbooks.length){if(!ce(e,r="xl/workbook.bin",!0))throw new Error("Could not find workbook");s.workbooks.push(r),i=!0}"bin"==s.workbooks[0].slice(-3)&&(i=!0);var o={},l={};if(!t.bookSheets&&!t.bookProps){if(to=[],s.sst)try{to=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=!1;return Pt(e,(function(e,a,s){switch(s){case 159:n.Count=e[0],n.Unique=e[1];break;case 19:n.push(e);break;case 160:return!0;case 35:r=!0;break;case 36:r=!1;break;default:if(a.indexOf("Begin")>0||a.indexOf("End"),!r||t.WTF)throw new Error("Unexpected record "+s+" "+a)}})),n}(e,n):function(e,t){var n=[],r="";if(!e)return n;var a=e.match(La);if(a){r=a[2].replace(za,"").split(Wa);for(var s=0;s!=r.length;++s){var i=Pa(r[s].trim(),t);null!=i&&(n[n.length]=i)}a=we(a[1]),n.Count=a.count,n.Unique=a.uniqueCount}return n}(e,n)}(ce(e,du(s.sst)),s.sst,t)}catch(e){if(t.WTF)throw e}t.cellStyles&&s.themes.length&&(o=function(e,t,n){return Hs(e,n)}(he(e,s.themes[0].replace(/^\//,""),!0)||"",s.themes[0],t)),s.style&&(l=function(e,t,n,r){return".bin"===t.slice(-4)?function(e,t,n){var r={NumberFmt:[]};for(var a in D._table)r.NumberFmt[a]=D._table[a];r.CellXf=[],r.Fonts=[];var s=[],i=!1;return Pt(e,(function(e,a,o){switch(o){case 44:r.NumberFmt[e[0]]=e[1],D.load(e[1],e[0]);break;case 43:r.Fonts.push(e),null!=e.color.theme&&t&&t.themeElements&&t.themeElements.clrScheme&&(e.color.rgb=ls(t.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0));break;case 1025:case 45:case 46:break;case 47:"BrtBeginCellXFs"==s[s.length-1]&&r.CellXf.push(e);break;case 48:case 507:case 572:case 475:break;case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 35:i=!0;break;case 36:i=!1;break;case 37:s.push(a),i=!0;break;case 38:s.pop(),i=!1;break;default:if((a||"").indexOf("Begin")>0)s.push(a);else if((a||"").indexOf("End")>0)s.pop();else if(!i||n.WTF&&"BrtACBegin"!=s[s.length-1])throw new Error("Unexpected record "+o+" "+a)}})),r}(e,n,r):Ss(e,n,r)}(ce(e,du(s.style)),s.style,o,t))}s.links.map((function(n){try{return Kn(he(e,qn(du(n))),n),function(e,t,n,r){if(".bin"===n.slice(-4))return function(e,t,n,r){if(!e)return e;var a=r||{},s=!1;Pt(e,(function(e,t,n){switch(n){case 359:case 363:case 364:case 366:case 367:case 368:case 369:case 370:case 371:case 472:case 577:case 578:case 579:case 580:case 581:case 582:case 583:case 584:case 585:case 586:case 587:break;case 35:s=!0;break;case 36:s=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!s||a.WTF)throw new Error("Unexpected record "+n.toString(16)+" "+t)}}),a)}(e,0,0,r)}(ce(e,du(n)),0,n,t)}catch(e){}}));var u=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},r=[],a=!1;t||(t={}),t.biff=12;var s=[],i=[[]];return i.SheetNames=[],i.XTI=[],Pt(e,(function(e,o,l){switch(l){case 156:i.SheetNames.push(e.name),n.Sheets.push(e);break;case 153:n.WBProps=e;break;case 39:null!=e.Sheet&&(t.SID=e.Sheet),e.Ref=zi(e.Ptg,0,null,i,t),delete t.SID,delete e.Ptg,s.push(e);break;case 1036:break;case 357:case 358:case 355:case 667:i[0].length?i.push([l,e]):i[0]=[l,e],i[i.length-1].XTI=[];break;case 362:0===i.length&&(i[0]=[],i[0].XTI=[]),i[i.length-1].XTI=i[i.length-1].XTI.concat(e),i.XTI=i.XTI.concat(e);break;case 361:break;case 3072:case 3073:case 2071:case 534:case 677:case 158:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:break;case 35:r.push(o),a=!0;break;case 36:r.pop(),a=!1;break;case 37:r.push(o),a=!0;break;case 38:r.pop(),a=!1;break;case 16:break;default:if((o||"").indexOf("Begin")>0);else if((o||"").indexOf("End")>0);else if(!a||t.WTF&&"BrtACBegin"!=r[r.length-1]&&"BrtFRTBegin"!=r[r.length-1])throw new Error("Unexpected record "+l+" "+o)}}),t),Xo(n),n.Names=s,n.supbooks=i,n}(e,n):function(e,t){if(!e)throw new Error("Could not find file");var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},Names:[],xmlns:""},r=!1,a="xmlns",s={},i=0;if(e.replace(ye,(function(o,l){var u=we(o);switch(_e(u[0])){case"":break;case"":case"":case"":break;case"":Vo.forEach((function(e){if(null!=u[e[0]])switch(e[2]){case"bool":n.WBProps[e[0]]=Oe(u[e[0]]);break;case"int":n.WBProps[e[0]]=parseInt(u[e[0]],10);break;default:n.WBProps[e[0]]=u[e[0]]}})),u.codeName&&(n.WBProps.CodeName=Be(u.codeName));break;case"":case"":break;case"":case"":break;case"":delete u[0],n.WBView.push(u);break;case"":break;case"":case"":break;case"":break;case"":case"":case"":case"":break;case"":case"":r=!1;break;case"":s.Ref=Se(Be(e.slice(i,l))),n.Names.push(s);break;case"":break;case"":delete u[0],n.CalcPr=u;break;case"":case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":case"":case"":case"":break;case"":r=!1;break;case"":r=!0;break;case"":r=!1;break;case"]*>([\\s\\S]*?)"));s&&s.length>0&&(r[n[1]]=s[1])}})),r.HeadingPairs&&r.TitlesOfParts&&lr(r.HeadingPairs,r.TitlesOfParts,t,n)}(h,c,t));var f={};t.bookSheets&&!t.bookProps||0!==s.custprops.length&&(h=he(e,du(s.custprops[0]),!0))&&(f=function(e,t){var n={},r="",a=e.match(cr);if(a)for(var s=0;s!=a.length;++s){var i=a[s],o=we(i);switch(o[0]){case"":r=null;break;default:if(0===i.indexOf(""),u=l[0].slice(4),c=l[1];switch(u){case"lpstr":case"bstr":case"lpwstr":n[r]=Se(c);break;case"bool":n[r]=Oe(c);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":n[r]=parseInt(c,10);break;case"r4":case"r8":case"decimal":n[r]=parseFloat(c);break;case"filetime":case"date":n[r]=Q(c);break;case"cy":case"error":n[r]=Se(c);break;default:if("/"==u.slice(-1))break;t.WTF&&"undefined"!=typeof console&&console.warn("Unexpected",i,u,l)}}else if("0&&(n=c.SheetNames),t.bookProps&&(d.Props=c,d.Custprops=f),t.bookSheets&&void 0!==n&&(d.SheetNames=n),t.bookSheets?d.SheetNames:t.bookProps))return d;n={};var p,m={};t.bookDeps&&s.calcchain&&(p=ce(e,du(s.calcchain)),m=".bin"===s.calcchain.slice(-4)?function(e,t,n){var r=[];return Pt(e,(function(e,t,n){switch(n){case 63:r.push(e);break;default:if((t||"").indexOf("Begin")>0);else if(!((t||"").indexOf("End")>0))throw new Error("Unexpected record "+n+" "+t)}})),r}(p):function(e){var t=[];if(!e)return t;var n=1;return(e.match(ye)||[]).forEach((function(e){var r=we(e);switch(r[0]){case"":case"":break;case"-1?"sheet":Gn.CS&&n==Gn.CS?"chart":Gn.DS&&n==Gn.DS?"dialog":Gn.MS&&n==Gn.MS?"macro":n&&n.length?n:"sheet")];var n}))}catch(e){return null}return e&&0!==e.length?e:null}(C,u.Sheets));var S=ce(e,"xl/worksheets/sheet.xml",!0)?1:0;e:for(b=0;b!=c.Worksheets;++b){var N="sheet";if(C&&C[b]?(g="xl/"+C[b][1].replace(/[\/]?xl\//,""),le(e,g)||(g=C[b][1]),le(e,g)||(g=E.replace(/_rels\/.*$/,"")+C[b][1]),N=C[b][2]):g=(g="xl/worksheets/sheet"+(b+1-S)+"."+x).replace(/sheet0\./,"sheet."),y=g.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),t&&null!=t.sheets)switch(typeof t.sheets){case"number":if(b!=t.sheets)continue e;break;case"string":if(c.SheetNames[b].toLowerCase()!=t.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(t.sheets)){for(var I=!1,T=0;T!=t.sheets.length;++T)"number"==typeof t.sheets[T]&&t.sheets[T]==b&&(I=1),"string"==typeof t.sheets[T]&&t.sheets[T].toLowerCase()==c.SheetNames[b].toLowerCase()&&(I=1);if(!I)continue e}}fu(e,g,y,c.SheetNames[b],b,v,n,N,t,u,o,l)}return d={Directory:s,Workbook:u,Props:c,Custprops:f,Deps:m,Sheets:n,SheetNames:c.SheetNames,Strings:to,Styles:l,Themes:o,SSF:D.get_table()},t&&t.bookFiles&&(d.keys=a,d.files=e.files),t&&t.bookVBA&&(s.vba.length>0?d.vbaraw=ce(e,du(s.vba[0]),!0):s.defaults&&"application/vnd.ms-office.vbaProject"===s.defaults.bin&&(d.vbaraw=ce(e,"xl/vbaProject.bin",!0))),d}function mu(e,t){var n=t||{},r="Workbook",a=M.find(e,r);try{if(r="/!DataSpaces/Version",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(function(e){var t={};t.id=e.read_shift(0,"lpp4"),t.R=qa(e,4),t.U=qa(e,4),t.W=qa(e,4)}(a.content),r="/!DataSpaces/DataSpaceMap",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var s=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(Ka(e));return t}(a.content);if(1!==s.length||1!==s[0].comps.length||0!==s[0].comps[0].t||"StrongEncryptionDataSpace"!==s[0].name||"EncryptedPackage"!==s[0].comps[0].v)throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var i=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(e.read_shift(0,"lpp4"));return t}(a.content);if(1!=i.length||"StrongEncryptionTransform"!=i[0])throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);!function(e){var t=function(e){var t={};return e.read_shift(4),e.l+=4,t.id=e.read_shift(0,"lpp4"),t.name=e.read_shift(0,"lpp4"),t.R=qa(e,4),t.U=qa(e,4),t.W=qa(e,4),t}(e);if(t.ename=e.read_shift(0,"8lpp4"),t.blksz=e.read_shift(4),t.cmode=e.read_shift(4),4!=e.read_shift(4))throw new Error("Bad !Primary record")}(a.content)}catch(e){}if(r="/EncryptionInfo",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var o=function(e){var t=qa(e);switch(t.Minor){case 2:return[t.Minor,Ja(e)];case 3:return[t.Minor,Za()];case 4:return[t.Minor,Qa(e)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}(a.content);if(r="/EncryptedPackage",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(4==o[0]&&"undefined"!=typeof decrypt_agile)return decrypt_agile(o[1],a.content,n.password||"",n);if(2==o[0]&&"undefined"!=typeof decrypt_std76)return decrypt_std76(o[1],a.content,n.password||"",n);throw new Error("File is password-protected")}function gu(e,t){if(Ks=1024,"ods"==t.bookType)return Zl(e,t);e&&!e.SSF&&(e.SSF=D.get_table()),e&&e.SSF&&(A(D),D.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,ro?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var n="xlsb"==t.bookType?"bin":"xml",r=ei.indexOf(t.bookType)>-1,a={workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""};hu(t=t||{});var s=de(),i="",o=0;if(t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),fe(s,i="docProps/core.xml",function(e,t){var n=t||{},r=[me,sr],a={};if(!e&&!n.Props)return r.join("");e&&(null!=e.CreatedDate&&ir("dcterms:created","string"==typeof e.CreatedDate?e.CreatedDate:Qe(e.CreatedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a),null!=e.ModifiedDate&&ir("dcterms:modified","string"==typeof e.ModifiedDate?e.ModifiedDate:Qe(e.ModifiedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a));for(var s=0;s!=nr.length;++s){var i=nr[s],o=n.Props&&null!=n.Props[i[1]]?n.Props[i[1]]:e?e[i[1]]:null;!0===o?o="1":!1===o?o="0":"number"==typeof o&&(o=String(o)),null!=o&&ir(i[0],o,null,r,a)}return r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(e.Props,t)),a.coreprops.push(i),Zn(t.rels,2,i,Gn.CORE_PROPS),i="docProps/app.xml",e.Props&&e.Props.SheetNames);else if(e.Workbook&&e.Workbook.Sheets){for(var l=[],u=0;uWorksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"})),t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map((function(e){return""+De(e)+""})).join(""),{size:e.Worksheets,baseType:"lpstr"})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Props)),a.extprops.push(i),Zn(t.rels,3,i,Gn.EXT_PROPS),e.Custprops!==e.Props&&z(e.Custprops||{}).length>0&&(fe(s,i="docProps/custom.xml",function(e){var t=[me,hr];if(!e)return t.join("");var n=1;return z(e).forEach((function(r){++n,t[t.length]=Ze("property",function(e,t){switch(typeof e){case"string":var n=Ze("vt:lpwstr",De(e));return n.replace(/"/g,"_x0022_");case"number":return Ze((0|e)==e?"vt:i4":"vt:r8",De(String(e)));case"boolean":return Ze("vt:bool",e?"true":"false")}if(e instanceof Date)return Ze("vt:filetime",Qe(e));throw new Error("Unable to serialize "+e)}(e[r]),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:n,name:De(r)})})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Custprops)),a.custprops.push(i),Zn(t.rels,4,i,Gn.CUST_PROPS)),o=1;o<=e.SheetNames.length;++o){var c={"!id":{}},h=e.Sheets[e.SheetNames[o-1]];switch((h||{})["!type"]||"sheet"){case"chart":default:fe(s,i="xl/worksheets/sheet"+o+"."+n,sl(o-1,i,t,e,c)),a.sheets.push(i),Zn(t.wbrels,-1,"worksheets/sheet"+o+"."+n,Gn.WS[0])}if(h){var f=h["!comments"],d=!1;if(f&&f.length>0){var p="xl/comments"+o+"."+n;fe(s,p,ol(f,p,t)),a.comments.push(p),Zn(c,-1,"../comments"+o+"."+n,Gn.CMNT),d=!0}h["!legacy"]&&d&&fe(s,"xl/drawings/vmlDrawing"+o+".vml",Xs(o,h["!comments"])),delete h["!comments"],delete h["!legacy"]}c["!id"].rId1&&fe(s,qn(i),Yn(c))}return null!=t.Strings&&t.Strings.length>0&&(fe(s,i="xl/sharedStrings."+n,il(t.Strings,i,t)),a.strs.push(i),Zn(t.wbrels,-1,"sharedStrings."+n,Gn.SST)),fe(s,i="xl/workbook."+n,al(e,i,t)),a.workbooks.push(i),Zn(t.rels,1,i,Gn.WB),fe(s,i="xl/theme/theme1.xml",Gs(e.Themes,t)),a.themes.push(i),Zn(t.wbrels,-1,"theme/theme1.xml",Gn.THEME),fe(s,i="xl/styles."+n,function(e,t,n){return(".bin"===t.slice(-4)?Ms:Is)(e,n)}(e,i,t)),a.styles.push(i),Zn(t.wbrels,-1,"styles."+n,Gn.STY),e.vbaraw&&r&&(fe(s,i="xl/vbaProject.bin",e.vbaraw),a.vba.push(i),Zn(t.wbrels,-1,"vbaProject.bin",Gn.VBA)),fe(s,"[Content_Types].xml",function(e,t){var n,r=[];r[r.length]=me,r[r.length]=jn,r=r.concat(Hn);var a=function(a){e[a]&&e[a].length>0&&(n=e[a][0],r[r.length]=Ze("Override",null,{PartName:("/"==n[0]?"":"/")+n,ContentType:Un[a][t.bookType||"xlsx"]}))},s=function(n){(e[n]||[]).forEach((function(e){r[r.length]=Ze("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Un[n][t.bookType||"xlsx"]})}))},i=function(t){(e[t]||[]).forEach((function(e){r[r.length]=Ze("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Vn[t][0]})}))};return a("workbooks"),s("sheets"),s("charts"),i("themes"),["strs","styles"].forEach(a),["coreprops","extprops","custprops"].forEach(i),i("vba"),i("comments"),i("drawings"),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(a,t)),fe(s,"_rels/.rels",Yn(t.rels)),fe(s,"xl/_rels/workbook."+n+".rels",Yn(t.wbrels)),delete t.revssf,delete t.ssf,s}function yu(e,t){var n="";switch((t||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":n=g.decode(e.slice(0,12));break;case"binary":n=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(t&&t.type||"undefined"))}return[n.charCodeAt(0),n.charCodeAt(1),n.charCodeAt(2),n.charCodeAt(3),n.charCodeAt(4),n.charCodeAt(5),n.charCodeAt(6),n.charCodeAt(7)]}function bu(e,t){var n=0;e:for(;n=2&&0===n[3])return Ra.to_workbook(r,s);break;case 3:case 131:case 139:case 140:return Na.to_workbook(r,s);case 123:if(92===n[1]&&114===n[2]&&116===n[3])return is.to_workbook(r,s);break;case 10:case 13:case 32:return function(e,t){var n="",r=yu(e,t);switch(t.type){case"base64":n=g.decode(e);break;case"binary":n=e;break;case"buffer":n=e.toString("binary");break;case"array":n=ee(e);break;default:throw new Error("Unrecognized type "+t.type)}return 239==r[0]&&187==r[1]&&191==r[2]&&(n=Be(n)),bu(n,t)}(r,s)}return Na.versions.indexOf(n[0])>-1&&n[2]<=12&&n[3]<=31?Na.to_workbook(r,s):vu(e,r,s,a)}function _u(e,t){var n=t||{};return n.type="file",wu(e,n)}function xu(e,t){switch(t.type){case"base64":case"binary":break;case"buffer":case"array":t.type="";break;case"file":return L(t.file,M.write(e,{type:y?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+"' files");default:throw new Error("Unrecognized type "+t.type)}return M.write(e,t)}function ku(e,t,n){n||(n="");var r=n+e;switch(t.type){case"base64":return g.encode(Me(r));case"binary":return Me(r);case"string":return e;case"file":return L(t.file,r,"utf8");case"buffer":return y?b(r,"utf8"):ku(r,{type:"binary"}).split("").map((function(e){return e.charCodeAt(0)}))}throw new Error("Unrecognized type "+t.type)}function Eu(e,t){switch(t.type){case"string":case"base64":case"binary":for(var n="",r=0;r22)throw new Error("Bad Code Name: Worksheet"+i)}}));for(var s=0;s-1||null!=s[i][1]&&o.push(s[i]);a.length&&M.utils.cfb_add(t,"/SummaryInformation",Ar(a,Il,Bn,Tn)),(r.length||o.length)&&M.utils.cfb_add(t,"/DocumentSummaryInformation",Ar(r,Dl,On,An,o.length?o:null,"05d5cdd59c2e1b10939708002b2cf9ae"))}(e,r),8==n.biff&&e.vbaraw&&function(e,t){t.FullPaths.forEach((function(n,r){if(0!=r){var a=n.replace(/[^\/]*[\/]/,"/_VBA_PROJECT_CUR/");"/"!==a.slice(-1)&&M.utils.cfb_add(e,a,t.FileIndex[r].content)}}))}(r,M.read(e.vbaraw,{type:"string"==typeof e.vbaraw?"binary":"buffer"})),r}(e,n),n)}(e,n);case"xlsx":case"xlsm":case"xlam":case"xlsb":case"ods":return function(e,t){var n=t||{},r=gu(e,n),a={};if(n.compression&&(a.compression="DEFLATE"),n.password)a.type=y?"nodebuffer":"string";else switch(n.type){case"base64":a.type="base64";break;case"binary":a.type="string";break;case"string":throw new Error("'string' output type invalid for '"+n.bookType+"' files");case"buffer":case"file":a.type=y?"nodebuffer":"string";break;default:throw new Error("Unrecognized type "+n.type)}var s=r.FullPaths?M.write(r,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[a.type]||a.type}):r.generate(a);return n.password&&"undefined"!=typeof encrypt_agile?xu(encrypt_agile(s,n.password),n):"file"===n.type?L(n.file,s):"string"==n.type?Be(s):s}(e,n);default:throw new Error("Unrecognized bookType |"+n.bookType+"|")}}function Su(e){if(!e.bookType){var t=e.file.slice(e.file.lastIndexOf(".")).toLowerCase();t.match(/^\.[a-z]+$/)&&(e.bookType=t.slice(1)),e.bookType={xls:"biff8",htm:"html",slk:"sylk",socialcalc:"eth",Sh33tJS:"WTF"}[e.bookType]||e.bookType}}function Nu(e,t,n){var r=n||{};return r.type="file",r.file=t,Su(r),Cu(e,r)}function Iu(e,t,n,r,a,s,i,o){var l=Gt(n),u=o.defval,c=o.raw||!Object.prototype.hasOwnProperty.call(o,"raw"),h=!0,f=1===a?[]:{};if(1!==a)if(Object.defineProperty)try{Object.defineProperty(f,"__rowNum__",{value:n,enumerable:!1})}catch(e){f.__rowNum__=n}else f.__rowNum__=n;if(!i||e[n])for(var d=t.s.c;d<=t.e.c;++d){var p=i?e[n][d]:e[r[d]+l];if(void 0!==p&&void 0!==p.t){var m=p.v;switch(p.t){case"z":if(null==m)break;continue;case"e":m=void 0;break;case"s":case"d":case"b":case"n":break;default:throw new Error("unrecognized type "+p.t)}if(null!=s[d]){if(null==m)if(void 0!==u)f[s[d]]=u;else{if(!c||null!==m)continue;f[s[d]]=null}else f[s[d]]=c||o.rawNumbers&&"n"==p.t?m:en(p,m,o);null!=m&&(h=!1)}}else{if(void 0===u)continue;null!=s[d]&&(f[s[d]]=u)}}return{row:f,isempty:h}}function Du(e,t){if(null==e||null==e["!ref"])return[];var n={t:"n",v:0},r=0,a=1,s=[],i=0,o="",l={s:{r:0,c:0},e:{r:0,c:0}},u=t||{},c=null!=u.range?u.range:e["!ref"];switch(1===u.header?r=1:"A"===u.header?r=2:Array.isArray(u.header)?r=3:null==u.header&&(r=0),typeof c){case"string":l=Qt(c);break;case"number":(l=Qt(e["!ref"])).s.r=c;break;default:l=c}r>0&&(a=0);var h=Gt(l.s.r),f=[],d=[],p=0,m=0,g=Array.isArray(e),y=l.s.r,b=0,v=0;for(g&&!e[y]&&(e[y]=[]),b=l.s.c;b<=l.e.c;++b)switch(f[b]=Kt(b),n=g?e[y][b]:e[f[b]+h],r){case 1:s[b]=b-l.s.c;break;case 2:s[b]=f[b];break;case 3:s[b]=u.header[b-l.s.c];break;default:for(null==n&&(n={w:"__EMPTY",t:"s"}),o=i=en(n,null,u),m=0,v=0;v=0&&(c='"'+c.replace(Au,'""')+'"'));u.push(c)}return!1===o.blankrows&&l?null:u.join(i)}function Ru(e,t){var n=[],r=null==t?{}:t;if(null==e||null==e["!ref"])return"";var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=Kt(p));for(var m=a.s.r;m<=a.e.r;++m)(d[m]||{}).hidden||null!=(c=Tu(e,a,m,h,i,l,s,r))&&(r.strip&&(c=c.replace(u,"")),n.push(c+o));return delete r.dense,n.join("")}function Fu(e,t){t||(t={}),t.FS="\t",t.RS="\n";var n=Ru(e,t);if("undefined"==typeof cptable||"string"==t.type)return n;var r=cptable.utils.encode(1200,n,"str");return String.fromCharCode(255)+String.fromCharCode(254)+r}function Ou(e){var t,n="",r="";if(null==e||null==e["!ref"])return[];var a,s=Qt(e["!ref"]),i="",o=[],l=[],u=Array.isArray(e);for(a=s.s.c;a<=s.e.c;++a)o[a]=Kt(a);for(var c=s.s.r;c<=s.e.r;++c)for(i=Gt(c),a=s.s.c;a<=s.e.c;++a)if(n=o[a]+i,r="",void 0!==(t=u?(e[c]||[])[a]:e[n])){if(null!=t.F){if(n=t.F,!t.f)continue;r=t.f,-1==n.indexOf(":")&&(n=n+":"+n)}if(null!=t.f)r=t.f;else{if("z"==t.t)continue;if("n"==t.t&&null!=t.v)r=""+t.v;else if("b"==t.t)r=t.v?"TRUE":"FALSE";else if(void 0!==t.w)r="'"+t.w;else{if(void 0===t.v)continue;r="s"==t.t?"'"+t.v:""+t.v}}l[l.length]=n+"="+r}return l}function Bu(e,t,n){var r,a=n||{},s=+!a.skipHeader,i=e||{},o=0,l=0;if(i&&null!=a.origin)if("number"==typeof a.origin)o=a.origin;else{var u="string"==typeof a.origin?Xt(a.origin):a.origin;o=u.r,l=u.c}var c={s:{c:0,r:0},e:{c:l,r:o+t.length-1+s}};if(i["!ref"]){var h=Qt(i["!ref"]);c.e.c=Math.max(c.e.c,h.e.c),c.e.r=Math.max(c.e.r,h.e.r),-1==o&&(o=h.e.r+1,c.e.r=o+t.length-1+s)}else-1==o&&(o=0,c.e.r=t.length-1+s);var f=a.header||[],d=0;t.forEach((function(e,t){z(e).forEach((function(n){-1==(d=f.indexOf(n))&&(f[d=f.length]=n);var u=e[n],c="z",h="",p=Yt({c:l+d,r:o+t+s});r=$u.sheet_get_cell(i,p),!u||"object"!=typeof u||u instanceof Date?("number"==typeof u?c="n":"boolean"==typeof u?c="b":"string"==typeof u?c="s":u instanceof Date&&(c="d",a.cellDates||(c="n",u=H(u)),h=a.dateNF||D._table[14]),r?(r.t=c,r.v=u,delete r.w,delete r.R,h&&(r.z=h)):i[p]=r={t:c,v:u},h&&(r.z=h)):i[p]=u}))})),c.e.c=Math.max(c.e.c,l+f.length-1);var p=Gt(o);if(s)for(d=0;d=65535)throw new Error("Too many worksheets");if(Jo(n),e.SheetNames.indexOf(n)>=0)throw new Error("Worksheet with name |"+n+"| already exists!");e.SheetNames.push(n),e.Sheets[n]=t},e.book_set_sheet_visibility=function(e,n,r){t(e,"Workbook",{}),t(e.Workbook,"Sheets",[]);var a=function(e,t){if("number"==typeof t){if(t>=0&&e.SheetNames.length>t)return t;throw new Error("Cannot find sheet # "+t)}if("string"==typeof t){var n=e.SheetNames.indexOf(t);if(n>-1)return n;throw new Error("Cannot find sheet name |"+t+"|")}throw new Error("Cannot find sheet |"+t+"|")}(e,n);switch(t(e.Workbook.Sheets,a,{}),r){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+r)}e.Workbook.Sheets[a].Hidden=r},[["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]].forEach((function(t){e.consts[t[0]]=t[1]})),e.cell_set_number_format=function(e,t){return e.z=t,e},e.cell_set_hyperlink=function(e,t,n){return t?(e.l={Target:t},n&&(e.l.Tooltip=n)):delete e.l,e},e.cell_set_internal_link=function(t,n,r){return e.cell_set_hyperlink(t,"#"+n,r)},e.cell_add_comment=function(e,t,n){e.c||(e.c=[]),e.c.push({t,a:n||"SheetJS"})},e.sheet_set_array_formula=function(e,t,r){for(var a="string"!=typeof t?t:Qt(t),s="string"==typeof t?t:Zt(t),i=a.s.r;i<=a.e.r;++i)for(var o=a.s.c;o<=a.e.c;++o){var l=n(e,i,o);l.t="n",l.F=s,delete l.v,i==a.s.r&&o==a.s.c&&(l.f=r)}return e}}($u),y&&(Mu=n(791).Readable,t.stream={to_json:function(e,t){var n=Mu({objectMode:!0});if(null==e||null==e["!ref"])return n.push(null),n;var r={t:"n",v:0},a=0,s=1,i=[],o=0,l="",u={s:{r:0,c:0},e:{r:0,c:0}},c=t||{},h=null!=c.range?c.range:e["!ref"];switch(1===c.header?a=1:"A"===c.header?a=2:Array.isArray(c.header)&&(a=3),typeof h){case"string":u=Qt(h);break;case"number":(u=Qt(e["!ref"])).s.r=h;break;default:u=h}a>0&&(s=0);var f=Gt(u.s.r),d=[],p=0,m=Array.isArray(e),g=u.s.r,y=0,b=0;for(m&&!e[g]&&(e[g]=[]),y=u.s.c;y<=u.e.c;++y)switch(d[y]=Kt(y),r=m?e[g][y]:e[d[y]+f],a){case 1:i[y]=y-u.s.c;break;case 2:i[y]=d[y];break;case 3:i[y]=c.header[y-u.s.c];break;default:for(null==r&&(r={w:"__EMPTY",t:"s"}),l=o=en(r,null,c),p=0,b=0;bu.e.r)return n.push(null);for(;g<=u.e.r;){var t=Iu(e,u,g,d,a,i,m,c);if(++g,!1===t.isempty||(1===a?!1!==c.blankrows:c.blankrows)){n.push(t.row);break}}},n},to_html:function(e,t){var n=Mu(),r=t||{},a=null!=r.header?r.header:Ul.BEGIN,s=null!=r.footer?r.footer:Ul.END;n.push(a);var i=Jt(e["!ref"]);r.dense=Array.isArray(e),n.push(Ul._preamble(e,i,r));var o=i.s.r,l=!1;return n._read=function(){if(o>i.e.r)return l||(l=!0,n.push(""+s)),n.push(null);for(;o<=i.e.r;){n.push(Ul._row(e,i,o,r)),++o;break}},n},to_csv:function(e,t){var n=Mu(),r=null==t?{}:t;if(null==e||null==e["!ref"])return n.push(null),n;var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=Kt(p));var m=a.s.r,g=!1;return n._read=function(){if(!g)return g=!0,n.push("\ufeff");for(;m<=a.e.r;)if(++m,!(d[m-1]||{}).hidden&&null!=(c=Tu(e,a,m-1,h,i,l,s,r))){r.strip&&(c=c.replace(u,"")),n.push(c+o);break}return m>a.e.r?n.push(null):void 0},n}}),t.parse_xlscfb=Al,t.parse_zip=pu,t.read=wu,t.readFile=_u,t.readFileSync=_u,t.write=Cu,t.writeFile=Nu,t.writeFileSync=Nu,t.writeFileAsync=function(e,t,n,r){var a=n||{};a.type="file",a.file=e,Su(a),a.type="buffer";var s=r;return s instanceof Function||(s=n),B.writeFile(e,Cu(t,a),s)},t.utils=$u,t.SSF=D,void 0!==M&&(t.CFB=M)}(t)},3906:()=>{},2993:()=>{},8352:()=>{},791:()=>{},4589:()=>{},1758:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.amdD=function(){throw new Error("define cannot be used indirect")},__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(2476)})(); +var dfd;dfd=(()=>{var __webpack_modules__={7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,s,i){try{var o=e[s](i),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,s){var i=e.apply(n,r);function o(e){t(i,a,s,o,l,"next",e)}function l(e){t(i,a,s,o,l,"throw",e)}o(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},3913:e=>{function t(e,t){for(var n=0;n{var r=n(8331);function a(t,n,s){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=a=Reflect.get:e.exports=a=function(e,t,n){var a=r(e,t);if(a){var s=Object.getOwnPropertyDescriptor(a,t);return s.get?s.get.call(n):s.value}},a(t,n,s||t)}e.exports=a},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,s=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(a)throw s}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),s=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||s(e,t)||i()}},8331:(e,t,n)=>{var r=n(9754);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},319:(e,t,n)=>{var r=n(3646),a=n(6860),s=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||s(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},7757:(e,t,n)=>{e.exports=n(5666)},6908:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Abs:()=>He,Acos:()=>Ge,Acosh:()=>Xe,AdadeltaOptimizer:()=>Lo,AdagradOptimizer:()=>Wo,AdamOptimizer:()=>jo,AdamaxOptimizer:()=>Yo,Add:()=>Ke,AddN:()=>qe,All:()=>Ye,Any:()=>Je,ArgMax:()=>Ze,ArgMin:()=>Qe,Asin:()=>et,Asinh:()=>tt,Atan:()=>nt,Atan2:()=>at,Atanh:()=>rt,AvgPool:()=>st,AvgPool3D:()=>ot,AvgPool3DGrad:()=>lt,AvgPoolGrad:()=>it,BatchMatMul:()=>ut,BatchToSpaceND:()=>ct,Bincount:()=>ht,BroadcastTo:()=>ft,Callback:()=>nx,CallbackList:()=>sy,Cast:()=>dt,Ceil:()=>pt,ClipByValue:()=>mt,Complex:()=>gt,ComplexAbs:()=>yt,Concat:()=>bt,Conv2D:()=>vt,Conv2DBackpropFilter:()=>wt,Conv2DBackpropInput:()=>_t,Conv3D:()=>xt,Conv3DBackpropFilterV2:()=>kt,Conv3DBackpropInputV2:()=>Et,Cos:()=>Ct,Cosh:()=>St,CropAndResize:()=>It,Cumsum:()=>Nt,CustomCallback:()=>ly,DataStorage:()=>V,DenseBincount:()=>At,DepthToSpace:()=>Dt,DepthwiseConv2dNative:()=>Tt,DepthwiseConv2dNativeBackpropFilter:()=>Ft,DepthwiseConv2dNativeBackpropInput:()=>Rt,Diag:()=>Ot,Dilation2D:()=>Bt,Dilation2DBackpropFilter:()=>$t,Dilation2DBackpropInput:()=>Mt,ENV:()=>Ue,EarlyStopping:()=>sx,Elu:()=>Lt,EluGrad:()=>zt,Environment:()=>Le,Equal:()=>Ut,Erf:()=>Wt,Exp:()=>Vt,ExpandDims:()=>jt,Expm1:()=>Ht,FFT:()=>Gt,Fill:()=>Xt,FlipLeftRight:()=>Kt,Floor:()=>qt,FloorDiv:()=>Yt,FromPixels:()=>$r,FusedBatchNorm:()=>Jt,FusedConv2D:()=>zr,FusedDepthwiseConv2D:()=>Wr,GatherNd:()=>Qt,GatherV2:()=>Zt,GraphModel:()=>vk,Greater:()=>en,GreaterEqual:()=>tn,History:()=>oy,IFFT:()=>rn,Identity:()=>nn,Imag:()=>an,InputSpec:()=>Gg,IsFinite:()=>sn,IsInf:()=>on,IsNan:()=>ln,KernelBackend:()=>j,LRN:()=>vn,LRNGrad:()=>wn,LayerVariable:()=>Vg,LayersModel:()=>db,LeakyRelu:()=>un,Less:()=>cn,LessEqual:()=>hn,LinSpace:()=>fn,Log:()=>dn,Log1p:()=>pn,LogSoftmax:()=>bn,LogicalAnd:()=>mn,LogicalNot:()=>gn,LogicalOr:()=>yn,Max:()=>_n,MaxPool:()=>kn,MaxPool3D:()=>Cn,MaxPool3DGrad:()=>Sn,MaxPoolGrad:()=>En,MaxPoolWithArgmax:()=>Nn,Maximum:()=>xn,Mean:()=>In,Min:()=>An,Minimum:()=>Dn,MirrorPad:()=>Tn,Mod:()=>Fn,MomentumOptimizer:()=>Zo,Multinomial:()=>Rn,Multiply:()=>On,Neg:()=>Bn,NonMaxSuppressionV3:()=>$n,NonMaxSuppressionV4:()=>Pn,NonMaxSuppressionV5:()=>Ln,NotEqual:()=>Mn,OP_SCOPE_SUFFIX:()=>Xa,OneHot:()=>Wn,OnesLike:()=>zn,Optimizer:()=>Po,Pack:()=>Un,PadV2:()=>Vn,Pool:()=>jn,Pow:()=>Hn,Prelu:()=>Gn,Prod:()=>Xn,RMSPropOptimizer:()=>Qo,RNN:()=>yv,Range:()=>Kn,Rank:()=>wa,Real:()=>qn,RealDiv:()=>Pt,Reciprocal:()=>Yn,Reduction:()=>vf,Relu:()=>Jn,Relu6:()=>rr,Reshape:()=>Zn,ResizeBilinear:()=>tr,ResizeBilinearGrad:()=>nr,ResizeNearestNeighbor:()=>Qn,ResizeNearestNeighborGrad:()=>er,Reverse:()=>ar,RotateWithOffset:()=>Pr,Round:()=>sr,Rsqrt:()=>ir,SGDOptimizer:()=>Jo,ScatterNd:()=>or,Select:()=>lr,Selu:()=>ur,Sequential:()=>gb,Sigmoid:()=>pr,Sign:()=>dr,Sin:()=>hr,Sinh:()=>fr,Slice:()=>cr,Softmax:()=>wr,Softplus:()=>mr,SpaceToBatchND:()=>br,SparseToDense:()=>Er,SplitV:()=>vr,Sqrt:()=>gr,Square:()=>xr,SquaredDifference:()=>_r,Step:()=>Mr,StridedSlice:()=>Cr,Sub:()=>kr,Sum:()=>yr,SymbolicTensor:()=>Xg,Tan:()=>Sr,Tanh:()=>Nr,Tensor:()=>ya,TensorBuffer:()=>da,Tile:()=>Ir,TopK:()=>Ar,Transform:()=>Dr,Transpose:()=>Tr,Unique:()=>Fr,Unpack:()=>Rr,UnsortedSegmentSum:()=>Or,Variable:()=>va,ZerosLike:()=>Br,_FusedMatMul:()=>Lr,abs:()=>Ho,acos:()=>el,acosh:()=>tl,add:()=>ko,addN:()=>nl,all:()=>rl,any:()=>al,argMax:()=>sl,argMin:()=>il,asin:()=>ol,asinh:()=>ll,atan:()=>ul,atan2:()=>cl,atanh:()=>hl,avgPool:()=>Sl,avgPool3d:()=>Nl,backend:()=>_o,backend_util:()=>g,basicLSTMCell:()=>Fl,batchNorm:()=>Ol,batchNorm2d:()=>Bl,batchNorm3d:()=>Ml,batchNorm4d:()=>$l,batchToSpaceND:()=>Rl,bincount:()=>Pl,booleanMaskAsync:()=>Eh,broadcastTo:()=>Ll,browser:()=>l,buffer:()=>Vs,callbacks:()=>ix,cast:()=>js,ceil:()=>zl,clipByValue:()=>Wl,clone:()=>Hs,complex:()=>qa,concat:()=>Il,concat1d:()=>Ul,concat2d:()=>Vl,concat3d:()=>jl,concat4d:()=>Hl,constraints:()=>b,conv1d:()=>Xl,conv2d:()=>Gl,conv2dTranspose:()=>ql,conv3d:()=>Yl,conv3dTranspose:()=>Zl,copyRegisteredKernels:()=>Jr,cos:()=>Ql,cosh:()=>eu,cosineWindow:()=>Rh,cumsum:()=>tu,customGrad:()=>Bo,data:()=>W,denseBincount:()=>nu,deprecationWarn:()=>ao,depthToSpace:()=>ru,depthwiseConv2d:()=>au,deregisterOp:()=>fx,device_util:()=>s,diag:()=>su,dilation2d:()=>iu,disableDeprecationWarnings:()=>ro,dispose:()=>co,disposeVariables:()=>so,div:()=>Co,divNoNan:()=>uu,dot:()=>cu,dropout:()=>Th,elu:()=>hu,enableDebugMode:()=>no,enableProdMode:()=>to,enclosingPowerOfTwo:()=>Fh,engine:()=>io,env:()=>ze,equal:()=>ou,erf:()=>fu,exp:()=>du,expandDims:()=>pu,expm1:()=>mu,eye:()=>yu,fft:()=>eh,fill:()=>zo,findBackend:()=>bo,findBackendFactory:()=>vo,floor:()=>bu,floorDiv:()=>Eo,fused:()=>p,gather:()=>vu,gatherND:()=>Dh,gather_util:()=>u,getBackend:()=>go,getGradient:()=>Hr,getKernel:()=>jr,getKernelsForBackend:()=>Gr,grad:()=>Do,grads:()=>To,greater:()=>wu,greaterEqual:()=>_u,ifft:()=>th,imag:()=>xu,image:()=>Tf,inTopKAsync:()=>Oh,initializers:()=>v,input:()=>wb,io:()=>i,irfft:()=>nh,isFinite:()=>ku,isInf:()=>Eu,isNaN:()=>Cu,keep:()=>ho,kernel_impls:()=>y,layers:()=>w,leakyRelu:()=>Su,less:()=>Nu,lessEqual:()=>Iu,linalg:()=>Ff,linspace:()=>Au,loadGraphModel:()=>wk,loadLayersModel:()=>vb,localResponseNormalization:()=>Du,log:()=>Tu,log1p:()=>Fu,logSigmoid:()=>Bu,logSoftmax:()=>Pu,logSumExp:()=>Xu,logicalAnd:()=>Ku,logicalNot:()=>qu,logicalOr:()=>Yu,logicalXor:()=>Ju,losses:()=>Rf,matMul:()=>ci,math:()=>o,max:()=>Mu,maxPool:()=>Zu,maxPool3d:()=>Qu,maxPoolWithArgmax:()=>ec,maximum:()=>qo,mean:()=>tc,memory:()=>oo,metrics:()=>_,min:()=>nc,minimum:()=>rc,mirrorPad:()=>ac,mod:()=>sc,model:()=>yb,models:()=>x,moments:()=>ic,movingAverage:()=>Nh,mul:()=>So,multiRNNCell:()=>oc,multinomial:()=>lc,neg:()=>Ru,nextFrame:()=>$f,norm:()=>Sh,notEqual:()=>uc,oneHot:()=>hi,ones:()=>hc,onesLike:()=>fc,op:()=>Ka,outerProduct:()=>dc,pad:()=>pc,pad1d:()=>mc,pad2d:()=>gc,pad3d:()=>yc,pad4d:()=>bc,pool:()=>wc,pow:()=>Uo,prelu:()=>_c,print:()=>Gs,prod:()=>xc,profile:()=>lo,rand:()=>kc,randomGamma:()=>Ic,randomNormal:()=>Ac,randomUniform:()=>Dc,range:()=>Tc,ready:()=>mo,real:()=>Fc,reciprocal:()=>Rc,registerBackend:()=>wo,registerCallbackConstructor:()=>_b,registerGradient:()=>Kr,registerKernel:()=>Xr,registerOp:()=>cx,regularizers:()=>k,relu:()=>Oc,relu6:()=>Bc,removeBackend:()=>yo,reshape:()=>Cl,reverse:()=>Mc,reverse1d:()=>$c,reverse2d:()=>Pc,reverse3d:()=>Lc,reverse4d:()=>zc,rfft:()=>ah,round:()=>Wc,rsqrt:()=>Uc,scalar:()=>$o,scatterND:()=>Ih,scatter_util:()=>c,selu:()=>Vc,separableConv2d:()=>jc,sequential:()=>bb,serialization:()=>f,setBackend:()=>po,setPlatform:()=>xo,setdiff1dAsync:()=>Hc,sigmoid:()=>Al,sign:()=>Gc,signal:()=>Df,sin:()=>Xc,sinh:()=>Kc,slice:()=>Dl,slice1d:()=>qc,slice2d:()=>Yc,slice3d:()=>Jc,slice4d:()=>Zc,slice_util:()=>h,softmax:()=>Qc,softplus:()=>Ou,spaceToBatchND:()=>vc,sparseToDense:()=>Ah,spectral:()=>Af,split:()=>rh,sqrt:()=>No,square:()=>Io,squaredDifference:()=>sh,squeeze:()=>ih,stack:()=>oh,step:()=>lh,stridedSlice:()=>uh,sub:()=>Vo,sum:()=>$u,sumOutType:()=>Na,tan:()=>ch,tanh:()=>Tl,tensor:()=>Ja,tensor1d:()=>hh,tensor2d:()=>fh,tensor3d:()=>pi,tensor4d:()=>dh,tensor5d:()=>ph,tensor6d:()=>mh,tensor_util:()=>a,test_util:()=>d,tidy:()=>uo,tile:()=>gu,time:()=>fo,topk:()=>gh,train:()=>Bf,transpose:()=>fi,truncatedNormal:()=>yh,unique:()=>bh,unregisterGradient:()=>Yr,unregisterKernel:()=>qr,unsortedSegmentSum:()=>vh,unstack:()=>wh,upcastType:()=>Sa,util:()=>r,valueAndGrad:()=>Fo,valueAndGrads:()=>Ro,variable:()=>_h,variableGrads:()=>Oo,version:()=>vP,version_converter:()=>_k,version_core:()=>eo,version_layers:()=>Uy,where:()=>lu,whereAsync:()=>kh,zeros:()=>cc,zerosLike:()=>Ao});var r={};n.r(r),n.d(r,{arraysEqual:()=>se,assert:()=>Q,assertNonNegativeIntegerDimensions:()=>Be,assertNonNull:()=>te,assertShapesMatch:()=>ee,bytesFromStringArray:()=>xe,bytesPerElement:()=>_e,checkConversionForErrors:()=>ye,clamp:()=>K,computeStrides:()=>Ae,createScalarValue:()=>Qr,createShuffledIndices:()=>ue,decodeString:()=>aa,distSquared:()=>Z,encodeString:()=>ra,fetch:()=>na,flatten:()=>ne,getArrayFromDType:()=>ge,getTypedArrayFromDType:()=>me,hasEncodingLoss:()=>ve,indexToLoc:()=>$e,inferDtype:()=>Se,inferFromImplicitShape:()=>fe,isBoolean:()=>Ee,isFunction:()=>Ne,isInt:()=>ie,isNumber:()=>Ce,isPromise:()=>Pe,isScalarShape:()=>ae,isString:()=>ke,isTypedArray:()=>we,isValidDtype:()=>be,locToIndex:()=>Me,makeOnesTypedArray:()=>Fe,makeZerosNestedTypedArray:()=>Oe,makeZerosTypedArray:()=>Re,nearestDivisor:()=>Ie,nearestLargerEven:()=>q,now:()=>ta,parseAxisParam:()=>de,randUniform:()=>J,repeatedTry:()=>he,rightPad:()=>ce,shuffle:()=>G,shuffleCombo:()=>X,sizeFromShape:()=>re,sizeToSquarishShape:()=>le,squeezeShape:()=>pe,sum:()=>Y,tanh:()=>oe,toNestedArray:()=>Te,toTypedArray:()=>ea});var a={};n.r(a),n.d(a,{assertTypesMatch:()=>Aa,getTensorsInContainer:()=>Ta,isTensorInList:()=>Da,makeTypesMatch:()=>Ia});var s={};n.r(s),n.d(s,{isBrowser:()=>za,isMobile:()=>La});var i={};n.r(i),n.d(i,{browserFiles:()=>Ys,browserHTTPRequest:()=>si,concatenateArrayBuffers:()=>as,copyModel:()=>Ls,decodeWeights:()=>es,encodeWeights:()=>Qa,fromMemory:()=>li,getLoadHandlers:()=>fs,getModelArtifactsInfoForJSON:()=>is,getSaveHandlers:()=>hs,http:()=>ai,isHTTPScheme:()=>ni,listModels:()=>$s,loadWeights:()=>Qs,moveModel:()=>zs,registerLoadRouter:()=>cs,registerSaveRouter:()=>us,removeModel:()=>Ps,weightsLoaderFactory:()=>ei,withSaveHandler:()=>ui});var o={};n.r(o),n.d(o,{confusionMatrix:()=>di});var l={};n.r(l),n.d(l,{fromPixels:()=>vi,fromPixelsAsync:()=>yi,toPixels:()=>bi});var u={};n.r(u),n.d(u,{prepareAndValidate:()=>wi});var c={};n.r(c),n.d(c,{calculateShapes:()=>ki,validateInput:()=>xi,validateUpdateShape:()=>_i});var h={};n.r(h),n.d(h,{assertParamsValid:()=>Ei,computeFlatOffset:()=>$i,computeOutShape:()=>Si,getNormalizedAxes:()=>Di,isSliceContinous:()=>Mi,maskToAxes:()=>Ci,parseSliceParams:()=>Pi,sliceInfo:()=>Li,startForAxis:()=>Oi,startIndicesWithElidedDims:()=>Ti,stopForAxis:()=>Bi,stopIndicesWithElidedDims:()=>Fi,stridesForAxis:()=>Ri,stridesWithElidedDims:()=>Ni});var f={};n.r(f),n.d(f,{Serializable:()=>zi,SerializationMap:()=>Wi,registerClass:()=>Ui});var d={};n.r(d),n.d(d,{TEST_EPSILON_FLOAT16:()=>Vi,encodeStrings:()=>Qi,expectArrayBuffersEqual:()=>Zi,expectArraysClose:()=>ji,expectArraysEqual:()=>Ki,expectNumbersClose:()=>qi,expectPromiseToFail:()=>Xi,expectValuesInRange:()=>Ji,testEpsilon:()=>Hi});var p={};n.r(p),n.d(p,{conv2d:()=>zh,depthwiseConv2d:()=>Vh,matMul:()=>jh});var m={};n.r(m),n.d(m,{collectGatherOpShapeInfo:()=>md,computeOutShape:()=>pd,segOpComputeOptimalWindowSize:()=>dd});var g={};n.r(g),n.d(g,{ERF_A1:()=>Jf,ERF_A2:()=>Zf,ERF_A3:()=>Qf,ERF_A4:()=>ed,ERF_A5:()=>td,ERF_P:()=>Yf,PARALLELIZE_THRESHOLD:()=>zf,SELU_SCALE:()=>qf,SELU_SCALEALPHA:()=>Kf,applyActivation:()=>Ph,assertAndGetBroadcastShape:()=>Ko,assertAxesAreInnerMostDims:()=>Vu,assertParamsConsistent:()=>Pf,assignToTypedArray:()=>ud,axesAreInnerMostDims:()=>Lu,calculateShapes:()=>ki,combineLocations:()=>zu,complexWithEvenIndex:()=>id,complexWithOddIndex:()=>od,computeConv2DInfo:()=>ml,computeConv3DInfo:()=>gl,computeDefaultPad:()=>yl,computeDilation2DInfo:()=>fl,computeOptimalWindowSize:()=>Wf,computeOutAndReduceShapes:()=>Wu,computeOutShape:()=>Lf,computePool2DInfo:()=>dl,computePool3DInfo:()=>pl,convertConv2DDataFormat:()=>El,eitherStridesOrDilationsAreOne:()=>kl,expandShapeToKeepDim:()=>Uu,exponent:()=>hd,exponents:()=>cd,fromStringArrayToUint8:()=>yd,fromUint8ToStringArray:()=>gd,getAxesPermutation:()=>ju,getBroadcastDims:()=>Go,getComplexWithIndex:()=>ld,getFusedBiasGradient:()=>$h,getFusedDyActivation:()=>Mh,getImageCenter:()=>Uf,getInnerMostAxes:()=>Gu,getPermuted:()=>jf,getReductionAxes:()=>Xo,getReshaped:()=>Vf,getReshapedPermuted:()=>Hf,getSliceBeginCoords:()=>Gf,getSliceSize:()=>Xf,getUndoAxesPermutation:()=>Hu,log:()=>rd,mergeRealAndImagArrays:()=>ad,prepareAndValidate:()=>wi,prepareSplitSize:()=>fd,segment_util:()=>m,shouldFuse:()=>Lh,slice_util:()=>h,splitRealAndImagArrays:()=>sd,tupleValuesAreOne:()=>xl,upcastType:()=>Sa,validateInput:()=>xi,validateUpdateShape:()=>_i,warn:()=>nd});var y={};n.r(y),n.d(y,{nonMaxSuppressionV3Impl:()=>nf,nonMaxSuppressionV4Impl:()=>rf,nonMaxSuppressionV5Impl:()=>af,whereImpl:()=>xh});var b={};n.r(b),n.d(b,{maxNorm:()=>hm,minMaxNorm:()=>pm,nonNeg:()=>dm,unitNorm:()=>fm});var v={};n.r(v),n.d(v,{constant:()=>_g,glorotNormal:()=>Ig,glorotUniform:()=>Ng,heNormal:()=>Ag,heUniform:()=>Dg,identity:()=>Cg,leCunNormal:()=>Tg,leCunUniform:()=>Fg,ones:()=>wg,orthogonal:()=>Rg,randomNormal:()=>kg,randomUniform:()=>xg,truncatedNormal:()=>Eg,varianceScaling:()=>Sg,zeros:()=>vg});var w={};n.r(w),n.d(w,{Layer:()=>Jg,RNN:()=>yv,RNNCell:()=>bv,activation:()=>$w,add:()=>Gw,alphaDropout:()=>M_,average:()=>Xw,averagePooling1d:()=>n_,averagePooling2d:()=>s_,averagePooling3d:()=>l_,avgPool1d:()=>r_,avgPool2d:()=>i_,avgPool3d:()=>u_,avgPooling1d:()=>a_,avgPooling2d:()=>o_,avgPooling3d:()=>c_,batchNormalization:()=>Qw,bidirectional:()=>I_,concatenate:()=>Kw,conv1d:()=>Aw,conv2d:()=>Dw,conv2dTranspose:()=>Tw,conv3d:()=>Fw,convLstm2d:()=>E_,convLstm2dCell:()=>C_,cropping2D:()=>Ow,dense:()=>Pw,depthwiseConv2d:()=>Mw,dot:()=>Zw,dropout:()=>Lw,elu:()=>kw,embedding:()=>Hw,flatten:()=>Ww,gaussianDropout:()=>B_,gaussianNoise:()=>O_,globalAveragePooling1d:()=>h_,globalAveragePooling2d:()=>f_,globalMaxPool1d:()=>D_,globalMaxPool2d:()=>T_,globalMaxPooling1d:()=>d_,globalMaxPooling2d:()=>p_,gru:()=>b_,gruCell:()=>v_,input:()=>wb,inputLayer:()=>xw,layerNormalization:()=>e_,leakyReLU:()=>Cw,lstm:()=>w_,lstmCell:()=>__,masking:()=>$_,maxPool1d:()=>F_,maxPool2d:()=>R_,maxPooling1d:()=>m_,maxPooling2d:()=>g_,maxPooling3d:()=>y_,maximum:()=>qw,minimum:()=>Yw,multiply:()=>Jw,permute:()=>jw,prelu:()=>Sw,reLU:()=>Ew,repeatVector:()=>Uw,reshape:()=>Vw,rnn:()=>S_,separableConv2d:()=>Rw,simpleRNN:()=>x_,simpleRNNCell:()=>k_,softmax:()=>Nw,spatialDropout1d:()=>zw,stackedRNNCells:()=>N_,thresholdedReLU:()=>Iw,timeDistributed:()=>A_,upSampling2d:()=>Bw,zeroPadding2d:()=>t_});var _={};n.r(_),n.d(_,{MAPE:()=>K_,MSE:()=>J_,binaryAccuracy:()=>P_,binaryCrossentropy:()=>L_,categoricalAccuracy:()=>W_,categoricalCrossentropy:()=>U_,cosineProximity:()=>H_,mape:()=>q_,meanAbsoluteError:()=>G_,meanAbsolutePercentageError:()=>X_,meanSquaredError:()=>Y_,mse:()=>Z_,precision:()=>V_,recall:()=>j_,sparseCategoricalAccuracy:()=>z_});var x={};n.r(x),n.d(x,{modelFromJSON:()=>mb});var k={};n.r(k),n.d(k,{l1:()=>ex,l1l2:()=>Q_,l2:()=>tx});var E={};n.r(E),n.d(E,{json:()=>wx});var C={};n.r(C),n.d(C,{json:()=>_x});var S={};n.r(S),n.d(S,{json:()=>xx});var N={};n.r(N),n.d(N,{json:()=>kx});var I={};n.r(I),n.d(I,{json:()=>Ex});var A={};n.r(A),n.d(A,{json:()=>Cx});var D={};n.r(D),n.d(D,{json:()=>Sx});var T={};n.r(T),n.d(T,{json:()=>Nx});var F={};n.r(F),n.d(F,{json:()=>Ix});var R={};n.r(R),n.d(R,{json:()=>Ax});var O={};n.r(O),n.d(O,{json:()=>Dx});var B={};n.r(B),n.d(B,{json:()=>Tx});var M={};n.r(M),n.d(M,{json:()=>Fx});var $={};n.r($),n.d($,{json:()=>Rx});var P={};n.r(P),n.d(P,{json:()=>Ox});var L={};n.r(L),n.d(L,{json:()=>Bx});var z={};n.r(z),n.d(z,{json:()=>Mx});var W={};n.r(W),n.d(W,{CSVDataset:()=>uE,Dataset:()=>Jk,FileDataSource:()=>_E,TextLineDataset:()=>nE,URLDataSource:()=>xE,array:()=>Qk,csv:()=>kE,func:()=>EE,generator:()=>CE,microphone:()=>NE,version_data:()=>IE,webcam:()=>SE,zip:()=>eE});var U={};n.r(U),n.d(U,{addImpl:()=>aC,bincountImpl:()=>YC,bincountReduceImpl:()=>JC,ceilImpl:()=>eS,concatImpl:()=>iS,expImpl:()=>GS,expm1Impl:()=>JS,floorImpl:()=>bN,gatherV2Impl:()=>NN,greaterImpl:()=>AN,lessImpl:()=>UN,linSpaceImpl:()=>KN,logImpl:()=>YN,maxImpl:()=>hI,maximumImpl:()=>pI,minimumImpl:()=>SI,multiplyImpl:()=>eN,negImpl:()=>MI,notEqualImpl:()=>jI,prodImpl:()=>rA,rangeImpl:()=>sA,rsqrtImpl:()=>yA,simpleAbsImpl:()=>dC,sliceImpl:()=>GC,squaredDifferenceImpl:()=>jA,stridedSliceImpl:()=>qA,subImpl:()=>oN,tileImpl:()=>eD,topKImpl:()=>tD,transposeImpl:()=>wC,uniqueImpl:()=>iD});class V{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class j{refCount(e){return H("refCount")}incRef(e){return H("incRef")}timerAvailable(){return!0}time(e){return H("time")}read(e){return H("read")}readSync(e){return H("readSync")}numDataIds(){return H("numDataIds")}disposeData(e,t){return H("disposeData")}write(e,t,n){return H("write")}move(e,t,n,r,a){return H("move")}memory(){return H("memory")}floatPrecision(){return H("floatPrecision")}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}dispose(){return H("dispose")}}function H(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function G(e){let t=e.length,n=0,r=0;for(;t>0;)r=Math.random()*t|0,t--,n=e[t],e[t]=e[r],e[r]=n}function X(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n,r,a=e.length,s=0;for(;a>0;)s=Math.random()*a|0,a--,n=e[a],r=t[a],e[a]=e[s],t[a]=t[s],e[s]=n,t[s]=r}function K(e,t,n){return Math.max(e,Math.min(t,n))}function q(e){return e%2==0?e:e+1}function Y(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`))}function te(e){Q(null!=e,(()=>"The input to the tensor constructor must be a non-null value."))}function ne(e,t=[],n=!1){if(null==t&&(t=[]),Array.isArray(e)||we(e)&&!n)for(let r=0;r0),n){return new Promise(((r,a)=>{let s=0;const i=()=>{if(e())return void r();s++;const o=t(s);null!=n&&s>=n?a():setTimeout(i,o)};i()}))}function fe(e,t){let n=1,r=-1;for(let t=0;t=0)n*=e[t];else if(-1===e[t]){if(-1!==r)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${r} and dim ${t}`);r=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===r){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===n)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);const a=e.slice();return a[r]=t/n,a}function de(e,t){const n=t.length;return Q((e=null==e?t.map(((e,t)=>t)):[].concat(e)).every((e=>e>=-n&&e`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`)),Q(e.every((e=>ie(e))),(()=>`All values in axis param must be integers but got axis ${e}`)),e.map((e=>e<0?n+e:e))}function pe(e,t){const n=[],r=[],a=null!=t&&Array.isArray(t)&&0===t.length,s=null==t||a?null:de(t,e).sort();let i=0;for(let t=0;tt)&&1===e[t]&&(n.push(e[t]),r.push(t)),s[i]<=t&&i++}1!==e[t]&&(n.push(e[t]),r.push(t))}return{newShape:n,keptDims:r}}function me(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error(`Unknown data type ${e}`);n=new Uint8Array(t)}return n}function ge(e,t){let n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else if("bool"===e)n=new Uint8Array(t);else{if("string"!==e)throw new Error(`Unknown data type ${e}`);n=new Array(t)}return n}function ye(e,t){for(let n=0;nt+=e.length)),t}function ke(e){return"string"==typeof e||e instanceof String}function Ee(e){return"boolean"==typeof e}function Ce(e){return"number"==typeof e}function Se(e){return Array.isArray(e)?Se(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Ce(e)?"float32":ke(e)?"string":Ee(e)?"bool":"float32"}function Ne(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Ie(e,t){for(let n=t;n=0;--r)n[r]=n[r+1]*e[r+1];return n}function De(e,t,n){const r=new Array;if(1===t.length){const a=t[0];for(let t=0;te*t));for(let t=0;te*t));if(0===n)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return De(0,e,t)}function Fe(e,t){const n=Re(e,t);for(let e=0;ee*t),1);if(null==t||"float32"===t)return Te(e,new Float32Array(n));if("int32"===t)return Te(e,new Int32Array(n));if("bool"===t)return Te(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Be(e){e.forEach((t=>{Q(Number.isInteger(t)&&t>=0,(()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`))}))}function Me(e,t,n){if(0===t)return 0;if(1===t)return e[0];let r=e[e.length-1];for(let t=0;t(function(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}(t,n[0],n[1]),n.join("=")))),t}(this.global.location.search);"tfjsflags"in e&&e.tfjsflags.split(",").forEach((e=>{const[t,n]=e.split(":");this.urlFlags[t]=function(e,t){if("true"===(t=t.toLowerCase())||"false"===t)return"true"===t;if(""+ +t===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}(t,n)}))}}function ze(){return Ue}let We,Ue=null;function Ve(){if(null==We){let e;if("undefined"!=typeof window)e=window;else if(void 0!==n.g)e=n.g;else if("undefined"!=typeof process)e=process;else{if("undefined"==typeof self)throw new Error("Could not find a global object");e=self}We=e}return We}function je(e,t){const n=function(){const e=Ve();return null==e._tfGlobals&&(e._tfGlobals=new Map),e._tfGlobals}();if(n.has(e))return n.get(e);{const r=t();return n.set(e,r),n.get(e)}}const He="Abs",Ge="Acos",Xe="Acosh",Ke="Add",qe="AddN",Ye="All",Je="Any",Ze="ArgMax",Qe="ArgMin",et="Asin",tt="Asinh",nt="Atan",rt="Atanh",at="Atan2",st="AvgPool",it="AvgPoolGrad",ot="AvgPool3D",lt="AvgPool3DGrad",ut="BatchMatMul",ct="BatchToSpaceND",ht="Bincount",ft="BroadcastTo",dt="Cast",pt="Ceil",mt="ClipByValue",gt="Complex",yt="ComplexAbs",bt="Concat",vt="Conv2D",wt="Conv2DBackpropFilter",_t="Conv2DBackpropInput",xt="Conv3D",kt="Conv3DBackpropFilterV2",Et="Conv3DBackpropInputV2",Ct="Cos",St="Cosh",Nt="Cumsum",It="CropAndResize",At="DenseBincount",Dt="DepthToSpace",Tt="DepthwiseConv2dNative",Ft="DepthwiseConv2dNativeBackpropFilter",Rt="DepthwiseConv2dNativeBackpropInput",Ot="Diag",Bt="Dilation2D",Mt="Dilation2DBackpropInput",$t="Dilation2DBackpropFilter",Pt="RealDiv",Lt="Elu",zt="EluGrad",Wt="Erf",Ut="Equal",Vt="Exp",jt="ExpandDims",Ht="Expm1",Gt="FFT",Xt="Fill",Kt="FlipLeftRight",qt="Floor",Yt="FloorDiv",Jt="FusedBatchNorm",Zt="GatherV2",Qt="GatherNd",en="Greater",tn="GreaterEqual",nn="Identity",rn="IFFT",an="Imag",sn="IsFinite",on="IsInf",ln="IsNan",un="LeakyRelu",cn="Less",hn="LessEqual",fn="LinSpace",dn="Log",pn="Log1p",mn="LogicalAnd",gn="LogicalNot",yn="LogicalOr",bn="LogSoftmax",vn="LRN",wn="LRNGrad",_n="Max",xn="Maximum",kn="MaxPool",En="MaxPoolGrad",Cn="MaxPool3D",Sn="MaxPool3DGrad",Nn="MaxPoolWithArgmax",In="Mean",An="Min",Dn="Minimum",Tn="MirrorPad",Fn="Mod",Rn="Multinomial",On="Multiply",Bn="Neg",Mn="NotEqual",$n="NonMaxSuppressionV3",Pn="NonMaxSuppressionV4",Ln="NonMaxSuppressionV5",zn="OnesLike",Wn="OneHot",Un="Pack",Vn="PadV2",jn="Pool",Hn="Pow",Gn="Prelu",Xn="Prod",Kn="Range",qn="Real",Yn="Reciprocal",Jn="Relu",Zn="Reshape",Qn="ResizeNearestNeighbor",er="ResizeNearestNeighborGrad",tr="ResizeBilinear",nr="ResizeBilinearGrad",rr="Relu6",ar="Reverse",sr="Round",ir="Rsqrt",or="ScatterNd",lr="Select",ur="Selu",cr="Slice",hr="Sin",fr="Sinh",dr="Sign",pr="Sigmoid",mr="Softplus",gr="Sqrt",yr="Sum",br="SpaceToBatchND",vr="SplitV",wr="Softmax",_r="SquaredDifference",xr="Square",kr="Sub",Er="SparseToDense",Cr="StridedSlice",Sr="Tan",Nr="Tanh",Ir="Tile",Ar="TopK",Dr="Transform",Tr="Transpose",Fr="Unique",Rr="Unpack",Or="UnsortedSegmentSum",Br="ZerosLike",Mr="Step",$r="FromPixels",Pr="RotateWithOffset",Lr="_FusedMatMul",zr="FusedConv2D",Wr="FusedDepthwiseConv2D",Ur=je("kernelRegistry",(()=>new Map)),Vr=je("gradRegistry",(()=>new Map));function jr(e,t){const n=Zr(e,t);return Ur.get(n)}function Hr(e){return Vr.get(e)}function Gr(e){const t=Ur.entries(),n=[];for(;;){const{done:r,value:a}=t.next();if(r)break;const[s,i]=a,[o]=s.split("_");o===e&&n.push(i)}return n}function Xr(e){const{kernelName:t,backendName:n}=e,r=Zr(t,n);Ur.has(r)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Ur.set(r,e)}function Kr(e){const{kernelName:t}=e;Vr.has(t)&&ze().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Vr.set(t,e)}function qr(e,t){const n=Zr(e,t);if(!Ur.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ur.delete(n)}function Yr(e){if(!Vr.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Vr.delete(e)}function Jr(e,t){Gr(e).forEach((e=>{Xr(Object.assign({},e,{backendName:t}))}))}function Zr(e,t){return`${t}_${e}`}function Qr(e,t){return"string"===t?ra(e):ea([e],t)}function ea(e,t){if("string"===t)throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ne(e)),ze().getBool("DEBUG")&&ye(e,t),function(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}(e,t))return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){const t=new Uint8Array(e.length);for(let n=0;n{r=n()};let s;const i=ta();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(a);else{a();for(const e of r)e.dataSync();s=Promise.resolve({kernelMs:ta()-i})}if(ze().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t{ia(t,n.dtype,e)}))}return{kernelName:e,outputs:r,inputs:t,timeMs:s.then((e=>e.kernelMs)),extraInfo:s.then((e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():""))}}logKernelProfile(e){const{kernelName:t,outputs:n,timeMs:r,inputs:a,extraInfo:s}=e;n.forEach((e=>{Promise.all([e.data(),r,s]).then((n=>{this.logger.logKernelProfile(t,e,n[0],n[1],a,n[2])}))}))}}function ia(e,t,n){if("float32"!==t)return!1;for(let t=0;t0?r:""} `}}console.log(`%c${o}\t%c${i}\t%c${l}D ${c}\t%c${u}\t%c${h}\t%c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function la(e,t,n,r){const a=Ae(t),s=function(e,t,n,r){const a=re(t),s=r[r.length-1],i=new Array(s).fill(0),o=t.length,l="complex64"===n?fa(e):e;if(o>1)for(let e=0;e
" "+e)).join("\n")),l.join("\n")}function ua(e,t,n){let r;return r=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:ke(e)?`'${e}'`:"bool"===n?ca(e):parseFloat(e.toFixed(7)).toString(),ce(r,t)}function ca(e){return 0===e?"false":"true"}function ha(e,t,n,r,a,s=!0){const i="complex64"===n?2:1,o=t[0],l=t.length;if(0===l)return"complex64"===n?[ua(fa(e)[0],0,n)]:"bool"===n?[ca(e[0])]:[e[0].toString()];if(1===l){if(o>20){const t=3*i;let r=Array.from(e.slice(0,t)),s=Array.from(e.slice((o-3)*i,o*i));return"complex64"===n&&(r=fa(r),s=fa(s)),["["+r.map(((e,t)=>ua(e,a[t],n))).join(", ")+", ..., "+s.map(((e,t)=>ua(e,a[o-3+t],n))).join(", ")+"]"]}return["["+("complex64"===n?fa(e):Array.from(e)).map(((e,t)=>ua(e,a[t],n))).join(", ")+"]"]}const u=t.slice(1),c=r.slice(1),h=r[0]*i,f=[];if(o>20){for(let t=0;t<3;t++){const r=t*h,s=r+h;f.push(...ha(e.slice(r,s),u,n,c,a,!1))}f.push("...");for(let t=o-3;t`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`))}if("complex64"===t)throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||ge(t,this.size),this.strides=Ae(e)}set(e,...t){0===t.length&&(t=[0]),Q(t.length===this.rank,(()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`));const n=this.locToIndex(t);this.values[n]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const t=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(t)}t++}let n=e[e.length-1];for(let t=0;taa(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=pa().readSync(this.dataId);if("string"===this.dtype)try{return e.map((e=>aa(e)))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await pa().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(pa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return ma.print(this,e)}clone(){return this.throwIfDisposed(),ma.clone(this)}toString(e=!1){return la(this.dataSync(),this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),ma.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),pa().makeVariable(this,e,t,n)}}function ba(){return je("Tensor",(()=>ya))}Object.defineProperty(ya,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),ba();class va extends ya{constructor(e,t,n,r){super(e.shape,e.dtype,e.dataId,r),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!se(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);pa().disposeTensor(this),this.dataId=e.dataId,pa().incRef(this,null)}dispose(){pa().disposeVariable(this),this.isDisposedInternal=!0}}var wa,_a,xa,ka,Ea;Object.defineProperty(va,Symbol.hasInstance,{value:e=>e instanceof ya&&null!=e.assign&&e.assign instanceof Function}),function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"}(wa||(wa={})),function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"}(_a||(_a={})),function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"}(xa||(xa={})),function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"}(ka||(ka={})),function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"}(Ea||(Ea={}));const Ca={float32:ka,int32:_a,bool:xa,complex64:Ea};function Sa(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return Ca[e][t]}function Na(e){return Sa(e,"int32")}function Ia(e,t){if(e.dtype===t.dtype)return[e,t];const n=Sa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function Aa(e,t){Q(e.dtype===t.dtype,(()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`))}function Da(e,t){return t.some((t=>t.id===e.id))}function Ta(e){const t=[];return Fa(e,t,new Set),t}function Fa(e,t,n){if(null==e)return;if(e instanceof ya)return void t.push(e);if(r=e,!Array.isArray(r)&&"object"!=typeof r)return;var r;const a=e;for(const e in a){const r=a[e];n.has(r)||(n.add(r),Fa(r,t,n))}}function Ra(e){return null!=e.kernelName}class Oa{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map((e=>e.name))))}}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class Ba{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Oa}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then((()=>{}));if(null!=this.backendInstance)return;const e=this.getSortedBackends();for(let t=0;t{null!=e.setupFunc&&e.setupFunc(this.backendInstance)}))}disposeRegisteredKernels(e){Gr(e).forEach((t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])}))}initializeBackend(e){const t=this.registryFactory[e];if(null==t)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const n=t.factory();if(!n||n instanceof j||"function"!=typeof n.then)return this.registry[e]=n,{success:!0,asyncInit:!1};{const t=++this.pendingBackendInitId,r=n.then((n=>!(t(tthis.registryFactory[t].priority-this.registryFactory[e].priority))}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(r)),(()=>this.endScope(n)),(()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n)))}scopedRun(e,t,n){e();try{const e=n();return t(),e}catch(e){throw t(),e}}nextTensorId(){return Ba.nextTensorId++}nextVariableId(){return Ba.nextVariableId++}clone(e){const t=$a.runKernel(nn,{x:e}),n={x:e};return this.addTapeNode(this.state.activeScope.name,n,[t],(e=>({x:()=>{const t={x:e};return $a.runKernel(dt,t,{dtype:"float32"})}})),[],{}),t}runKernel(e,t,n){if(null==jr(e,this.backendName))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){const r=this.backend.numDataIds();let a=0;n.forEach((e=>{a+="complex64"===e.dtype?3:1}));const s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=r-t-a-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[];const r=this.isTapeOn(),a=this.state.numBytes,s=this.state.numTensors;let i,o;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;const l=Ra(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(Ra(e)){const{kernelName:t,inputs:a,attrs:s}=e;null==this.backendName&&this.backend;const l=jr(t,this.backendName);Q(null!=l,(()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`)),i=()=>{const e=this.backend.numDataIds();o=l.kernelFunc({inputs:a,attrs:s,backend:this.backend});const i=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,i);const u=i.map((e=>{if(null!=e.rank)return e;const{dataId:t,shape:n,dtype:r}=e;return this.makeTensorFromDataId(t,n,r)}));if(r){const e=this.getTensorsForGradient(t,a,u);n=this.saveTensorsForBackwardMode(e)}return u}}else{const{forwardFunc:t}=e,a=e=>{r&&(n=e.map((e=>this.keep(this.clone(e)))))};i=()=>{const e=this.backend.numDataIds();o=this.tidy((()=>t(this.backend,a)));const n=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,e,n),n}}const{inputs:u,attrs:c}=e,h=Ra(e)?null:e.backwardsFunc;let f;return this.scopedRun((()=>this.state.kernelDepth++),(()=>this.state.kernelDepth--),(()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(f=this.profiler.profileKernel(l,u,(()=>i())),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),t=f.outputs):t=i()})),r&&this.addTapeNode(l,u,t,h,n,c),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-a,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map((e=>null!=u[e]?u[e].shape:null)),outputShapes:t.map((e=>e.shape)),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map((e=>this.keep(this.clone(e))))}getTensorsForGradient(e,t,n){const r=Hr(e);if(null!=r){const e=r.inputsToSave||[],a=r.outputsToSave||[];let s;r.saveAllInputs?(Q(Array.isArray(t),(()=>"saveAllInputs is true, expected inputs to be an array.")),s=Object.keys(t).map((e=>t[e]))):s=e.map((e=>t[e]));const i=n.filter(((e,t)=>a[t]));return s.concat(i)}return[]}makeTensor(e,t,n,r){if(null==e)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",r=r||this.backend;let a=e;"string"===n&&ke(e[0])&&(a=e.map((e=>ra(e))));const s=r.write(a,t,n),i=new ya(t,n,s,this.nextTensorId());if(this.trackTensor(i,r),"string"===n){const e=this.state.tensorInfo.get(s),t=xe(a);this.state.numBytes+=t-e.bytes,e.bytes=t}return i}makeTensorFromDataId(e,t,n,r){const a=new ya(t,n=n||"float32",e,this.nextTensorId());return this.trackTensor(a,r),a}makeVariable(e,t=!0,n,r){n=n||this.nextVariableId().toString(),null!=r&&r!==e.dtype&&(e=e.cast(r));const a=new va(e,t,n,this.nextTensorId());if(null!=this.state.registeredVariables[a.name])throw new Error(`Variable with name ${a.name} was already registered`);return this.state.registeredVariables[a.name]=a,this.incRef(a,this.backend),a}trackTensor(e,t){this.state.numTensors++,"string"===e.dtype&&this.state.numStringTensors++;let n=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(n=e.size*_e(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof va||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;const t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){const t=e.size*_e(e.dtype);this.state.numBytes-=t}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),null!=this.state.registeredVariables[e.name]&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map((e=>e.totalBytesSnapshot))),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(const e of this.state.activeProfile.kernels)e.kernelTimeMs=await e.kernelTimeMs,e.extraInfo=await e.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,n,r,a,s){const i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:a},o=Hr(e);null!=o&&(r=o.gradFunc),null!=r&&(i.gradient=e=>(e=e.map(((e,t)=>{if(null==e){const e=n[t],r=Re(e.size,e.dtype);return this.makeTensor(r,e.shape,e.dtype)}return e})),r(e.length>1?e:e[0],a,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Ta(e),n=new Set(t.map((e=>e.id)));for(let e=0;e{e.kept||e.scopeId!==r.id||this.track(e)}))}gradients(e,t,n,r=!1){if(Q(t.length>0,(()=>"gradients() received an empty list of xs.")),null!=n&&"float32"!==n.dtype)throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);const a=this.scopedRun((()=>this.startTape()),(()=>this.endTape()),(()=>this.tidy("forward",e)));Q(a instanceof ya,(()=>"The result y returned by f() must be a tensor."));const s=function(e,t,n){const r={},a={};for(let e=0;er[e.id]=!0)),o=!0,a[s.id]=!0;break}if(o)break}}const s={};s[n.id]=!0;const i={};for(let t=e.length-1;t>=0;t--){const n=e[t],r=n.inputs;for(let e=0;e0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",(()=>{const e={};e[a.id]=null==n?function(e){const t=Fe(re(e),"float32");return $a.makeTensor(t,e,"float32")}(a.shape):n,function(e,t,n,r){for(let a=t.length-1;a>=0;a--){const s=t[a],i=[];if(s.outputs.forEach((t=>{const n=e[t.id];null!=n?i.push(n):i.push(null)})),null==s.gradient)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);const o=s.gradient(i);for(const t in s.inputs){if(!(t in o))throw new Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(o)}.`);const a=n((()=>o[t]()));if("float32"!==a.dtype)throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${a.dtype}'`);const i=s.inputs[t];if(!se(a.shape,i.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${t}' has shape '${a.shape}', which does not match the shape of the input '${i.shape}'`);if(null==e[i.id])e[i.id]=a;else{const t=e[i.id];e[i.id]=r(t,a),t.dispose()}}}}(e,s,(e=>this.tidy(e)),Pa);const r=t.map((t=>e[t.id]));return 0===this.state.gradientDepth&&(this.state.activeTape.forEach((e=>{for(const t of e.saved)t.dispose()})),this.state.activeTape=null),{value:a,grads:r}}))}customGrad(e){return Q(Ne(e),(()=>"The f passed in customGrad(f) must be a function.")),(...t)=>{let n;Q(t.every((e=>e instanceof ya)),(()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors"));const r={};return t.forEach(((e,t)=>{r[t]=e})),this.runKernelFunc({forwardFunc:(r,a)=>(n=e(...t,a),Q(n.value instanceof ya,(()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor")),Q(Ne(n.gradFunc),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.")),n.value),backwardsFunc:(e,r)=>{const a=n.gradFunc(e,r),s=Array.isArray(a)?a:[a];Q(s.length===t.length,(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).")),Q(s.every((e=>e instanceof ya)),(()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors."));const i={};return s.forEach(((e,t)=>{i[t]=()=>e})),i},inputs:r})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){const t=ta(),n=await this.backend.time(e);return n.wallMs=ta()-t,n}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Oa;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function Ma(){const e=Ve();if(null==e._tfengine){const t=new Le(e);e._tfengine=new Ba(t)}var t;return t=e._tfengine.ENV,Ue=t,pa=()=>e._tfengine,e._tfengine}Ba.nextTensorId=0,Ba.nextVariableId=0;const $a=Ma();function Pa(e,t){const n={a:e,b:t};return $a.runKernel(Ke,n)}function La(){if("undefined"!=typeof navigator&&null!=navigator){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function za(){return"undefined"!=typeof window&&null!=window.document||"undefined"!=typeof WorkerGlobalScope}const Wa=ze();function Ua(e,t){let n=e;if(we(e))return"string"===t?[]:[e.length];if(!Array.isArray(e))return[];const r=[];for(;Array.isArray(n)||we(n)&&"string"!==t;)r.push(n.length),n=n[0];return Array.isArray(e)&&ze().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&Va(e,r,[]),r}function Va(e,t,n){if(n=n||[],!Array.isArray(e)&&!we(e))return void Q(0===t.length,(()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`));Q(t.length>0,(()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`)),Q(e.length===t[0],(()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`));const r=t.slice(1);for(let t=0;t=0&&(a=r),ja(r,a,t,n),null==e||!we(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){const r=null==e?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${r}'`)}const s=Ua(e,a);we(e)||Array.isArray(e)||(e=[e]);const i="string"!==a?ea(e,a):ne(e,[],!0);return $a.makeTensor(i,s,a)}function Ga(e,t,n,r="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map(((e,a)=>Ha(e,`${t}[${a}]`,n,r)))}Wa.registerFlag("DEBUG",(()=>!1),(e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")})),Wa.registerFlag("IS_BROWSER",(()=>za())),Wa.registerFlag("IS_NODE",(()=>"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.node)),Wa.registerFlag("IS_CHROME",(()=>"undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor))),Wa.registerFlag("PROD",(()=>!1)),Wa.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",(()=>Wa.getBool("DEBUG"))),Wa.registerFlag("DEPRECATION_WARNINGS_ENABLED",(()=>!0)),Wa.registerFlag("IS_TEST",(()=>!1)),Wa.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",(()=>!0)),Wa.registerFlag("WRAP_TO_IMAGEBITMAP",(()=>!1));const Xa="__op";function Ka(e){const t=Object.keys(e);if(1!==t.length)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0];const r=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n+=Xa;const a=(...e)=>{$a.startScope(n);try{const t=r(...e);return Pe(t)&&console.error("Cannot return a Promise inside of tidy."),$a.endScope(t),t}catch(e){throw $a.endScope(null),e}};return Object.defineProperty(a,"name",{value:n,configurable:!0}),a}const qa=Ka({complex_:function(e,t){const n=Ha(e,"real","complex"),r=Ha(t,"imag","complex");ee(n.shape,r.shape,`real and imag shapes, ${n.shape} and ${r.shape}, must match in call to tf.complex().`);const a={real:n,imag:r};return $a.runKernel(gt,a)}});function Ya(e,t,n,r){if(null==r&&(r=Se(e)),"complex64"===r)throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!we(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){Be(t);const e=re(t),r=re(n);Q(e===r,(()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${r}`));for(let e=0;e`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `))}}return we(e)||Array.isArray(e)||(e=[e]),t=t||n,e="string"!==r?ea(e,r):ne(e,[],!0),$a.makeTensor(e,t,r)}function Ja(e,t,n){return Ya(e,t,Ua(e,n),n)}const Za={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};async function Qa(e,t){const n=[],r=[],a=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);for(let s=0;s{const t=await o.bytes(),n=t.reduce(((e,t)=>e+t.length),0)+4*t.length,r=new Uint8Array(n);let a=0;for(let e=0;e{if(t+=e.byteLength,n.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)}));const r=new Uint8Array(t);let a=0;return n.forEach((e=>{r.set(new Uint8Array(e.buffer),a),a+=e.byteLength})),r.buffer}const ns="undefined"!=typeof Buffer&&("undefined"==typeof Blob||"undefined"==typeof atob||"undefined"==typeof btoa);function rs(e){return ns?Buffer.byteLength(e):new Blob([e]).size}function as(e){if(1===e.length)return e[0];let t=0;e.forEach((e=>{t+=e.byteLength}));const n=new Uint8Array(t);let r=0;return e.forEach((e=>{n.set(new Uint8Array(e),r),r+=e.byteLength})),n.buffer}function ss(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);const t=e.split("/");return t[t.length-1]}function is(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:rs(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:rs(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:e.weightData.byteLength}}function os(){const e=function(){const e=e=>{let t=e<<13,n=0;for(;0==(8388608&t);)n-=8388608,t<<=1;return t&=-8388609,n+=947912704,t|n},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}(),t=function(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}(),n=function(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return r=>{const a=new ArrayBuffer(4*r.length),s=new Uint32Array(a);for(let a=0;a>10]+(1023&i)]+t[i>>10];s[a]=o}return new Float32Array(a)}}class ls{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==ls.instance&&(ls.instance=new ls),ls.instance}static registerSaveRouter(e){ls.getInstance().saveRouters.push(e)}static registerLoadRouter(e){ls.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return ls.getHandlers(e,"save")}static getLoadHandlers(e,t){return ls.getHandlers(e,"load",t)}static getHandlers(e,t,n){const r=[];return("load"===t?ls.getInstance().loadRouters:ls.getInstance().saveRouters).forEach((t=>{const a=t(e,n);null!==a&&r.push(a)})),r}}const us=e=>ls.registerSaveRouter(e),cs=e=>ls.registerLoadRouter(e),hs=e=>ls.getSaveHandlers(e),fs=(e,t)=>ls.getLoadHandlers(e,t),ds="tensorflowjs",ps="models_store",ms="model_info_store";function gs(){if(!ze().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");const e="undefined"==typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw new Error("The current browser does not appear to support IndexedDB.");return t}function ys(e){const t=e.result;t.createObjectStore(ps,{keyPath:"modelPath"}),t.createObjectStore(ms,{keyPath:"modelPath"})}class bs{constructor(e){if(this.indexedDB=gs(),null==e||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise(((e,n)=>{const r=this.indexedDB.open(ds,1);r.onupgradeneeded=()=>ys(r),r.onsuccess=()=>{const a=r.result;if(null==t){const t=a.transaction(ps,"readonly"),r=t.objectStore(ps).get(this.modelPath);r.onsuccess=()=>{if(null==r.result)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(r.result.modelArtifacts)},r.onerror=e=>(a.close(),n(r.error)),t.oncomplete=()=>a.close()}else{const r=is(t),s=a.transaction(ms,"readwrite");let i=s.objectStore(ms);const o=i.put({modelPath:this.modelPath,modelArtifactsInfo:r});let l;o.onsuccess=()=>{l=a.transaction(ps,"readwrite");const o=l.objectStore(ps).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:r});o.onsuccess=()=>e({modelArtifactsInfo:r}),o.onerror=e=>{i=s.objectStore(ms);const t=i.delete(this.modelPath);t.onsuccess=()=>(a.close(),n(o.error)),t.onerror=e=>(a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}}},r.onerror=e=>n(r.error)}))}}bs.URL_SCHEME="indexeddb://";const vs=e=>{return ze().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(bs.URL_SCHEME)?(t=e.slice(bs.URL_SCHEME.length),new bs(t)):null;var t};ls.registerSaveRouter(vs),ls.registerLoadRouter(vs);class ws{constructor(){this.indexedDB=gs()}async listModels(){return new Promise(((e,t)=>{const n=this.indexedDB.open(ds,1);n.onupgradeneeded=()=>ys(n),n.onsuccess=()=>{const r=n.result,a=r.transaction(ms,"readonly"),s=a.objectStore(ms).getAll();s.onsuccess=()=>{const t={};for(const e of s.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},s.onerror=e=>(r.close(),t(s.error)),a.oncomplete=()=>r.close()},n.onerror=e=>t(n.error)}))}async removeModel(e){var t;return e=(t=e).startsWith(bs.URL_SCHEME)?t.slice(bs.URL_SCHEME.length):t,new Promise(((t,n)=>{const r=this.indexedDB.open(ds,1);r.onupgradeneeded=()=>ys(r),r.onsuccess=()=>{const a=r.result,s=a.transaction(ms,"readwrite"),i=s.objectStore(ms),o=i.get(e);let l;o.onsuccess=()=>{if(null==o.result)return a.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{const r=i.delete(e),s=()=>{l=a.transaction(ps,"readwrite");const r=l.objectStore(ps).delete(e);r.onsuccess=()=>t(o.result.modelArtifactsInfo),r.onerror=e=>n(o.error)};r.onsuccess=s,r.onerror=e=>(s(),a.close(),n(o.error))}},o.onerror=e=>(a.close(),n(o.error)),s.oncomplete=()=>{null==l?a.close():l.oncomplete=()=>a.close()}},r.onerror=e=>n(r.error)}))}}const _s="/",xs="tensorflowjs_models",ks="info",Es="model_topology",Cs="weight_specs",Ss="weight_data",Ns="model_metadata";function Is(e){return{info:[xs,e,ks].join(_s),topology:[xs,e,Es].join(_s),weightSpecs:[xs,e,Cs].join(_s),weightData:[xs,e,Ss].join(_s),modelMetadata:[xs,e,Ns].join(_s)}}function As(e){const t=e.split(_s);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(_s)}class Ds{constructor(e){if(!ze().getBool("IS_BROWSER")||"undefined"==typeof window||void 0===window.localStorage)throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=Is(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{const t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),r=is(e);try{this.LS.setItem(this.keys.info,JSON.stringify(r)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,function(e){if(ns)return Buffer.from(e).toString("base64");const t=new Uint8Array(e);let n="";for(let e=0,r=t.length;e{return ze().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ds.URL_SCHEME)?(t=e.slice(Ds.URL_SCHEME.length),new Ds(t)):null;var t};ls.registerSaveRouter(Ts),ls.registerLoadRouter(Ts);class Fs{constructor(){Q(ze().getBool("IS_BROWSER"),(()=>"Current environment is not a web browser")),Q("undefined"==typeof window||void 0!==window.localStorage,(()=>"Current browser does not appear to support localStorage")),this.LS=window.localStorage}async listModels(){const e={},t=xs+_s,n=_s+ks;for(let r=0;r"scheme must not be undefined or null.")),e.endsWith(Rs)&&(e=e.slice(0,e.indexOf(Rs))),Q(e.length>0,(()=>"scheme must not be an empty string."));const n=Os.getInstance();Q(null==n.managers[e],(()=>`A model store manager is already registered for scheme '${e}'.`)),n.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(null==t)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Bs(e){if(-1===e.indexOf(Rs))throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Os.getSchemes().join(",")}`);return{scheme:e.split(Rs)[0],path:e.split(Rs)[1]}}async function Ms(e,t,n=!1){Q(e!==t,(()=>`Old path and new path are the same: '${e}'`));const r=ls.getLoadHandlers(e);Q(r.length>0,(()=>`Copying failed because no load handler is found for source URL ${e}.`)),Q(r.length<2,(()=>`Copying failed because more than one (${r.length}) load handlers for source URL ${e}.`));const a=r[0],s=ls.getSaveHandlers(t);Q(s.length>0,(()=>`Copying failed because no save handler is found for destination URL ${t}.`)),Q(s.length<2,(()=>`Copying failed because more than one (${r.length}) save handlers for destination URL ${t}.`));const i=s[0],o=Bs(e).scheme,l=Bs(e).path,u=o===Bs(e).scheme,c=await a.load();n&&u&&await Os.getManager(o).removeModel(l);const h=await i.save(c);return n&&!u&&await Os.getManager(o).removeModel(l),h.modelArtifactsInfo}async function $s(){const e=Os.getSchemes(),t={};for(const n of e){const e=await Os.getManager(n).listModels();for(const r in e)t[n+Rs+r]=e[r]}return t}async function Ps(e){const t=Bs(e);return Os.getManager(t.scheme).removeModel(t.path)}async function Ls(e,t){return Ms(e,t,!1)}async function zs(e,t){return Ms(e,t,!0)}class Ws{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}}if(ze().get("IS_BROWSER")){ze().setPlatform("browser",new Ws);try{Os.registerManager(Ds.URL_SCHEME,new Fs)}catch(e){}try{Os.registerManager(bs.URL_SCHEME,new ws)}catch(e){}}let Us;function Vs(e,t="float32",n){return t=t||"float32",Be(e),new da(e,t,n)}ze().get("IS_NODE")&&ze().setPlatform("node",new class{constructor(){this.util=n(1758),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=ze().global.fetch?ze().global.fetch(e,t):(null==Us&&(Us=n(8352)),Us(e,t))}now(){const e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}});const js=Ka({cast_:function(e,t){const n=Ha(e,"x","cast");if(!be(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==n.dtype||"string"!==t&&"string"===n.dtype)throw new Error("Only strings can be casted to strings");const r={x:n},a={dtype:t};return $a.runKernel(dt,r,a)}}),Hs=Ka({clone_:function(e){const t={x:Ha(e,"x","clone","string_or_numeric")};return $a.runKernel(nn,t)}});function Gs(e,t=!1){console.log(e.toString(t))}function Xs(e){return new Promise((e=>setTimeout(e))).then(e)}Ma(),ma={buffer:Vs,cast:js,clone:Hs,print:Gs};class Ks{constructor(e){if(!ze().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Ks.URL_SCHEME)&&(e=e.slice(Ks.URL_SCHEME.length)),null!=e&&0!==e.length||(e="model"),this.modelTopologyFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("undefined"==typeof document)throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer);const a=window.URL.createObjectURL(new Blob([JSON.stringify(r)],{type:"application/json"})),s=null==this.jsonAnchor?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=a,await Xs((()=>s.dispatchEvent(new MouseEvent("click")))),null!=e.weightData){const e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=t,await Xs((()=>e.dispatchEvent(new MouseEvent("click"))))}return{modelArtifactsInfo:is(e)}}}}Ks.URL_SCHEME="downloads://";class qs{constructor(e){if(null==e||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise(((n,r)=>{const a=new FileReader;a.onload=a=>{const s=JSON.parse(a.target.result),i=s.modelTopology;if(null==i)return void r(new Error(`modelTopology field is missing from file ${e.name}`));0===t.length&&n({modelTopology:i});const o=s.weightsManifest;if(null==o)return void r(new Error(`weightManifest field is missing from file ${e.name}`));let l;try{l=this.checkManifestAndWeightFiles(o,t)}catch(e){return void r(e)}const u=[],c=[],h=[];o.forEach((e=>{e.paths.forEach((e=>{c.push(e),h.push(null)})),u.push(...e.weights)})),o.forEach((e=>{e.paths.forEach((e=>{const t=new FileReader;t.onload=t=>{const r=t.target.result,a=c.indexOf(e);if(h[a]=r,-1===h.indexOf(null)){const e={modelTopology:i,weightSpecs:u,weightData:as(h),format:s.format,generatedBy:s.generatedBy,convertedBy:s.convertedBy};null!=s.signature&&(e.signature=s.signature),null!=s.userDefinedMetadata&&(e.userDefinedMetadata=s.userDefinedMetadata),null!=s.modelInitializer&&(e.modelInitializer=s.modelInitializer),n(e)}},t.onerror=t=>r(`Failed to weights data from file of path '${e}'.`),t.readAsArrayBuffer(l[e])}))}))},a.onerror=t=>r(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),a.readAsText(e)}))}checkManifestAndWeightFiles(e,t){const n=[],r=t.map((e=>ss(e.name))),a={};for(const s of e)s.paths.forEach((e=>{const s=ss(e);if(-1!==n.indexOf(s))throw new Error(`Duplicate file basename found in weights manifest: '${s}'`);if(n.push(s),-1===r.indexOf(s))throw new Error(`Weight file with basename '${s}' is not provided.`);a[e]=t[r.indexOf(s)]}));if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return a}}function Ys(e){return new qs(e)}function Js(e,t,n,r){!function(e){Q(null!=e&&Array.isArray(e)&&e.length>0,(()=>"promises must be a none empty array"))}(e),function(e,t){Q(e>=0&&e<=1,(()=>`Progress fraction must be in range [0, 1], but got startFraction ${e}`)),Q(t>=0&&t<=1,(()=>`Progress fraction must be in range [0, 1], but got endFraction ${t}`)),Q(t>=e,(()=>`startFraction must be no more than endFraction, but got startFraction ${e} and endFraction ${t}`))}(n=null==n?0:n,r=null==r?1:r);let a=0;return Promise.all(e.map((s=>(s.then((s=>{const i=n+ ++a/e.length*(r-n);return t(i),s})),s))))}async function Zs(e,t){null==t&&(t={});const n=null==t.fetchFunc?ze().platform.fetch:t.fetchFunc,r=e.map((e=>n(e,t.requestInit,{isBinary:!0}))),a=(null==t.onProgress?await Promise.all(r):await Js(r,t.onProgress,0,.5)).map((e=>e.arrayBuffer()));return null==t.onProgress?await Promise.all(a):await Js(a,t.onProgress,.5,1)}async function Qs(e,t="",n,r){return ei((e=>Zs(e,{requestInit:r})))(e,t,n)}function ei(e){return async(t,n="",r)=>{const a=t.map((()=>!1)),s={},i=null!=r?r.map((()=>!1)):[],o=[];if(t.forEach(((e,t)=>{let n=0;e.weights.forEach((e=>{const l="quantization"in e?e.quantization.dtype:e.dtype,u=Za[l]*re(e.shape),c=()=>{a[t]=!0,null==s[t]&&(s[t]=[]),s[t].push({manifestEntry:e,groupOffset:n,sizeBytes:u})};null!=r?r.forEach(((t,n)=>{t===e.name&&(c(),i[n]=!0)})):c(),o.push(e.name),n+=u}))})),!i.every((e=>e))){const e=r.filter(((e,t)=>!i[t]));throw new Error(`Could not find weights in manifest with names: ${e.join(", ")}. \nManifest JSON has weights with names: ${o.join(", ")}.`)}const l=a.reduce(((e,t,n)=>(t&&e.push(n),e)),[]),u=[];l.forEach((e=>{t[e].paths.forEach((e=>{const t=n+(n.endsWith("/")?"":"/")+e;u.push(t)}))}));const c=await e(u),h={};let f=0;return l.forEach((e=>{const n=t[e].paths.length;let r=0;for(let e=0;e{const t=es(a.slice(e.groupOffset,e.groupOffset+e.sizeBytes),[e.manifestEntry]);for(const e in t)h[e]=t[e]})),f+=n})),h}}ls.registerSaveRouter((e=>ze().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ks.URL_SCHEME)?function(e="model"){return new Ks(e)}(e.slice(Ks.URL_SCHEME.length)):null));class ti{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?(Q("function"==typeof t.fetchFunc,(()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)")),this.fetch=t.fetchFunc):this.fetch=ze().platform.fetch,Q(null!=e&&e.length>0,(()=>"URL path for http must not be null, undefined or empty.")),Array.isArray(e)&&Q(2===e.length,(()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`)),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(r)],{type:"application/json"}),"model.json"),null!=e.weightData&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:"application/octet-stream"}),"model.weights.bin");const a=await this.fetch(this.path,t);if(a.ok)return{modelArtifactsInfo:is(e),responses:[a]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${a.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(e){let t=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?t+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":t+=" Please make sure the server is serving valid JSON for this request.",new Error(t)}const n=t.modelTopology,r=t.weightsManifest,a=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(null==n&&null==r)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let u,c;if(null!=r){const e=await this.loadWeights(r);[u,c]=e}const h={modelTopology:n,weightSpecs:u,weightData:c,generatedBy:a,convertedBy:s,format:i};null!=o&&(h.signature=o),null!=l&&(h.userDefinedMetadata=l);const f=t.modelInitializer;return f&&(h.modelInitializer=f),h}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[n,r]=function(e){const t=e.lastIndexOf("/"),n=e.lastIndexOf("?");return[e.substring(0,t)+"/",n>t?e.substring(n):""]}(t),a=this.weightPathPrefix||n,s=[];for(const t of e)s.push(...t.weights);const i=[],o=[];for(const t of e)for(const e of t.paths)null!=this.weightUrlConverter?o.push(this.weightUrlConverter(e)):i.push(a+e+r);return this.weightUrlConverter&&i.push(...await Promise.all(o)),[s,as(await Zs(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress}))]}}function ni(e){return null!=e.match(ti.URL_SCHEME_REGEX)}ti.URL_SCHEME_REGEX=/^https?:\/\//;const ri=(e,t)=>{if("undefined"==typeof fetch&&(null==t||null==t.fetchFunc))return null;{let n=!0;if(n=Array.isArray(e)?e.every((e=>ni(e))):ni(e),n)return ai(e,t)}return null};function ai(e,t){return new ti(e,t)}function si(e,t){return ai(e,t)}ls.registerSaveRouter(ri),ls.registerLoadRouter(ri);class ii{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class oi{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function li(e,t,n,r){return 1===arguments.length?null!=e.modelTopology||null!=e.weightSpecs?new ii(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ii({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ii({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:r}))}function ui(e){return new oi(e)}const ci=Ka({matMul_:function(e,t,n=!1,r=!1){let a=Ha(e,"a","matMul"),s=Ha(t,"b","matMul");[a,s]=Ia(a,s);const i={a,b:s},o={transposeA:n,transposeB:r};return $a.runKernel(ut,i,o)}}),hi=Ka({oneHot_:function(e,t,n=1,r=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const a={indices:Ha(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:r};return $a.runKernel(Wn,a,s)}}),fi=Ka({transpose_:function(e,t){const n=Ha(e,"x","transpose");if(null==t&&(t=n.shape.map(((e,t)=>t)).reverse()),Q(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`)),t.forEach((e=>{Q(e>=0&&e"All entries in 'perm' must be between 0 and "+(n.rank-1)+` but got ${t}`))})),n.rank<=1)return n.clone();const r={x:n},a={perm:t};return $a.runKernel(Tr,r,a)}}),di=Ka({confusionMatrix_:function(e,t,n){const r=Ha(e,"labels","confusionMatrix"),a=Ha(t,"predictions","confusionMatrix");Q(null==n||n>0&&Number.isInteger(n),(()=>`If provided, numClasses must be a positive integer, but got ${n}`)),Q(1===r.rank,(()=>`Expected the rank of labels to be 1, but got ${r.rank}`)),Q(1===a.rank,(()=>`Expected the rank of predictions to be 1, but got ${a.rank}`)),Q(r.shape[0]===a.shape[0],(()=>`Mismatch in the number of examples: ${r.shape[0]} vs. ${a.shape[0]}. Labels and predictions should have the same number of elements.`)),Q(n>0&&Number.isInteger(n),(()=>`numClasses is required to be a positive integer, but got ${n}`));const s=hi(js(r,"int32"),n),i=hi(js(a,"int32"),n),o=fi(s),l=ci(o,i);return js(l,"int32")}});function pi(e,t,n){if(te(e),null!=t&&3!==t.length)throw new Error("tensor3d() requires shape to have three numbers");const r=Ua(e,n);if(3!==r.length&&1!==r.length)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Ya(e,t,r,n)}let mi;function gi(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,r=!1,a=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if("undefined"!=typeof ImageData&&e instanceof ImageData)r=!0;else if("undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement)a=!0;else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement)s=!0;else if(null!=e.getContext)i=!0;else{if(!("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap))throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);o=!0}if(a){const t=2;if(a&&e.readyState element.")}if(null!=jr($r,$a.backendName)){const n={pixels:e},r={numChannels:t};return $a.runKernel($r,n,r)}const[l,u]=a?[e.videoWidth,e.videoHeight]:[e.width,e.height];let c,h;if(i?c=e.getContext("2d").getImageData(0,0,l,u).data:r||n?c=e.data:(s||a||o)&&(null==mi&&(mi=document.createElement("canvas").getContext("2d")),mi.canvas.width=l,mi.canvas.height=u,mi.drawImage(e,0,0,l,u),c=mi.getImageData(0,0,l,u).data),4===t)h=new Int32Array(c);else{const e=l*u;h=new Int32Array(e*t);for(let n=0;n4||2===s)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if("float32"!==n.dtype&&"int32"!==n.dtype)throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);const i=await n.data(),o="float32"===n.dtype?255:1,l=new Uint8ClampedArray(a*r*4);for(let e=0;e1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${a}.`)}else if("int32"===n.dtype&&(a<0||a>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${a}.`);1===s?(t[0]=a*o,t[1]=a*o,t[2]=a*o):t[r]=a*o}const r=4*e;l[r+0]=Math.round(t[0]),l[r+1]=Math.round(t[1]),l[r+2]=Math.round(t[2]),l[r+3]=Math.round(t[3])}if(null!=t){t.width=a,t.height=r;const e=t.getContext("2d"),n=new ImageData(l,a,r);e.putImageData(n,0,0)}return n!==e&&n.dispose(),l}const vi=Ka({fromPixels_:gi});function wi(e,t){const n=e.shape.length,r=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(r<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${r}.`);if("int32"!==t.dtype)throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[r-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[r-1]} vs. ${n}`);if(0===re(e.shape))throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const a=t.shape,s=a[a.length-1];let i=1;for(let e=0;ee/u)),1].slice(0,s);return[l,i,u,c]}function _i(e,t,n){const r=t.rank>1?t.shape[t.rank-1]:1,a=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${r}, and batchDim: ${a}.`;if(n.rank1?t.shape[r-1]:1,s=n.length;let i=1;for(let e=a;e`Error in slice${r}D: Length of begin ${t} must match the rank of the array (${r}).`)),Q(r===n.length,(()=>`Error in slice${r}D: Length of size ${n} must match the rank of the array (${r}).`));for(let a=0;a`Error in slice${r}D: begin[${a}] + size[${a}] (${t[a]+n[a]}) would overflow input.shape[${a}] (${e.shape[a]})`))}function Ci(e){const t=[];let n=0;for(;e>0;)1&e&&t.push(n),e/=2,n++;return t}function Si(e,t,n){const r=[];for(let a=0;a0){const l=t[0],u=n+1;c=Ti(i,l,u,r,e),h=Fi(o,l,u,a,e),f=Ni(s,l,u,e)}else for(let t=0;t-1)s[a]=0;else{const i=Ii(t,n,a);let o=r[i];e&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{const i=Ii(t,n,a);let o=r[i];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=K(0,i,l-1),i}function Bi(e,t,n,r,a,s){let i=t[a];const o=n[a]||1;(e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);const l=r[a];return i<0&&(i+=l),i=o>0?K(0,i,l):K(-1,i,l-1),i}function Mi(e,t,n){let r=n.length;for(let e=0;e1){r=e;break}for(let a=r+1;a0||n[a]!==e[a])return!1;return!0}function $i(e,t){let n=e.length>0?e[e.length-1]:1;for(let r=0;r{Q(-1!==e,(()=>"slice() does not support negative begin indexing."))})),s=null==n?new Array(a).fill(-1):"number"==typeof n?[n,...new Array(a-1).fill(-1)]:n.lengtht>=0?t:(Q(-1===t,(()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${n}.`)),e.shape[n]-r[n]))),[r,s]}function Li(e,t,n,r,a,s,i,o,l){let u=t.slice(),c=n.slice(),h=r;null==r&&(h=new Array(u.length));const f=Ci(i);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(0!==i&&0!==o)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(0!==i&&0!==l)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const d=e.length-u.length,p=Ci(o),m=e.slice();p.forEach((e=>{u[e]=0,c[e]=1,m.splice(e,0,1)}));const{begin:g,end:y,strides:b}=Di(m,f,d,u,c,h,a,s,i);u=g,c=y,h=b;const v=Ci(l);v.forEach((e=>{c[e]=u[e]+1,h[e]=1}));const w=Si(u,c,h),_=w.filter(((e,t)=>-1===v.indexOf(t)));return{nonStrided:h.every((e=>1===e)),$begin:u,$end:c,$strides:h,size:w,newShape:m,outShape:_}}class zi{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Wi{constructor(){this.classNameMap={}}static getMap(){return null==Wi.instance&&(Wi.instance=new Wi),Wi.instance}static register(e){Wi.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function Ui(e){Q(null!=e.className,(()=>"Class being registered does not have the static className property defined.")),Q("string"==typeof e.className,(()=>"className is required to be a string, but got type "+typeof e.className)),Q(e.className.length>0,(()=>"Class being registered has an empty-string as its className, which is disallowed.")),Wi.register(e)}const Vi=.1;function ji(e,t,n){return null==n&&(n=Hi()),Gi(e,t,((e,t)=>Yi(e,t,n)))}function Hi(){return 32===$a.backend.floatPrecision()?.001:Vi}function Gi(e,t,n){let r=!0;if((we(e)||we(t))&&(r=!1),we(e)&&we(t)&&(r=!0),r){const n=e.constructor.name,r=t.constructor.name;if(n!==r)throw new Error(`Arrays are of different type. Actual: ${n}. Expected: ${r}`)}if(Array.isArray(e)&&Array.isArray(t)){const n=Ua(e),r=Ua(t);if(!se(n,r))throw new Error(`Arrays have different shapes. Actual: [${n}]. Expected: [${r}]`)}const a=we(e)?e:ne(e),s=we(t)?t:ne(t);if(a.length!==s.length)throw new Error(`Arrays have different lengths actual: ${a.length} vs expected: ${s.length}.\nActual: ${a}.\nExpected: ${s}.`);for(let e=0;et.fail()),(()=>t()))}function Ki(e,t){const n="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return ke(e)||ke(e[0])||ke(t)||ke(t[0])?Gi(e,n,((e,t)=>e==t)):Gi(e,t,((e,t)=>Yi(e,t,0)))}function qi(e,t,n){if(null==n&&(n=Hi()),!Yi(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function Yi(e,t,n){return!isFinite(e)&&!isFinite(t)||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function Ji(e,t,n){for(let r=0;rn)throw new Error(`Value out of range:${e[r]} low: ${t}, high: ${n}`)}function Zi(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function Qi(e){for(let t=0;te.dispose()))}function ho(e){return $a.keep(e)}function fo(e){return $a.time(e)}function po(e){return $a.setBackend(e)}function mo(){return $a.ready()}function go(){return $a.backendName}function yo(e){$a.removeBackend(e)}function bo(e){return $a.findBackend(e)}function vo(e){return $a.findBackendFactory(e)}function wo(e,t,n=1){return $a.registerBackend(e,t,n)}function _o(){return $a.backend}function xo(e,t){ze().setPlatform(e,t)}ga=ao;const ko=Ka({add_:function(e,t){let n=Ha(e,"a","add"),r=Ha(t,"b","add");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(Ke,a)}}),Eo=Ka({floorDiv_:function(e,t){let n=Ha(e,"a","floorDiv"),r=Ha(t,"b","floorDiv");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(Yt,a)}}),Co=Ka({div_:function(e,t){let n=Ha(e,"a","div"),r=Ha(t,"b","div");if([n,r]=Ia(n,r),"int32"===n.dtype&&"int32"===r.dtype)return Eo(n,r);const a={a:n,b:r};return $a.runKernel(Pt,a,{})}}),So=Ka({mul_:function(e,t){let n=Ha(e,"a","mul"),r=Ha(t,"b","mul");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(On,a)}}),No=Ka({sqrt_:function(e){const t={x:Ha(e,"x","sqrt")};return $a.runKernel(gr,t)}}),Io=Ka({square_:function(e){const t=Ha(e,"x","square");return $a.runKernel("Square",{x:t},{})}}),Ao=Ka({zerosLike_:function(e){const t={x:Ha(e,"x","zerosLike")};return $a.runKernel(Br,t)}});function Do(e){return Q(Ne(e),(()=>"The f passed in grad(f) must be a function")),(t,n)=>{const r=Ha(t,"x","tf.grad","string_or_numeric"),a=null!=n?Ha(n,"dy","tf.grad"):null;return $a.tidy((()=>{const{value:t,grads:n}=$a.gradients((()=>e(r)),[r],a);return null!=a&&ee(t.shape,a.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Mo(n),n[0]}))}}function To(e){return Q(Ne(e),(()=>"The f passed in grads(f) must be a function")),(t,n)=>{Q(Array.isArray(t),(()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s"));const r=Ga(t,"args","tf.grads","string_or_numeric"),a=null!=n?Ha(n,"dy","tf.grads"):null;return $a.tidy((()=>{const{value:t,grads:n}=$a.gradients((()=>e(...r)),r,a);return null!=a&&ee(t.shape,a.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Mo(n),n}))}}function Fo(e){return Q(Ne(e),(()=>"The f passed in valueAndGrad(f) must be a function")),(t,n)=>{Q(t instanceof ya,(()=>"The x passed in valueAndGrad(f)(x) must be a tensor")),Q(null==n||n instanceof ya,(()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor"));const{grads:r,value:a}=$a.gradients((()=>e(t)),[t],n);return Mo(r),{grad:r[0],value:a}}}function Ro(e){return Q(Ne(e),(()=>"The f passed in valueAndGrads(f) must be a function")),(t,n)=>{Q(Array.isArray(t)&&t.every((e=>e instanceof ya)),(()=>"The args passed in valueAndGrads(f)(args) must be array of tensors")),Q(null==n||n instanceof ya,(()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor"));const r=$a.gradients((()=>e(...t)),t,n);return null!=n&&ee(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Mo(r.grads),r}}function Oo(e,t){Q(Ne(e),(()=>"The f passed in variableGrads(f) must be a function")),Q(null==t||Array.isArray(t)&&t.every((e=>e instanceof va)),(()=>"The varList passed in variableGrads(f, varList) must be an array of variables"));const n=null!=t;if(!n){t=[];for(const e in $a.registeredVariables)t.push($a.registeredVariables[e])}const r=n?t.filter((e=>!e.trainable)):null,a=t.length;Q((t=t.filter((e=>e.trainable))).length>0,(()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${a} variables is trainable.`));const{value:s,grads:i}=$a.gradients(e,t,null,!0);Q(i.some((e=>null!=e)),(()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().")),Q(0===s.rank,(()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${s.rank} tensor`));const o={};return t.forEach(((e,t)=>{null!=i[t]&&(o[e.name]=i[t])})),null!=r&&r.forEach((e=>o[e.name]=null)),{value:s,grads:o}}function Bo(e){return $a.customGrad(e)}function Mo(e){if(e.filter((e=>null==e)).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}function $o(e,t){if((we(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&we(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Ya(e,[],[],t)}class Po extends zi{minimize(e,t=!1,n){const{value:r,grads:a}=this.computeGradients(e,n);if(null!=n){const e=n.map((e=>({name:e.name,tensor:a[e.name]})));this.applyGradients(e)}else this.applyGradients(a);return co(a),t?r:(r.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return Oo(e,t)}dispose(){null!=this.iterations_&&co(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:$o(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(Po,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients});class Lo extends Po{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==n&&(this.epsilon=$a.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=$a.registeredVariables[t];null==this.accumulatedGrads[n]&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:uo((()=>Ao(r).variable(!1)))}),null==this.accumulatedUpdates[n]&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:uo((()=>Ao(r).variable(!1)))});const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable,i=this.accumulatedUpdates[n].variable;uo((()=>{const e=ko(So(s,this.rho),So(Io(a),1-this.rho)),t=So(Co(No(ko(i,this.epsilon)),No(ko(s,this.epsilon))),a),n=ko(So(i,this.rho),So(Io(t),1-this.rho));s.assign(e),i.assign(n);const o=ko(So(t,-this.learningRate),r);r.assign(o)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&(co(this.accumulatedGrads.map((e=>e.variable))),co(this.accumulatedUpdates.map((e=>e.variable))))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){const t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedUpdates=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}function zo(e,t,n){const r={shape:e,value:t,dtype:n};return $a.runKernel(Xt,{},r)}Lo.className="Adadelta",Ui(Lo);class Wo extends Po{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=$a.registeredVariables[t];if(null==this.accumulatedGrads[n]){const e=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:uo((()=>zo(r.shape,this.initialAccumulatorValue).variable(e)))}}const a=Array.isArray(e)?e[n].tensor:e[t];if(null==a)return;const s=this.accumulatedGrads[n].variable;uo((()=>{const e=ko(s,Io(a));s.assign(e);const t=ko(So(Co(a,No(ko(e,$a.backend.epsilon()))),-this.learningRate),r);r.assign(t)}))})),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&co(this.accumulatedGrads.map((e=>e.variable)))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulatedGrads=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}Wo.className="Adagrad",Ui(Wo);const Uo=Ka({pow_:function(e,t){let n=Ha(e,"base","pow"),r=Ha(t,"exp","pow");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(Hn,a)}}),Vo=Ka({sub_:function(e,t){let n=Ha(e,"a","sub"),r=Ha(t,"b","sub");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(kr,a)}});class jo extends Po{constructor(e,t,n,r=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=r,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],uo((()=>{this.accBeta1=$o(t).variable(),this.accBeta2=$o(n).variable()})),null==r&&(this.epsilon=$a.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);uo((()=>{const n=Vo(1,this.accBeta1),r=Vo(1,this.accBeta2);t.forEach(((t,a)=>{const s=$a.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:uo((()=>Ao(s).variable(!1)))}),null==this.accumulatedSecondMoment[a]&&(this.accumulatedSecondMoment[a]={originalName:`${t}/v`,variable:uo((()=>Ao(s).variable(!1)))});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedSecondMoment[a].variable,u=ko(So(o,this.beta1),So(i,1-this.beta1)),c=ko(So(l,this.beta2),So(Io(i),1-this.beta2)),h=Co(u,n),f=Co(c,r);o.assign(u),l.assign(c);const d=ko(So(Co(h,ko(No(f),this.epsilon)),-this.learningRate),s);s.assign(d)})),this.accBeta1.assign(So(this.accBeta1,this.beta1)),this.accBeta2.assign(So(this.accBeta2,this.beta2))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&co(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedSecondMoment&&co(this.accumulatedSecondMoment.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),uo((()=>{this.accBeta1.assign(Uo(this.beta1,this.iterations_+1)),this.accBeta2.assign(Uo(this.beta2,this.iterations_+1))}));const t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)}))),this.accumulatedSecondMoment=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}jo.className="Adam",Ui(jo);const Ho=Ka({abs_:function(e){const t=Ha(e,"x","abs");if("complex64"===t.dtype){const e={x:t};return $a.runKernel(yt,e)}{const e={x:t};return $a.runKernel(He,e)}}});function Go(e,t){const n=e.length,r=[];for(let a=0;a1&&1===i&&r.unshift(s)}return r}function Xo(e,t){const n=[];for(let r=0;r1)&&n.unshift(s)}return n}function Ko(e,t){const n=[],r=Math.max(e.length,t.length);for(let a=0;a{this.iteration=$o(0).variable(),this.accBeta1=$o(t).variable()})),null==r&&(this.epsilon=$a.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map((e=>e.name)):Object.keys(e);uo((()=>{const n=Vo(1,this.accBeta1),r=Co(-this.learningRate,ko(So(this.iteration,this.decay),1));t.forEach(((t,a)=>{const s=$a.registeredVariables[t];null==this.accumulatedFirstMoment[a]&&(this.accumulatedFirstMoment[a]={originalName:`${t}/m`,variable:Ao(s).variable(!1)}),null==this.accumulatedWeightedInfNorm[a]&&(this.accumulatedWeightedInfNorm[a]={originalName:`${t}/v`,variable:Ao(s).variable(!1)});const i=Array.isArray(e)?e[a].tensor:e[t];if(null==i)return;const o=this.accumulatedFirstMoment[a].variable,l=this.accumulatedWeightedInfNorm[a].variable,u=ko(So(o,this.beta1),So(i,1-this.beta1)),c=So(l,this.beta2),h=Ho(i),f=qo(c,h);o.assign(u),l.assign(f);const d=ko(So(Co(r,n),Co(u,ko(f,this.epsilon))),s);s.assign(d)})),this.iteration.assign(ko(this.iteration,1)),this.accBeta1.assign(So(this.accBeta1,this.beta1))})),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&co(this.accumulatedFirstMoment.map((e=>e.variable))),null!=this.accumulatedWeightedInfNorm&&co(this.accumulatedWeightedInfNorm.map((e=>e.variable)))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}Yo.className="Adamax",Ui(Yo);class Jo extends Po{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=Array.isArray(e)?e[n].tensor:e[t];if(null==r)return;const a=$a.registeredVariables[t];uo((()=>{const e=ko(So(this.c,r),a);a.assign(e)}))})),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=ho($o(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}Jo.className="SGD",Ui(Jo);class Zo extends Jo{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=$o(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=$a.registeredVariables[t];if(null==this.accumulations[n]){const e=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:uo((()=>Ao(r).variable(e)))}}const a=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];null!=s&&uo((()=>{let e;const t=ko(So(this.m,a),s);e=this.useNesterov?ko(So(this.c,ko(s,So(t,this.m))),r):ko(So(this.c,t),r),a.assign(t),r.assign(e)}))})),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&co(this.accumulations.map((e=>e.variable)))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e),this.accumulations=e.map((e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}Zo.className="Momentum",Ui(Zo);class Qo extends Po{constructor(e,t=.9,n=0,r=null,a=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=r,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=a,null==r&&(this.epsilon=$a.backend.epsilon()),null==e)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map((e=>e.name)):Object.keys(e)).forEach(((t,n)=>{const r=$a.registeredVariables[t],a=!1;null==this.accumulatedMeanSquares[n]&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:uo((()=>Ao(r).variable(a)))}),null==this.accumulatedMoments[n]&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:uo((()=>Ao(r).variable(a)))}),null==this.accumulatedMeanGrads[n]&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:uo((()=>Ao(r).variable(a)))});const s=Array.isArray(e)?e[n].tensor:e[t];if(null==s)return;const i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;uo((()=>{const e=ko(So(i,this.decay),So(Io(s),1-this.decay));if(this.centered){const t=this.accumulatedMeanGrads[n].variable,a=ko(So(t,this.decay),So(s,1-this.decay)),l=Co(So(s,this.learningRate),No(Vo(e,ko(Io(a),this.epsilon)))),u=ko(So(o,this.momentum),l);i.assign(e),t.assign(a),o.assign(u);const c=Vo(r,u);r.assign(c)}else{const e=ko(So(i,this.decay),So(Io(s),1-this.decay)),t=ko(So(o,this.momentum),Co(So(s,this.learningRate),No(ko(e,this.epsilon))));i.assign(e),o.assign(t);const n=Vo(r,t);r.assign(n)}}))})),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&co(this.accumulatedMeanSquares.map((e=>e.variable))),null!=this.accumulatedMeanGrads&&this.centered&&co(this.accumulatedMeanGrads.map((e=>e.variable))),null!=this.accumulatedMoments&&co(this.accumulatedMoments.map((e=>e.variable)))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map((e=>({name:e.originalName,tensor:e.variable}))))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.accumulatedMoments=e.slice(t,2*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map((e=>({originalName:e.name,variable:e.tensor.variable(n)}))))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}Qo.className="RMSProp",Ui(Qo);const el=Ka({acos_:function(e){const t={x:Ha(e,"x","acos")};return $a.runKernel(Ge,t)}}),tl=Ka({acosh_:function(e){const t={x:Ha(e,"x","acosh")};return $a.runKernel(Xe,t)}}),nl=Ka({addN_:function(e){Q(Array.isArray(e),(()=>"The argument passed to tf.addN() must be a list of tensors")),Q(e.length>=1,(()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`));const t=e.map(((e,t)=>Ha(e,`tensors${t}`,"addN"))),n=t[0];t.forEach((e=>{if(e.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")})),t.forEach((e=>{if(!se(e.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")}));const r=t;return $a.runKernel(qe,r)}}),rl=Ka({all_:function(e,t=null,n=!1){const r={x:Ha(e,"x","all","bool")},a={axis:t,keepDims:n};return $a.runKernel(Ye,r,a)}}),al=Ka({any_:function(e,t=null,n=!1){const r={x:Ha(e,"x","any","bool")},a={axis:t,keepDims:n};return $a.runKernel(Je,r,a)}}),sl=Ka({argMax_:function(e,t=0){const n={x:Ha(e,"x","argMax")},r={axis:t};return $a.runKernel(Ze,n,r)}}),il=Ka({argMin_:function(e,t=0){const n={x:Ha(e,"x","argMin")},r={axis:t};return $a.runKernel(Qe,n,r)}}),ol=Ka({asin_:function(e){const t={x:Ha(e,"x","asin")};return $a.runKernel(et,t)}}),ll=Ka({asinh_:function(e){const t={x:Ha(e,"x","asinh")};return $a.runKernel(tt,t)}}),ul=Ka({atan_:function(e){const t={x:Ha(e,"x","atan")};return $a.runKernel(nt,t)}}),cl=Ka({atan2_:function(e,t){let n=Ha(e,"a","atan2"),r=Ha(t,"b","atan2");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(at,a)}}),hl=Ka({atanh_:function(e){const t={x:Ha(e,"x","atanh")};return $a.runKernel(rt,t)}});function fl(e,t,n,r,a="NHWC",s){return ml(e,[...t,e[3]],n,s,r,null,null,El(a))}function dl(e,t,n,r,a,s,i="channelsLast"){const[o,l]=bl(t);let u;if("channelsLast"===i)u=[o,l,e[3],e[3]];else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);u=[o,l,e[1],e[1]]}return ml(e,u,n,r,a,s,!1,i)}function pl(e,t,n,r,a,s,i="NDHWC"){const[o,l,u]=vl(t);let c,h;if("NDHWC"===i)h="channelsLast",c=[o,l,u,e[4],e[4]];else{if("NCDHW"!==i)throw new Error(`Unknown dataFormat ${i}`);h="channelsFirst",c=[o,l,u,e[1],e[1]]}return gl(e,c,n,r,a,!1,h,s)}function ml(e,t,n,r,a,s,i=!1,o="channelsLast"){let[l,u,c,h]=[-1,-1,-1,-1];if("channelsLast"===o)[l,u,c,h]=e;else{if("channelsFirst"!==o)throw new Error(`Unknown dataFormat ${o}`);[l,h,u,c]=e}const[f,d,,p]=t,[m,g]=bl(n),[y,b]=bl(r),v=wl(f,y),w=wl(d,b),{padInfo:_,outHeight:x,outWidth:k}=function(e,t,n,r,a,s,i,o,l){let u,c,h;if("number"==typeof e){u={top:e,bottom:e,left:e,right:e,type:0===e?"VALID":"NUMBER"};const a=function(e,t,n,r,a){null==r&&(r=yl(e,t,n));const s=e[1];return[_l((e[0]-t+2*r)/n+1,a),_l((s-t+2*r)/n+1,a)]}([t,n],s,r,e,o);c=a[0],h=a[1]}else if("same"===e){c=Math.ceil(t/r),h=Math.ceil(n/a);const e=Math.max(0,(c-1)*r+s-t),o=Math.max(0,(h-1)*a+i-n),l=Math.floor(e/2),f=e-l,d=Math.floor(o/2);u={top:l,bottom:f,left:d,right:o-d,type:"SAME"}}else if("valid"===e)u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/r),h=Math.ceil((n-i+1)/a);else{if("object"!=typeof e)throw Error(`Unknown padding parameter: ${e}`);{const f="channelsLast"===l?e[1][0]:e[2][0],d="channelsLast"===l?e[1][1]:e[2][1],p="channelsLast"===l?e[2][0]:e[3][0],m="channelsLast"===l?e[2][1]:e[3][1];u={top:f,bottom:d,left:p,right:m,type:0===f&&0===d&&0===p&&0===m?"VALID":"EXPLICIT"},c=_l((t-s+f+d)/r+1,o),h=_l((n-i+p+m)/a+1,o)}}return{padInfo:u,outHeight:c,outWidth:h}}(a,u,c,m,g,v,w,s,o),E=i?p*h:p;let C;return"channelsFirst"===o?C=[l,E,x,k]:"channelsLast"===o&&(C=[l,x,k,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:c,inChannels:h,outHeight:x,outWidth:k,outChannels:E,padInfo:_,strideHeight:m,strideWidth:g,filterHeight:f,filterWidth:d,effectiveFilterHeight:v,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:C,filterShape:t}}function gl(e,t,n,r,a,s=!1,i="channelsLast",o){let[l,u,c,h,f]=[-1,-1,-1,-1,-1];if("channelsLast"===i)[l,u,c,h,f]=e;else{if("channelsFirst"!==i)throw new Error(`Unknown dataFormat ${i}`);[l,f,u,c,h]=e}const[d,p,m,,g]=t,[y,b,v]=vl(n),[w,_,x]=vl(r),k=wl(d,w),E=wl(p,_),C=wl(m,x),{padInfo:S,outDepth:N,outHeight:I,outWidth:A}=function(e,t,n,r,a,s,i,o,l,u,c){let h,f,d,p;if("number"==typeof e){h={top:e,bottom:e,left:e,right:e,front:e,back:e,type:0===e?"VALID":"NUMBER"};const s=function(e,t,n,r,a,s){null==a&&(a=yl(e,t,r));const i=e[1],o=e[2];return[_l((e[0]-t+2*a)/r+1,s),_l((i-t+2*a)/r+1,s),_l((o-t+2*a)/r+1,s),1]}([t,n,r,1],o,0,a,e,c);f=s[0],d=s[1],p=s[2]}else if("same"===e){f=Math.ceil(t/a),d=Math.ceil(n/s),p=Math.ceil(r/i);const e=(f-1)*a+o-t,c=(d-1)*s+l-n,m=(p-1)*i+u-r,g=Math.floor(e/2),y=e-g,b=Math.floor(c/2),v=c-b,w=Math.floor(m/2);h={top:b,bottom:v,left:w,right:m-w,front:g,back:y,type:"SAME"}}else{if("valid"!==e)throw Error(`Unknown padding parameter: ${e}`);h={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},f=Math.ceil((t-o+1)/a),d=Math.ceil((n-l+1)/s),p=Math.ceil((r-u+1)/i)}return{padInfo:h,outDepth:f,outHeight:d,outWidth:p}}(a,u,c,h,y,b,v,k,E,C,o),D=s?g*f:g;let T;return"channelsFirst"===i?T=[l,D,N,I,A]:"channelsLast"===i&&(T=[l,N,I,A,D]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:c,inWidth:h,inChannels:f,outDepth:N,outHeight:I,outWidth:A,outChannels:D,padInfo:S,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:d,filterHeight:p,filterWidth:m,effectiveFilterDepth:k,effectiveFilterHeight:E,effectiveFilterWidth:C,dilationDepth:w,dilationHeight:_,dilationWidth:x,inShape:e,outShape:T,filterShape:t}}function yl(e,t,n,r=1){const a=wl(t,r);return Math.floor((e[0]*(n-1)-n+a)/2)}function bl(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function vl(e){return"number"==typeof e?[e,e,e]:e}function wl(e,t){return t<=1?e:e+(e-1)*(t-1)}function _l(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function xl(e){const[t,n,r]=bl(e);return 1===t&&1===n&&1===r}function kl(e,t){return xl(e)||xl(t)}function El(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}const Cl=Ka({reshape_:function(e,t){const n={x:Ha(e,"x","reshape","string_or_numeric")},r={shape:t};return $a.runKernel(Zn,n,r)}}),Sl=Ka({avgPool_:function(e,t,n,r,a){const s=Ha(e,"x","avgPool","float32");Q(kl(n,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`));let i=s,o=!1;3===s.rank&&(o=!0,i=Cl(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Q(4===i.rank,(()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`)),null!=a&&Q(ie(r),(()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a};let c=$a.runKernel(st,l,u);return c=js(c,s.dtype),o?Cl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Nl=Ka({avgPool3d_:function(e,t,n,r,a,s="NDHWC"){const i=Ha(e,"x","avgPool3d","float32");let o=i,l=!1;4===i.rank&&(l=!0,o=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Q(5===o.rank,(()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`)),Q("NDHWC"===s,(()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),null!=a&&Q(ie(r),(()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const u={x:o},c={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s};let h=$a.runKernel(ot,u,c);return h=js(h,o.dtype),l?Cl(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),Il=Ka({concat_:function(e,t=0){Q(e.length>=1,(()=>"Pass at least one tensor to concat"));const n=Ga(e,"tensors","concat","string_or_numeric");if("complex64"===n[0].dtype&&n.forEach((e=>{if("complex64"!==e.dtype)throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${e.dtype}. `)})),1===n.length)return Hs(n[0]);const r=n,a={axis:t};return $a.runKernel(bt,r,a)}}),Al=Ka({sigmoid_:function(e){const t={x:Ha(e,"x","sigmoid")};return $a.runKernel(pr,t)}}),Dl=Ka({slice_:function(e,t,n){const r=Ha(e,"x","slice","string_or_numeric");if(0===r.rank)throw new Error("Slicing scalar is not possible");const a={x:r},s={begin:t,size:n};return $a.runKernel(cr,a,s)}}),Tl=Ka({tanh_:function(e){const t={x:Ha(e,"x","tanh")};return $a.runKernel(Nr,t)}}),Fl=Ka({basicLSTMCell_:function(e,t,n,r,a,s){const i=Ha(e,"forgetBias","basicLSTMCell"),o=Ha(t,"lstmKernel","basicLSTMCell"),l=Ha(n,"lstmBias","basicLSTMCell"),u=Ha(r,"data","basicLSTMCell"),c=Ha(a,"c","basicLSTMCell"),h=Ha(s,"h","basicLSTMCell"),f=Il([u,h],1),d=ci(f,o),p=ko(d,l),m=p.shape[0],g=p.shape[1]/4,y=[m,g],b=Dl(p,[0,0],y),v=Dl(p,[0,g],y),w=Dl(p,[0,2*g],y),_=Dl(p,[0,3*g],y),x=ko(So(Al(b),Tl(v)),So(c,Al(ko(i,w))));return[x,So(Tl(x),Al(_))]}}),Rl=Ka({batchToSpaceND_:function(e,t,n){const r=Ha(e,"x","batchToSpaceND"),a=t.reduce(((e,t)=>e*t));Q(r.rank>=1+t.length,(()=>`input rank is ${r.rank} but should be > than blockShape.length ${t.length}`)),Q(n.length===t.length,(()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`)),Q(r.shape[0]%a==0,(()=>`input tensor batch is ${r.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${a}`));const s={x:r},i={blockShape:t,crops:n};return $a.runKernel(ct,s,i)}}),Ol=Ka({batchNorm_:function(e,t,n,r,a,s){null==s&&(s=.001);const i=Ha(e,"x","batchNorm"),o=Ha(t,"mean","batchNorm"),l=Ha(n,"variance","batchNorm");let u,c;null!=a&&(u=Ha(a,"scale","batchNorm")),null!=r&&(c=Ha(r,"offset","batchNorm")),Q(o.rank===l.rank,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Q(null==c||o.rank===c.rank,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Q(null==u||o.rank===u.rank,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));const h={x:function(e){let t;return t=0===e.rank||1===e.rank?Cl(e,[1,1,1,e.size]):2===e.rank?Cl(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?Cl(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e,t}(i),scale:u,offset:c,mean:o,variance:l},f={varianceEpsilon:s},d=$a.runKernel(Jt,h,f);return Cl(d,i.shape)}}),Bl=Ka({batchNorm2d_:function(e,t,n,r,a,s){const i=Ha(e,"x","batchNorm"),o=Ha(t,"mean","batchNorm"),l=Ha(n,"variance","batchNorm");let u,c;return null!=a&&(u=Ha(a,"scale","batchNorm")),null!=r&&(c=Ha(r,"offset","batchNorm")),Q(2===i.rank,(()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`)),Q(2===o.rank||1===o.rank,(()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`)),Q(2===l.rank||1===l.rank,(()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`)),null!=u&&Q(2===u.rank||1===u.rank,(()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`)),null!=c&&Q(2===c.rank||1===c.rank,(()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`)),Ol(i,o,l,c,u,s)}}),Ml=Ka({batchNorm3d_:function(e,t,n,r,a,s){const i=Ha(e,"x","batchNorm"),o=Ha(t,"mean","batchNorm"),l=Ha(n,"variance","batchNorm");let u,c;return null!=a&&(u=Ha(a,"scale","batchNorm")),null!=r&&(c=Ha(r,"offset","batchNorm")),Q(3===i.rank,(()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`)),Q(3===o.rank||1===o.rank,(()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`)),Q(3===l.rank||1===l.rank,(()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`)),null!=u&&Q(3===u.rank||1===u.rank,(()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`)),null!=c&&Q(3===c.rank||1===c.rank,(()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`)),Ol(i,o,l,c,u,s)}}),$l=Ka({batchNorm4d_:function(e,t,n,r,a,s){const i=Ha(e,"x","batchNorm"),o=Ha(t,"mean","batchNorm"),l=Ha(n,"variance","batchNorm");let u,c;return null!=a&&(u=Ha(a,"scale","batchNorm")),null!=r&&(c=Ha(r,"offset","batchNorm")),Q(4===i.rank,(()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`)),Q(4===o.rank||1===o.rank,(()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`)),Q(4===l.rank||1===l.rank,(()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`)),null!=u&&Q(4===u.rank||1===u.rank,(()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`)),null!=c&&Q(4===c.rank||1===c.rank,(()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`)),Ol(i,o,l,c,u,s)}}),Pl=Ka({bincount_:function(e,t,n){const r=Ha(e,"x","bincount"),a=Ha(t,"weights","bincount");Q("int32"===r.dtype,(()=>`Error in bincount: input dtype must be int32, but got ${r.dtype}`)),Q(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Q(a.size===r.size||0===a.size,(()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${r.shape}, weights shape: ${a.shape}.`));const s={x:r,weights:a},i={size:n};return $a.runKernel(ht,s,i)}}),Ll=Ka({broadcastTo_:function(e,t){let n=Ha(e,"broadcastTo","x");const r=n.shape;if(t.some((e=>!(e>0)||e%1!=0)))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){const e=n.shape.slice();for(;e.length=0;e--)if(a[e]===t[e])s[e]=1;else if(1!==n.shape[e])throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${t}].`);if(0===s.map(((e,t)=>e>1?t:-1)).filter((e=>e>=0)).length)return Hs(n);const i={x:n},o={reps:s};return $a.runKernel(Ir,i,o)}}),zl=Ka({ceil_:function(e){const t={x:Ha(e,"x","ceil")};return $a.runKernel(pt,t)}}),Wl=Ka({clipByValue_:function(e,t,n){const r=Ha(e,"x","clipByValue");Q(t<=n,(()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`));const a={x:r},s={clipValueMin:t,clipValueMax:n};return $a.runKernel(mt,a,s)}}),Ul=Ka({concat1d_:function(e){return Il(e,0)}}),Vl=Ka({concat2d_:function(e,t){return Il(e,t)}}),jl=Ka({concat3d_:function(e,t){return Il(e,t)}}),Hl=Ka({concat4d_:function(e,t){return Il(e,t)}}),Gl=Ka({conv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=Ha(e,"x","conv2d"),l=Ha(t,"filter","conv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=Cl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Q(4===u.rank,(()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`)),Q(4===l.rank,(()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`)),null!=i&&Q(ie(r),(()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h="NHWC"===a?u.shape[3]:u.shape[1];Q(h===l.shape[2],(()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${l.shape[2]}.`)),Q(kl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`));const f={x:u,filter:l},d={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},p=$a.runKernel(vt,f,d);return c?Cl(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),Xl=Ka({conv1d_:function(e,t,n,r,a="NWC",s=1,i){const o=Ha(e,"x","conv1d"),l=Ha(t,"filter","conv1d");let u=o,c=!1;2===o.rank&&(c=!0,u=Cl(o,[1,o.shape[0],o.shape[1]])),Q(3===u.rank,(()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`)),Q(3===l.rank,(()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`)),null!=i&&Q(ie(r),(()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Q(u.shape[2]===l.shape[1],(()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`)),Q(kl(n,s),(()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`)),Q("NWC"===a,(()=>`Error in conv1d: got dataFormat of ${a} but only NWC is currently supported.`));const h=Cl(l,[1,l.shape[0],l.shape[1],l.shape[2]]),f=Cl(u,[u.shape[0],1,u.shape[1],u.shape[2]]),d=Gl(f,h,[1,n],r,"NHWC",[1,s],i);return Cl(d,c?[d.shape[2],d.shape[3]]:[d.shape[0],d.shape[2],d.shape[3]])}}),Kl=Ka({conv2DBackpropInput_:function(e,t,n,r,a,s="NHWC",i){Q(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let o=e,l=t,u=!1;3===t.rank&&(u=!0,l=Cl(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),Q(4===o.length,(()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`)),Q(4===l.rank,(()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`)),Q(4===n.rank,(()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`));const c="NHWC"===s?o[3]:o[1],h="NHWC"===s?l.shape[3]:l.shape[1];Q(c===n.shape[2],(()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${n.shape[2]}.`)),Q(h===n.shape[3],(()=>`Error in conv2dDerInput: depth of output (${h}) must match output depth for filter ${n.shape[3]}.`)),null!=i&&Q(ie(a),(()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const f={dy:l,filter:n},d={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,inputShape:o},p=$a.runKernel(_t,f,d);return u?Cl(p,[p.shape[1],p.shape[2],p.shape[3]]):p}}),ql=Ka({conv2dTranspose_:function(e,t,n,r,a,s){const i=Ha(e,"x","conv2dTranspose"),o=Ha(t,"filter","conv2dTranspose");return Kl(n,i,o,r,a,"NHWC",s)}}),Yl=Ka({conv3d_:function(e,t,n,r,a="NDHWC",s=[1,1,1]){const i=Ha(e,"x","conv3d"),o=Ha(t,"filter","conv3d");let l=i,u=!1;4===i.rank&&(u=!0,l=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Q(5===l.rank,(()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`)),Q(5===o.rank,(()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`)),Q(l.shape[4]===o.shape[3],(()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`)),Q(kl(n,s),(()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Q("NDHWC"===a,(()=>`Error in conv3d: got dataFormat of ${a} but only NDHWC is currently supported.`));const c={x:l,filter:o},h={strides:n,pad:r,dataFormat:a,dilations:s},f=$a.runKernel(xt,c,h);return u?Cl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Jl=Ka({conv3DBackpropInput_:function(e,t,n,r,a){Q(e.length===t.rank,(()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`));let s=e,i=t,o=!1;4===t.rank&&(o=!0,i=Cl(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);const l=s[4],u=i.shape[4];Q(5===s.length,(()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`)),Q(5===i.rank,(()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`)),Q(5===n.rank,(()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`)),Q(l===n.shape[3],(()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`)),Q(u===n.shape[4],(()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`));const c={dy:i,filter:n},h={pad:a,strides:r,inputShape:s},f=$a.runKernel(Et,c,h);return o?Cl(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}}),Zl=Ka({conv3dTranspose_:function(e,t,n,r,a){const s=Ha(e,"x","conv3dTranspose"),i=Ha(t,"filter","conv3dTranspose");return Jl(n,s,i,r,a)}}),Ql=Ka({cos_:function(e){const t={x:Ha(e,"x","cos")};return $a.runKernel(Ct,t)}}),eu=Ka({cosh_:function(e){const t={x:Ha(e,"x","cosh")};return $a.runKernel(St,t)}}),tu=Ka({cumsum_:function(e,t=0,n=!1,r=!1){const a={x:Ha(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:r};return $a.runKernel(Nt,a,s)}}),nu=Ka({denseBincount_:function(e,t,n,r=!1){const a=Ha(e,"x","denseBincount"),s=Ha(t,"weights","denseBincount");Q("int32"===a.dtype,(()=>`Error in denseBincount: input dtype must be int32, but got ${a.dtype}`)),Q(a.rank<=2,(()=>`Error in denseBincount: input must be at most rank 2, but got rank ${a.rank}.`)),Q(n>=0,(()=>`size must be non-negative, but got ${n}.`)),Q(s.size===a.size||0===s.size,(()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${a.shape}, weights shape: ${s.shape}.`));const i={x:a,weights:s},o={size:n,binaryOutput:r};return $a.runKernel(At,i,o)}}),ru=Ka({depthToSpace_:function(e,t,n="NHWC"){const r=Ha(e,"x","depthToSpace"),a="NHWC"===n?r.shape[1]:r.shape[2],s="NHWC"===n?r.shape[2]:r.shape[3],i="NHWC"===n?r.shape[3]:r.shape[1];Q(a*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${a} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Q(s*t>=0,(()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${r.shape}`)),Q(i%(t*t)==0,(()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${r.shape}`));const o={x:r},l={blockSize:t,dataFormat:n};return $a.runKernel(Dt,o,l)}}),au=Ka({depthwiseConv2d_:function(e,t,n,r,a="NHWC",s=[1,1],i){const o=Ha(e,"x","depthwiseConv2d"),l=Ha(t,"filter","depthwiseConv2d");let u=o,c=!1;3===o.rank&&(c=!0,u=Cl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),Q(4===u.rank,(()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`)),Q(4===l.rank,(()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`)),Q(u.shape[3]===l.shape[2],(()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`)),null!=i&&Q(ie(r),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`));const h={x:u,filter:l},f={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i},d=$a.runKernel(Tt,h,f);return c?Cl(d,[d.shape[1],d.shape[2],d.shape[3]]):d}}),su=Ka({diag_:function(e){const t={x:Ha(e,"x","diag")};return $a.runKernel(Ot,t)}}),iu=Ka({dilation2d_:function(e,t,n,r,a=[1,1],s="NHWC"){const i=Ha(e,"x","dilation2d"),o=Ha(t,"filter","dilation2d");Q(3===i.rank||4===i.rank,(()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`)),Q(3===o.rank,(()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`)),Q("NHWC"===s,(()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`));let l=i,u=!1;3===i.rank&&(l=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);const c={x:l,filter:o},h={strides:n,pad:r,dilations:a},f=$a.runKernel(Bt,c,h);return u?Cl(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),ou=Ka({equal_:function(e,t){let n=Ha(e,"a","equal"),r=Ha(t,"b","equal");[n,r]=Ia(n,r),Ko(n.shape,r.shape);const a={a:n,b:r};return $a.runKernel(Ut,a)}}),lu=Ka({where_:function(e,t,n){const r=Ha(t,"a","where"),a=Ha(n,"b","where"),s=Ha(e,"condition","where","bool"),i=Ko(r.shape,a.shape),o=Ll(r,i),l=Ll(a,i);1===s.rank&&Q(s.shape[0]===r.shape[0],(()=>"The first dimension of `a` must match the size of `condition`.")),1!==s.rank&&ee(s.shape,l.shape,"Error in where: ");const u={condition:s,t:o,e:l};return $a.runKernel(lr,u)}}),uu=Ka({divNoNan_:function(e,t){let n=Ha(e,"a","div"),r=Ha(t,"b","div");[n,r]=Ia(n,r);const a=Co(n,r),s=Ao(a),i=ou(r,s);return lu(i,s,a)}}),cu=Ka({dot_:function(e,t){const n=Ha(e,"t1","dot"),r=Ha(t,"t2","dot");Q(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),(()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${r.rank}.`));const a=1===n.rank?n.size:n.shape[1],s=1===r.rank?r.size:r.shape[0];if(Q(a===s,(()=>`Error in dot: inner dimensions of inputs must match, but got ${a} and ${s}.`)),1===n.rank&&1===r.rank){const e=Cl(n,[1,-1]),t=Cl(r,[-1,1]),a=ci(e,t);return Cl(a,[])}if(1===n.rank&&2===r.rank){const e=Cl(n,[1,-1]),t=Cl(r,[r.shape[0],r.shape[1]]),a=ci(e,t);return Cl(a,[a.size])}if(2===n.rank&&1===r.rank){const e=Cl(r,[-1,1]),t=ci(n,e);return Cl(t,[t.size])}{const e=Cl(r,[r.shape[0],r.shape[1]]);return ci(n,e)}}}),hu=Ka({elu_:function(e){const t={x:Ha(e,"x","elu")};return $a.runKernel(Lt,t)}}),fu=Ka({erf_:function(e){let t=Ha(e,"x","erf");Q("int32"===t.dtype||"float32"===t.dtype,(()=>"Input dtype must be `int32` or `float32`.")),"int32"===t.dtype&&(t=js(t,"float32"));const n={x:t};return $a.runKernel(Wt,n)}}),du=Ka({exp_:function(e){const t={x:Ha(e,"x","exp")};return $a.runKernel(Vt,t)}}),pu=Ka({expandDims_:function(e,t=0){const n=Ha(e,"x","expandDims","string_or_numeric");Q(t<=n.rank,(()=>"Axis must be <= rank of the tensor"));const r={input:n},a={dim:t};return $a.runKernel(jt,r,a)}}),mu=Ka({expm1_:function(e){const t={x:Ha(e,"x","expm1")};return $a.runKernel(Ht,t)}}),gu=Ka({tile_:function(e,t){const n=Ha(e,"x","tile","string_or_numeric");Q(n.rank===t.length,(()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`));const r={x:n},a={reps:t};return $a.runKernel(Ir,r,a)}}),yu=Ka({eye_:function(e,t,n,r="float32"){null==t&&(t=e);const a=Vs([e,t],r),s=e<=t?e:t;for(let e=0;e`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`)),Q(ie(t),(()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`));let i=s,o=!1;3===s.rank&&(o=!0,i=Cl(s,[1,s.shape[0],s.shape[1],s.shape[2]]));const l={x:i},u={depthRadius:t,bias:n,alpha:r,beta:a},c=$a.runKernel(vn,l,u);return o?Cl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Tu=Ka({log_:function(e){const t={x:Ha(e,"x","log")};return $a.runKernel(dn,t)}}),Fu=Ka({log1p_:function(e){const t={x:Ha(e,"x","log1p")};return $a.runKernel(pn,t)}}),Ru=Ka({neg_:function(e){const t={x:Ha(e,"x","neg")};return $a.runKernel(Bn,t)}}),Ou=Ka({softplus_:function(e){const t={x:Ha(e,"x","softplus")};return $a.runKernel(mr,t)}}),Bu=Ka({logSigmoid_:function(e){const t=Ha(e,"x","logSigmoid");return Bo((e=>({value:Ru(Ou(Ru(e))),gradFunc:t=>So(t,Al(Ru(e)))})))(t)}}),Mu=Ka({max_:function(e,t=null,n=!1){const r={x:Ha(e,"x","max")},a={reductionIndices:t,keepDims:n};return $a.runKernel(_n,r,a)}}),$u=Ka({sum_:function(e,t=null,n=!1){let r=Ha(e,"x","sum");"bool"===r.dtype&&(r=js(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return $a.runKernel(yr,a,s)}}),Pu=Ka({logSoftmax_:function(e,t=-1){const n=Ha(e,"logits","logSoftmax");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Bo(((e,n)=>{const r=Mu(e,t,!0),a=Vo(e,r),s=Vo(js(a,"float32"),Tu($u(du(a),t,!0)));return n([s]),{value:s,gradFunc:(e,n)=>{const[r]=n,a=du(r);return Vo(e,So($u(e,t,!0),a))}}}))(n)}});function Lu(e,t){for(let n=0;ne[t]))]}function Uu(e,t){return zu(e,t.map((e=>1)),t)}function Vu(e,t,n){Q(Lu(t,n),(()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`))}function ju(e,t){if(Lu(e,t))return null;const n=[];for(let r=0;rn.push(e))),n}function Hu(e){return e.map(((e,t)=>[t,e])).sort(((e,t)=>e[1]-t[1])).map((e=>e[0]))}function Gu(e,t){const n=[];for(let r=t-e;r`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`)),Q(kl(n,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '1'`)),null!=a&&Q(ie(r),(()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const l={x:i},u={filterSize:t,strides:n,pad:r,dimRoundingMode:a},c=$a.runKernel(kn,l,u);return o?Cl(c,[c.shape[1],c.shape[2],c.shape[3]]):c}}),Qu=Ka({maxPool3d_:function(e,t=[1,1,1],n,r,a,s="NDHWC"){const i=Ha(e,"x","maxPool3d");let o=i,l=!1;4===i.rank&&(l=!0,o=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),Q(5===o.rank,(()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`)),Q("NDHWC"===s,(()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`)),null!=a&&Q(ie(r),(()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${r}.`));const u={x:o},c={filterSize:t,strides:n,pad:r,dimRoundingMode:a,dataFormat:s},h=$a.runKernel(Cn,u,c);return l?Cl(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}}),ec=Ka({maxPoolWithArgmax_:function(e,t,n,r,a=!1){const s={x:Ha(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:r,includeBatchInIndex:a},o=$a.runKernel(Nn,s,i);return{result:o[0],indexes:o[1]}}}),tc=Ka({mean_:function(e,t=null,n=!1){const r={x:Ha(e,"x","mean")},a={axis:t,keepDims:n};return $a.runKernel(In,r,a)}}),nc=Ka({min_:function(e,t=null,n=!1){const r={x:Ha(e,"x","min")},a={axis:t,keepDims:n};return $a.runKernel(An,r,a)}}),rc=Ka({minimum_:function(e,t){let n=Ha(e,"a","minimum"),r=Ha(t,"b","minimum");[n,r]=Ia(n,r),"bool"===n.dtype&&(n=js(n,"int32"),r=js(r,"int32")),Ko(n.shape,r.shape);const a={a:n,b:r};return $a.runKernel(Dn,a)}}),ac=Ka({mirrorPad_:function(e,t,n){Q("reflect"===n||"symmetric"===n,(()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`));const r=Ha(e,"x","mirrorPad");if(0===r.rank)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");Q(t.length===r.rank,(()=>`Padding doesn't match input. Must be ${r.rank}. Got ${t.length}.`));const a="reflect"===n?1:0;for(let e=0;e"Invalid number of paddings. Must be length of 2 each.")),Q(t[e][0]>=0&&t[e][0]<=r.shape[e]-a&&t[e][1]>=0&&t[e][1]<=r.shape[e]-a,(()=>`Padding in dimension ${e} cannot be greater than or equal to ${r.shape[e]-a} or less than 0 for input of shape ${r.shape}`));const s={paddings:t,mode:n},i={x:r};return $a.runKernel(Tn,i,s)}}),sc=Ka({mod_:function(e,t){let n=Ha(e,"a","mod"),r=Ha(t,"b","mod");[n,r]=Ia(n,r);const a={a:n,b:r};return $a.runKernel(Fn,a)}}),ic=Ka({moments_:function(e,t=null,n=!1){const r=de(t,(e=Ha(e,"x","moments")).shape),a=tc(e,r,n);let s=a.shape;n||(s=Uu(a.shape,r));const i=Io(Vo(js(e,"float32"),Cl(a,s)));return{mean:a,variance:tc(i,r,n)}}}),oc=Ka({multiRNNCell_:function(e,t,n,r){const a=Ha(t,"data","multiRNNCell"),s=Ga(n,"c","multiRNNCell"),i=Ga(r,"h","multiRNNCell");let o=a;const l=[];for(let t=0;t2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();const o={logits:1===i?Cl(a,[1,-1]):a},l={numSamples:t,seed:n,normalized:r},u=$a.runKernel(Rn,o,l);return 1===i?Cl(u,[u.size]):u}}),uc=Ka({notEqual_:function(e,t){let n=Ha(e,"a","notEqual"),r=Ha(t,"b","notEqual");[n,r]=Ia(n,r),Ko(n.shape,r.shape);const a={a:n,b:r};return $a.runKernel(Mn,a)}});function cc(e,t="float32"){if("complex64"===t){const t=cc(e,"float32"),n=cc(e,"float32");return qa(t,n)}const n=Re(re(e),t);return $a.makeTensor(n,e,t)}function hc(e,t="float32"){if("complex64"===t){const t=hc(e,"float32"),n=cc(e,"float32");return qa(t,n)}const n=Fe(re(e),t);return $a.makeTensor(n,e,t)}const fc=Ka({onesLike_:function(e){const t={x:Ha(e,"x","onesLike")};return $a.runKernel(zn,t)}}),dc=Ka({outerProduct_:function(e,t){const n=Ha(e,"v1","outerProduct"),r=Ha(t,"v2","outerProduct");Q(1===n.rank&&1===r.rank,(()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${r.rank}.`));const a=Cl(n,[-1,1]),s=Cl(r,[1,-1]);return ci(a,s)}}),pc=Ka({pad_:function(e,t,n=0){const r=Ha(e,"x","pad");if(0===r.rank)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const a={paddings:t,constantValue:n},s={x:r};return $a.runKernel(Vn,s,a)}}),mc=Ka({pad1d_:function(e,t,n=0){return Q(2===t.length,(()=>"Invalid number of paddings. Must be length of 2.")),pc(e,[t],n)}}),gc=Ka({pad2d_:function(e,t,n=0){return Q(2===t.length&&2===t[0].length&&2===t[1].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),pc(e,t,n)}}),yc=Ka({pad3d_:function(e,t,n=0){return Q(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),pc(e,t,n)}}),bc=Ka({pad4d_:function(e,t,n=0){return Q(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,(()=>"Invalid number of paddings. Must be length of 2 each.")),pc(e,t,n)}}),vc=Ka({spaceToBatchND_:function(e,t,n){const r=Ha(e,"x","spaceToBatchND");Q(r.rank>=1+t.length,(()=>`input rank ${r.rank} should be > than [blockShape] ${t.length}`)),Q(n.length===t.length,(()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`)),Q(r.shape.reduce(((e,r,a)=>a>0&&a<=t.length?e&&(r+n[a-1][0]+n[a-1][1])%t[a-1]==0:e),!0),(()=>`input spatial dimensions ${r.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`));const a={x:r},s={blockShape:t,paddings:n};return $a.runKernel(br,a,s)}}),wc=Ka({pool_:function(e,t,n,r,a,s){null==a&&(a=[1,1]),null==s&&(s=1),0===r&&(r="valid");const i=Ha(e,"x","maxPool");let o=i,l=!1;3===i.rank&&(l=!0,o=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2]])),Q(kl(s,a),(()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${a}'`));const u=dl(o.shape,t,s,a,r),c=[u.dilationHeight,u.dilationWidth];let h;h="same"===r?function(e,t){const n=e.map(((e,n)=>e+(e-1)*(t[n]-1))).map((e=>e-1)),r=n.map((e=>Math.floor(e/2))),a=n.map(((e,t)=>e-r[t]));return n.map(((e,t)=>[r[t],a[t]]))}([u.filterHeight,u.filterWidth],c):[[0,0],[0,0]];const f=1===c[0]&&1===c[1],[d,p]=function(e,t,n){const r=n.map((e=>e[0])),a=n.map((e=>e[1])),s=e.concat(r,a),i=t.map(((e,t)=>(e-s[t]%e)%e)),o=a.map(((e,t)=>e+i[t]));return[t.map(((e,t)=>[r[t],o[t]])),t.map(((e,t)=>[0,i[t]]))]}([u.inHeight,u.inWidth],c,h),m=f?r:"valid",g=f?o:vc(o,c,d),y=("avg"===n?()=>Sl(g,t,s,m):()=>Zu(g,t,s,m))(),b=f?y:Rl(y,c,p);return l?Cl(b,[b.shape[1],b.shape[2],b.shape[3]]):b}}),_c=Ka({prelu_:function(e,t){const n={x:Ha(e,"x","prelu"),alpha:Ha(t,"alpha","prelu")};return $a.runKernel(Gn,n)}}),xc=Ka({prod_:function(e,t=null,n=!1){let r=Ha(e,"x","prod");"bool"===r.dtype&&(r=js(r,"int32"));const a={x:r},s={axis:t,keepDims:n};return $a.runKernel(Xn,a,s)}}),kc=Ka({rand_:function(e,t,n){const r=re(e);let a=null;if(null==n||"float32"===n)a=new Float32Array(r);else if("int32"===n)a=new Int32Array(r);else{if("bool"!==n)throw new Error(`Unknown data type ${n}`);a=new Uint8Array(r)}for(let e=0;e=1||0===s);const i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*r*i,t=this.mean+this.stdDev*a*i,this.truncated&&!this.isValidTruncated(e)||(n=!0)}return this.truncated&&!this.isValidTruncated(t)||(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class Sc{constructor(e,t,n,r){this.alpha=e,this.beta=1/t,this.dtype=n;const a=r||Math.random();this.randu=Ec.alea(a.toString()),this.randn=new Cc(0,1,n,!1,this.randu()),this.d=e<1?e+2/3:e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,r,a,s;for(;;){do{r=this.randn.nextValue(),s=1+this.c*r}while(s<=0);if(s*=s*s,e=r*r,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),a=this.randu(),anull==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=n,null==r&&(r=Math.random()),"number"==typeof r&&(r=r.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ec.alea(r)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}const Ic=Ka({randomGamma_:function(e,t,n=1,r="float32",a){if(null==n&&(n=1),null==r&&(r="float32"),"float32"!==r&&"int32"!==r)throw new Error(`Unsupported data type ${r}`);const s=new Sc(t,n,r,a),i=Vs(e,r);for(let e=0;e`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`)),Mc(t,0)}}),Pc=Ka({reverse2d_:function(e,t){const n=Ha(e,"x","reverse");return Q(2===n.rank,(()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`)),Mc(n,t)}}),Lc=Ka({reverse3d_:function(e,t){const n=Ha(e,"x","reverse");return Q(3===n.rank,(()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`)),Mc(n,t)}}),zc=Ka({reverse4d_:function(e,t){const n=Ha(e,"x","reverse");return Q(4===n.rank,(()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`)),Mc(n,t)}}),Wc=Ka({round_:function(e){const t={x:Ha(e,"x","round")};return $a.runKernel(sr,t)}}),Uc=Ka({rsqrt_:function(e){const t={x:Ha(e,"x","rsqrt")};return $a.runKernel(ir,t)}}),Vc=Ka({selu_:function(e){const t={x:Ha(e,"x","selu")};return $a.runKernel(ur,t)}}),jc=Ka({separableConv2d_:function(e,t,n,r,a,s=[1,1],i="NHWC"){const o=Ha(e,"x","separableConv2d"),l=Ha(t,"depthwiseFilter","separableConv2d"),u=Ha(n,"pointwiseFilter","separableConv2d");let c=o,h=!1;if(3===o.rank&&(h=!0,c=Cl(o,[1,o.shape[0],o.shape[1],o.shape[2]])),"NCHW"===i)throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");Q(4===c.rank,(()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`)),Q(4===l.rank,(()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`)),Q(4===u.rank,(()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`)),Q(1===u.shape[0],(()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`)),Q(1===u.shape[1],(()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`));const f=l.shape[2],d=l.shape[3];Q(u.shape[2]===f*d,(()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${f*d}, but got ${u.shape[2]}.`));const p=au(c,l,r,a,i,s),m=Gl(p,u,1,"valid",i);return h?Cl(m,[m.shape[1],m.shape[2],m.shape[3]]):m}}),Hc=async function(e,t){const n=Ha(e,"x","setdiff1d"),r=Ha(t,"y","setdiff1d");Q(n.dtype===r.dtype,(()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${r.dtype}).`)),Q(1===n.rank,(()=>`x should be 1D tensor, but got x (${n.shape}).`)),Q(1===r.rank,(()=>`y should be 1D tensor, but got y (${r.shape}).`));const a=await n.data(),s=await r.data(),i=new Set(s);let o=0;for(let e=0;e`slice1d expects a rank-1 tensor, but got a rank-${r.rank} tensor`)),Dl(r,[t],[n])}}),Yc=Ka({slice2d_:function(e,t,n){const r=Ha(e,"x","slice2d");return Q(2===r.rank,(()=>`slice2d expects a rank-2 tensor, but got a rank-${r.rank} tensor`)),Dl(r,t,n)}}),Jc=Ka({slice3d_:function(e,t,n){const r=Ha(e,"x","slice3d");return Q(3===r.rank,(()=>`slice3d expects a rank-3 tensor, but got a rank-${r.rank} tensor`)),Dl(r,t,n)}}),Zc=Ka({slice4d_:function(e,t,n){const r=Ha(e,"x","slice4d");return Q(4===r.rank,(()=>`slice4d expects a rank-4 tensor, but got a rank-${r.rank} tensor`)),Dl(r,t,n)}}),Qc=Ka({softmax_:function(e,t=-1){const n=Ha(e,"logits","softmax","float32");if(-1===t&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);const r={logits:n},a={dim:t};return $a.runKernel(wr,r,a)}}),eh=Ka({fft_:function(e){Q("complex64"===e.dtype,(()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`));const t={input:e};return $a.runKernel(Gt,t)}}),th=Ka({ifft_:function(e){Q("complex64"===e.dtype,(()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`));const t={input:e};return $a.runKernel(rn,t)}}),nh=Ka({irfft_:function(e){const t=e.shape[e.shape.length-1],n=e.size/t;let r;if(t<=2){const a=Cl(e,[n,t]);r=th(a)}else{const a=[n,2*(t-1)],s=Cl(Fc(e),[n,t]),i=Cl(xu(e),[n,t]),o=Mc(Dl(s,[0,1],[n,t-2]),1),l=So(Mc(Dl(i,[0,1],[n,t-2]),1),$o(-1)),u=Il([s,o],1),c=Il([i,l],1),h=Cl(qa(u,c),[a[0],a[1]]);r=th(h)}if(r=Fc(r),3===e.rank&&0!==e.shape[0]){const t=r,n=e.shape[0];r=Cl(r,[n,r.shape[0]/n,r.shape[1]]),t.dispose()}return r}}),rh=Ka({split_:function(e,t,n=0){const r={x:Ha(e,"x","split")},a={numOrSizeSplits:t,axis:n};return $a.runKernel(vr,r,a)}}),ah=Ka({rfft_:function(e,t){Q("float32"===e.dtype,(()=>`The dtype for rfft() must be real value but got ${e.dtype}`));let n=e.shape[e.shape.length-1];const r=e.size/n;let a;if(null!=t&&t0)),s=e.shape.map((e=>e));s[e.shape.length-1]=t,a=Dl(e,r,s),n=t}else if(null!=t&&t>n){const r=e.shape.map((e=>e));r[e.shape.length-1]=t-n,a=Il([e,cc(r)],e.shape.length-1),n=t}else a=e;const s=Ao(a),i=Cl(qa(a,s),[r,n]),o=eh(i),l=Math.floor(n/2)+1,u=Fc(o),c=xu(o),h=rh(u,[l,n-l],u.shape.length-1),f=rh(c,[l,n-l],c.shape.length-1),d=a.shape.slice();return d[a.shape.length-1]=l,Cl(qa(h[0],f[0]),d)}}),sh=Ka({squaredDifference_:function(e,t){let n=Ha(e,"a","squaredDifference"),r=Ha(t,"b","squaredDifference");[n,r]=Ia(n,r),Ko(n.shape,r.shape);const a={a:n,b:r};return $a.runKernel(_r,a,{})}}),ih=Ka({squeeze_:function(e,t){const n=Ha(e,"x","squeeze");return Cl(n,pe(n.shape,t).newShape)}}),oh=Ka({stack_:function(e,t=0){const n=Ga(e,"tensors","stack","string_or_numeric");Q(n.length>=1,(()=>"Pass at least one tensor to tf.stack")),n.length>0&&Q(t<=n[0].rank,(()=>"Axis must be <= rank of the tensor"));const r=n,a={axis:t};return $a.runKernel(Un,r,a)}}),lh=Ka({step_:function(e,t=0){const n={x:Ha(e,"x","step")},r={alpha:t};return $a.runKernel(Mr,n,r)}}),uh=Ka({stridedSlice_:function(e,t,n,r,a=0,s=0,i=0,o=0,l=0){const u={x:Ha(e,"x","stridedSlice")},c={begin:t,end:n,strides:r,beginMask:a,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return $a.runKernel(Cr,u,c)}}),ch=Ka({tan_:function(e){const t={x:Ha(e,"x","tan")};return $a.runKernel(Sr,t)}});function hh(e,t){te(e);const n=Ua(e,t);if(1!==n.length)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ya(e,null,n,t)}function fh(e,t,n){if(te(e),null!=t&&2!==t.length)throw new Error("tensor2d() requires shape to have two numbers");const r=Ua(e,n);if(2!==r.length&&1!==r.length)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Ya(e,t,r,n)}function dh(e,t,n){if(te(e),null!=t&&4!==t.length)throw new Error("tensor4d() requires shape to have four numbers");const r=Ua(e,n);if(4!==r.length&&1!==r.length)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Ya(e,t,r,n)}function ph(e,t,n){if(te(e),null!=t&&5!==t.length)throw new Error("tensor5d() requires shape to have five numbers");const r=Ua(e,n);if(5!==r.length&&1!==r.length)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Ya(e,t,r,n)}function mh(e,t,n){if(te(e),null!=t&&6!==t.length)throw new Error("tensor6d() requires shape to have six numbers");const r=Ua(e,n);if(6!==r.length&&1!==r.length)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===r.length&&null==t)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return Ya(e,t=t||r,r,n)}const gh=Ka({topk_:function(e,t=1,n=!0){const r=Ha(e,"x","topk");if(0===r.rank)throw new Error("topk() expects the input to be of rank 1 or higher");const a=r.shape[r.shape.length-1];if(t>a)throw new Error(`'k' passed to topk() must be <= the last dimension (${a}) but got ${t}`);const s={x:r},i={k:t,sorted:n},[o,l]=$a.runKernel(Ar,s,i);return{values:o,indices:l}}}),yh=Ka({truncatedNormal_:function(e,t=0,n=1,r,a){if(null!=r&&"bool"===r)throw new Error("Unsupported data type $ { dtype }");const s=new Cc(t,n,r,!0,a),i=Vs(e,r);for(let e=0;e0,(()=>"The input tensor must be at least 1D"));const r={x:n},a={axis:t},[s,i]=$a.runKernel(Fr,r,a);return{values:s,indices:i}}}),vh=Ka({unsortedSegmentSum_:function(e,t,n){const r=Ha(e,"x","unsortedSegmentSum"),a=Ha(t,"segmentIds","unsortedSegmentSum","int32");Q(ie(n),(()=>"numSegments must be of dtype int"));const s={x:r,segmentIds:a},i={numSegments:n};return $a.runKernel(Or,s,i)}}),wh=Ka({unstack_:function(e,t=0){const n=Ha(e,"x","unstack","string_or_numeric");Q(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`));const r={value:n},a={axis:t};return $a.runKernel(Rr,r,a)}});function _h(e,t=!0,n,r){return $a.makeVariable(e,t,n,r)}function xh(e,t){const n=[];for(let e=0;e0,(()=>"mask cannot be scalar")),ee(o.slice(s,s+i),a.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let e=s;e"Shape mismatch in v and x"));const l=$o(1),u=Vo(l,o);let c=So(Vo(i,s),u);if(a){Q(null!=r,(()=>"When using zeroDebias: true, step is required."));const e=Ha(r,"step","movingAverage");c=Co(c,Vo(l,Uo(o,e)))}return ko(s,c)}}),Ih=Ka({scatterND_:function(e,t,n){const r=Ha(e,"indices","scatterND","int32"),a=Ha(t,"updates","scatterND");xi(a,r,n);const s={indices:r,updates:a},i={shape:n};return $a.runKernel(or,s,i)}}),Ah=Ka({sparseToDense_:function(e,t,n,r=0){const a=Ha(e,"sparseIndices","sparseToDense","int32"),s=Ha(t,"sparseValues","sparseToDense"),i=Ha(r,"defaultValue","sparseToDense",s.dtype);!function(e,t,n,r){if("int32"!==e.dtype)throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const a=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);const i=t.size;if(0!==t.rank&&(1!==t.rank||i!==a))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${a}]`);if(t.dtype!==r.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}(a,s,n,i);const o={sparseIndices:a,sparseValues:s,defaultValue:i},l={outputShape:n};return $a.runKernel(Er,o,l)}}),Dh=Ka({gatherND_:function(e,t){const n=Ha(t,"indices","gatherND","int32"),r={params:Ha(e,"x","gatherND"),indices:n};return $a.runKernel(Qt,r)}}),Th=Ka({dropout_:function(e,t,n,r){const a=Ha(e,"x","dropout");if(Q("float32"===a.dtype,(()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${a.dtype} tensor instead.`)),Q(t>=0&&t<1,(()=>`rate must be a float in the range [0, 1), but got ${t}.`)),0===t)return e instanceof ya?a.clone():a;const s=function(e,t){if(null==t)return e.shape.slice();if(se(e.shape,t))return t;if(e.shape.length===t.length){const n=[];for(let r=0;r1,(()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${r.rank}`)),Q(r.rank-1===a.rank,(()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${r.rank} and targets rank ${a.rank}`)),ee(r.shape.slice(0,r.shape.length-1),a.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const s=r.shape[r.shape.length-1];Q(n>0&&n<=s,(()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`));const i=await r.data(),o=await a.data(),[l,u]=[i.length/s,s],c=me("bool",l);for(let e=0;et.value-e.value)),c[e]=0;for(let t=0;t`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`)),Q(4===l.rank,(()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`)),Q(4===n.length,(()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`));const u="NHWC"===s?o.shape[3]:o.shape[1],c="NHWC"===s?l.shape[3]:l.shape[1];Q(u===n[2],(()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`)),Q(c===n[3],(()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${n[3]}).`)),null!=i&&Q(ie(a),(()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`));const h={x:o,dy:l},f={strides:r,pad:a,dataFormat:s,dimRoundingMode:i,filterShape:n};return $a.runKernel(wt,h,f)}});function Mh(e,t,n){if(null==n||"linear"===n)return e;if("relu"===n)return So(e,lh(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function $h(e,t){let n=t;const r=Xo(e.shape,t.shape);return r.length>0&&(n=$u(n,r)),Cl(n,e.shape)}function Ph(e,t,n,r){if("linear"===t)return e;if("relu"===t)return Oc(e);if("elu"===t)return hu(e);if("relu6"===t)return Bc(e);if("prelu"===t)return _c(e,n);if("leakyrelu"===t)return Su(e,r);throw new Error(`Unknown fused activation ${t}.`)}const Lh=(e,t)=>!(e>0)||"linear"===t,zh=Ka({fusedConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",!1===Lh($a.state.gradientDepth,l)){let h=Gl(e,t,n,r,a,s,i);return null!=o&&(h=ko(h,o)),Ph(h,l,u,c)}const h=Ha(e,"x","conv2d"),f=Ha(t,"filter","conv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=Cl(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Q(4===d.rank,(()=>`Error in fused conv2d: input must be rank 4, but got rank ${d.rank}.`)),Q(4===f.rank,(()=>`Error in fused conv2d: filter must be rank 4, but got rank ${f.rank}.`)),null!=i&&Q(ie(r),(()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`)),Q(d.shape[3]===f.shape[2],(()=>`Error in conv2d: depth of input (${d.shape[3]}) must match input depth for filter ${f.shape[2]}.`)),Q(kl(n,s),(()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),Q("NHWC"===a,(()=>`Error in conv2d: got dataFormat of ${a} but only NHWC is currently supported.`));const m=ml(d.shape,f.shape,n,s,r,i);let g,y;null!=o&&(g=Ha(o,"bias","fused conv2d"),[g]=Ia(g,h),Ko(m.outShape,g.shape)),null!=u&&(y=Ha(u,"prelu weights","fused conv2d"));const b=(e,t)=>{const[a,i,o,u]=t,c=Mh(e,o,l);Q(xl(s),(()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`));const h=[Kl(i.shape,c,a,n,r),Bh(i,c,a.shape,n,r)];if(null!=u){const e=$h(u,c);h.push(e)}return h},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Bo(((e,t,n)=>{let r=$a.runKernel(zr,v,w);return n([t,e,r]),p&&(r=Cl(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Bo(((e,t,n,r)=>{let a=$a.runKernel(zr,v,w);return r([t,e,a,n]),p&&(a=Cl(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),Wh=Ka({depthwiseConv2dNativeBackpropFilter_:function(e,t,n,r,a,s=[1,1],i){let o=e;3===e.rank&&(o=Cl(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;3===l.rank&&(l=Cl(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={x:o,dy:l},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,filterShape:n};return $a.runKernel(Ft,u,c)}}),Uh=Ka({depthwiseConv2dNativeBackpropInput_:function(e,t,n,r,a,s=[1,1],i){let o=t,l=!1;3===t.rank&&(l=!0,o=Cl(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const u={dy:o,filter:n},c={strides:r,pad:a,dimRoundingMode:i,dilations:s,inputShape:e},h=$a.runKernel(Rt,u,c);return l?Cl(h,[h.shape[1],h.shape[2],h.shape[3]]):h}}),Vh=Ka({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:n,pad:r,dataFormat:a="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(!1===Lh($a.state.gradientDepth,l)){let h=au(e,t,n,r,a,s,i);return null!=o&&(h=ko(h,o)),Ph(h,l,u,c)}const h=Ha(e,"x","depthwiseConv2d"),f=Ha(t,"filter","depthwiseConv2d");let d=h,p=!1;3===h.rank&&(p=!0,d=Cl(h,[1,h.shape[0],h.shape[1],h.shape[2]])),Q(4===d.rank,(()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${d.rank}.`)),Q(4===f.rank,(()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${f.rank}.`)),Q(d.shape[3]===f.shape[2],(()=>`Error in fused depthwiseConv2d: number of input channels (${d.shape[3]}) must match the inChannels dimension in filter ${f.shape[2]}.`)),null==s&&(s=[1,1]),Q(kl(n,s),(()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`)),null!=i&&Q(ie(r),(()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${r}.`));const m=ml(d.shape,f.shape,n,s,r,i,!0);let g,y;null!=o&&(g=Ha(o,"bias","fused conv2d"),[g]=Ia(g,h),Ko(m.outShape,g.shape)),null!=u&&(y=Ha(u,"prelu weights","fused depthwiseConv2d"));const b=(e,t)=>{Q(xl(s),(()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`));const[a,o,u,c]=t,h=Mh(e,u,l),f=Uh(o.shape,h,a,n,r,s,i),d=Wh(o,h,a.shape,n,r,s,i);return null!=c?[f,d,$h(g,h)]:[f,d]},v={x:d,filter:f,bias:g,preluActivationWeights:y},w={strides:n,pad:r,dataFormat:a,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:c};return null==o?Bo(((e,t,n)=>{let r=$a.runKernel(Wr,v,w);return n([t,e,r]),p&&(r=Cl(r,[r.shape[1],r.shape[2],r.shape[3]])),{value:r,gradFunc:b}}))(d,f):Bo(((e,t,n,r)=>{let a=$a.runKernel(Wr,v,w);return r([t,e,a,n]),p&&(a=Cl(a,[a.shape[1],a.shape[2],a.shape[3]])),{value:a,gradFunc:b}}))(d,f,g)}}),jh=Ka({fusedMatMul_:function({a:e,b:t,transposeA:n=!1,transposeB:r=!1,bias:a,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(!1===Lh($a.state.gradientDepth,s)){let l=ci(e,t,n,r);return null!=a&&(l=ko(l,a)),Ph(l,s,i,o)}let l=Ha(e,"a","fused matMul"),u=Ha(t,"b","fused matMul");[l,u]=Ia(l,u);const c=n?l.shape[l.rank-2]:l.shape[l.rank-1],h=r?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-1]:l.shape[l.rank-2],d=r?u.shape[u.rank-2]:u.shape[u.rank-1],p=l.shape.slice(0,-2),m=u.shape.slice(0,-2),g=re(p),y=re(m);Q(l.rank>=2&&u.rank>=2&&l.rank===u.rank,(()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`)),Q(se(p,m),(()=>`Error in fused matMul: outer dimensions (${p}) and (${m}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`)),Q(c===h,(()=>`Error in fused matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${r} must match.`));const b=l.shape.slice(0,-2).concat([f,d]),v=Cl(l,n?[g,c,f]:[g,f,c]),w=Cl(u,r?[y,d,h]:[y,h,d]);let _,x;null!=a&&(_=Ha(a,"bias","fused matMul"),[_]=Ia(_,l),Ko(b,_.shape)),null!=i&&(x=Ha(i,"prelu weights","fused matMul"));const k=(e,t)=>{const[i,o,l,u]=t,c=Mh(Cl(e,l.shape),l,s);let h,f;return n||r?!n&&r?(h=ci(c,o,!1,!1),f=ci(c,i,!0,!1)):n&&!r?(h=ci(o,c,!1,!0),f=ci(i,c,!1,!1)):(h=ci(o,c,!0,!0),f=ci(c,i,!0,!0)):(h=ci(c,o,!1,!0),f=ci(i,c,!0,!1)),null!=a?[h,f,$h(u,c)]:[h,f]},E={a:v,b:w,bias:_,preluActivationWeights:x},C={transposeA:n,transposeB:r,activation:s,leakyreluAlpha:o};return null==a?Bo(((e,t,n)=>{const r=$a.runKernel(Lr,E,C);return n([e,t,r]),{value:Cl(r,b),gradFunc:k}}))(v,w):Bo(((e,t,n,r)=>{const a=$a.runKernel(Lr,E,C);return r([e,t,a,n]),{value:Cl(a,b),gradFunc:k}}))(v,w,_)}}),Hh=Ka({hammingWindow_:function(e){return Rh(e,.54,.46)}}),Gh=Ka({hannWindow_:function(e){return Rh(e,.5,.5)}}),Xh=Ka({frame_:function(e,t,n,r=!1,a=0){let s=0;const i=[];for(;s+t<=e.size;)i.push(Dl(e,s,t)),s+=n;if(r)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`)),Q(2===o.rank&&4===o.shape[1],(()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`)),Q(1===l.rank&&l.shape[0]===u,(()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`)),Q(2===r.length,(()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${r.length}.`)),Q(r[0]>=1&&r[1]>=1,(()=>`cropSize must be atleast [1,1], but was ${r}`)),Q("bilinear"===a||"nearest"===a,(()=>`method must be bilinear or nearest, but was ${a}`));const c={image:i,boxes:o,boxInd:l},h={method:a,extrapolationValue:s,cropSize:r};return $a.runKernel(It,c,h)}}),Yh=Ka({flipLeftRight_:function(e){const t=Ha(e,"image","flipLeftRight","float32");Q(4===t.rank,(()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`));const n={image:t};return $a.runKernel(Kt,n,{})}}),Jh=Ka({rotateWithOffset_:function(e,t,n=0,r=.5){const a=Ha(e,"image","rotateWithOffset","float32");Q(4===a.rank,(()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${a.rank}.`));const s={image:a},i={radians:t,fillValue:n,center:r};return $a.runKernel(Pr,s,i)}});function Zh(e,t,n,r,a,s){null==r&&(r=.5),null==a&&(a=Number.NEGATIVE_INFINITY),null==s&&(s=0);const i=e.shape[0];return n=Math.min(n,i),Q(0<=r&&r<=1,(()=>`iouThreshold must be in [0, 1], but was '${r}'`)),Q(2===e.rank,(()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`)),Q(4===e.shape[1],(()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`)),Q(1===t.rank,(()=>"scores must be a 1D tensor")),Q(t.shape[0]===i,(()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`)),Q(0<=s&&s<=1,(()=>`softNmsSigma must be in [0, 1], but was '${s}'`)),{maxOutputSize:n,iouThreshold:r,scoreThreshold:a,softNmsSigma:s}}const Qh=Ka({nonMaxSuppression_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=Ha(e,"boxes","nonMaxSuppression"),i=Ha(t,"scores","nonMaxSuppression"),o=Zh(s,i,n,r,a),l={maxOutputSize:n=o.maxOutputSize,iouThreshold:r=o.iouThreshold,scoreThreshold:a=o.scoreThreshold};return $a.runKernel($n,{boxes:s,scores:i},l)}});function ef(e,t,n){const r=function(e,t,n){return function(e,t,n){let r=0,a=e.length,s=0,i=!1;for(;r>>1);const o=n(t,e[s]);o>0?r=s+1:(a=s,i=!o)}return i?r:-r-1}(e,t,n||tf)}(e,t,n),a=r<0?-(r+1):r;e.splice(a,0,t)}function tf(e,t){return e>t?1:ea&&u.push({score:t[e],boxIndex:e,suppressBeginIndex:0});u.sort(uf);const c=s>0?-.5/s:0,h=[],f=[];for(;h.length0;){const t=u.pop(),{score:n,boxIndex:s,suppressBeginIndex:i}=t;if(n=i;--n){const i=of(e,s,h[n]);if(i>=r){o=!0;break}if(t.score=t.score*lf(r,c,i),t.score<=a)break}t.suppressBeginIndex=h.length,o||(t.score===n?(h.push(s),f.push(t.score)):t.score>a&&ef(u,t,uf))}const d=h.length,p=n-d;o&&p>0&&(h.push(...new Array(p).fill(0)),f.push(...new Array(p).fill(0)));const m={selectedIndices:h};return i&&(m.selectedScores=f),l&&(m.validOutputs=d),m}function of(e,t,n){const r=e.subarray(4*t,4*t+4),a=e.subarray(4*n,4*n+4),s=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),o=Math.max(r[0],r[2]),l=Math.max(r[1],r[3]),u=Math.min(a[0],a[2]),c=Math.min(a[1],a[3]),h=Math.max(a[0],a[2]),f=Math.max(a[1],a[3]),d=(o-s)*(l-i),p=(h-u)*(f-c);if(d<=0||p<=0)return 0;const m=Math.max(s,u),g=Math.max(i,c),y=Math.min(o,h),b=Math.min(l,f),v=Math.max(y-m,0)*Math.max(b-g,0);return v/(d+p-v)}function lf(e,t,n){const r=Math.exp(t*n*n);return n<=e?r:0}function uf(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}const cf=Ka({nonMaxSuppressionWithScore_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=Ha(e,"boxes","nonMaxSuppression"),o=Ha(t,"scores","nonMaxSuppression"),l=Zh(i,o,n,r,a,s),u={boxes:i,scores:o},c={maxOutputSize:n=l.maxOutputSize,iouThreshold:r=l.iouThreshold,scoreThreshold:a=l.scoreThreshold,softNmsSigma:s=l.softNmsSigma},h=$a.runKernel(Ln,u,c);return{selectedIndices:h[0],selectedScores:h[1]}}}),hf=Ka({nonMaxSuppressionPadded_:function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=Ha(e,"boxes","nonMaxSuppression"),o=Ha(t,"scores","nonMaxSuppression"),l=Zh(i,o,n,r,a,null),u={boxes:i,scores:o},c={maxOutputSize:l.maxOutputSize,iouThreshold:l.iouThreshold,scoreThreshold:l.scoreThreshold,padToMaxOutputSize:s},h=$a.runKernel(Pn,u,c);return{selectedIndices:h[0],validOutputs:h[1]}}}),ff=Ka({resizeBilinear_:function(e,t,n=!1,r=!1){const a=Ha(e,"images","resizeBilinear");Q(3===a.rank||4===a.rank,(()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${a.rank}.`)),Q(2===t.length,(()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`)),Q(!1===r||!1===n,(()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=Cl(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=$a.runKernel(tr,o,l);return i?Cl(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),df=Ka({resizeNearestNeighbor_:function(e,t,n=!1,r=!1){const a=Ha(e,"images","resizeNearestNeighbor");Q(3===a.rank||4===a.rank,(()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${a.rank}.`)),Q(2===t.length,(()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`)),Q("float32"===a.dtype||"int32"===a.dtype,(()=>"`images` must have `int32` or `float32` as dtype")),Q(!1===r||!1===n,(()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false."));let s=a,i=!1;3===a.rank&&(i=!0,s=Cl(a,[1,a.shape[0],a.shape[1],a.shape[2]]));const[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:r,size:t},u=$a.runKernel(Qn,o,l);return i?Cl(u,[u.shape[1],u.shape[2],u.shape[3]]):u}}),pf=Ka({transform_:function(e,t,n="nearest",r="constant",a=0,s){const i=Ha(e,"image","transform","float32"),o=Ha(t,"transforms","transform","float32");Q(4===i.rank,(()=>`Error in transform: image must be rank 4,but got rank ${i.rank}.`)),Q(2===o.rank&&(o.shape[0]===i.shape[0]||1===o.shape[0])&&8===o.shape[1],(()=>"Error in transform: Input transform should be batch x 8 or 1 x 8")),Q(null==s||2===s.length,(()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`));const l={image:i,transforms:o},u={interpolation:n,fillMode:r,fillValue:a,outputShape:s};return $a.runKernel(Dr,l,u)}}),mf=Ka({bandPart_:function(e,t,n){Q(t%1==0,(()=>`bandPart(): numLower must be an integer, got ${t}.`)),Q(n%1==0,(()=>`bandPart(): numUpper must be an integer, got ${n}.`));const r=Ha(e,"a","bandPart");Q(r.rank>=2,(()=>`bandPart(): Rank must be at least 2, got ${r.rank}.`));const a=r.shape,[s,i]=r.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);const o=Cl(Tc(0,s,1,"int32"),[-1,1]),l=Tc(0,i,1,"int32"),u=Vo(o,l),c=Ku(Iu(u,$o(+t,"int32")),_u(u,$o(-n,"int32"))),h=cc([s,i],r.dtype);return Cl(oh(wh(Cl(r,[-1,s,i])).map((e=>lu(c,e,h)))),a)}}),gf=Ka({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,Q(null!=e&&e.length>0,(()=>"Gram-Schmidt process: input must not be null, undefined, or empty"));const n=e[0].shape[0];for(let t=1;t`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${n})`))}else t=!0,e=rh(e,e.shape[0],0).map((e=>ih(e,[0])));Q(e.length<=e[0].shape[0],(()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`));const n=[],r=e;for(let t=0;t{let e=r[t];if(t>0)for(let r=0;r{Q(2===e.shape.length,(()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`));const n=e.shape[0],r=e.shape[1];let a=yu(n),s=Hs(e);const i=fh([[1]],[1,1]);let o=Hs(i);const l=n>=r?r:n;for(let e=0;e{const t=Dl(s,[e,e],[n-e,1]),l=Sh(t),u=Dl(s,[e,e],[1,1]),c=lu(wu(u,0),fh([[-1]]),fh([[1]])),h=Vo(u,So(c,l)),f=Co(t,h);o=1===f.shape[0]?Hs(i):Il([i,Dl(f,[1,0],[f.shape[0]-1,f.shape[1]])],0);const d=Ru(Co(ci(c,h),l)),p=Dl(s,[e,0],[n-e,r]),m=So(d,o),g=fi(o);if(0===e)s=Vo(p,ci(m,ci(g,p)));else{const t=Vo(p,ci(m,ci(g,p)));s=Il([Dl(s,[0,0],[e,r]),t],0)}const y=fi(m),b=Dl(a,[0,e],[n,a.shape[1]-e]);if(0===e)a=Vo(b,ci(ci(b,o),y));else{const t=Vo(b,ci(ci(b,o),y));a=Il([Dl(a,[0,0],[n,e]),t],1)}return[o,s,a]})),co([t,l,u])}return!t&&n>r&&(a=Dl(a,[0,0],[n,r]),s=Dl(s,[0,0],[r,r])),[a,s]}))}const bf=Ka({qr_:function(e,t=!1){if(Q(e.rank>=2,(()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`)),2===e.rank)return yf(e,t);{const n=e.shape.slice(0,e.shape.length-2).reduce(((e,t)=>e*t)),r=wh(Cl(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),a=[],s=[];return r.forEach((e=>{const[n,r]=yf(e,t);a.push(n),s.push(r)})),[Cl(oh(a,0),e.shape),Cl(oh(s,0),e.shape)]}}});var vf;!function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"}(vf||(vf={}));const wf=Ka({computeWeightedLoss_:function(e,t,n=vf.SUM_BY_NONZERO_WEIGHTS){const r=Ha(e,"losses","computeWeightedLoss");let a=null;null!=t&&(a=Ha(t,"weights","computeWeightedLoss"));const s=null==a?r:So(r,a);if(n===vf.NONE)return s;if(n===vf.SUM)return $u(s);if(n===vf.MEAN){if(null==a)return tc(s);{const e=r.size/a.size,t=Co($u(s),$u(a));return e>1?Co(t,$o(e)):t}}if(n===vf.SUM_BY_NONZERO_WEIGHTS){if(null==a)return Co($u(s),$o(r.size));{const e=So(a,hc(r.shape)),t=js($u(uc(e,$o(0))),"float32");return Co($u(s),t)}}throw Error(`Unknown reduction: ${n}`)}}),_f=Ka({absoluteDifference_:function(e,t,n,r=vf.SUM_BY_NONZERO_WEIGHTS){const a=Ha(e,"labels","absoluteDifference"),s=Ha(t,"predictions","absoluteDifference");let i=null;null!=n&&(i=Ha(n,"weights","absoluteDifference")),ee(a.shape,s.shape,"Error in absoluteDifference: ");const o=Ho(Vo(a,s));return wf(o,i,r)}}),xf=Ka({cosineDistance_:function(e,t,n,r,a=vf.SUM_BY_NONZERO_WEIGHTS){const s=Ha(e,"labels","cosineDistance"),i=Ha(t,"predictions","cosineDistance");let o=null;null!=r&&(o=Ha(r,"weights","cosineDistance")),ee(s.shape,i.shape,"Error in cosineDistance: ");const l=$o(1),u=Vo(l,$u(So(s,i),n,!0));return wf(u,o,a)}}),kf=Ka({hingeLoss_:function(e,t,n,r=vf.SUM_BY_NONZERO_WEIGHTS){let a=Ha(e,"labels","hingeLoss");const s=Ha(t,"predictions","hingeLoss");let i=null;null!=n&&(i=Ha(n,"weights","hingeLoss")),ee(a.shape,s.shape,"Error in hingeLoss: ");const o=$o(1);a=Vo(So($o(2),a),o);const l=Oc(Vo(o,So(a,s)));return wf(l,i,r)}}),Ef=Ka({huberLoss_:function(e,t,n,r=1,a=vf.SUM_BY_NONZERO_WEIGHTS){const s=Ha(e,"labels","huberLoss"),i=Ha(t,"predictions","huberLoss");let o=null;null!=n&&(o=Ha(n,"weights","huberLoss")),ee(s.shape,i.shape,"Error in huberLoss: ");const l=$o(r),u=Ho(Vo(i,s)),c=rc(u,l),h=Vo(u,c),f=ko(So($o(.5),Io(c)),So(l,h));return wf(f,o,a)}}),Cf=Ka({logLoss_:function(e,t,n,r=1e-7,a=vf.SUM_BY_NONZERO_WEIGHTS){const s=Ha(e,"labels","logLoss"),i=Ha(t,"predictions","logLoss");let o=null;null!=n&&(o=Ha(n,"weights","logLoss")),ee(s.shape,i.shape,"Error in logLoss: ");const l=$o(1),u=$o(r),c=Ru(So(s,Tu(ko(i,u)))),h=So(Vo(l,s),Tu(ko(Vo(l,i),u))),f=Vo(c,h);return wf(f,o,a)}}),Sf=Ka({meanSquaredError_:function(e,t,n,r=vf.SUM_BY_NONZERO_WEIGHTS){const a=Ha(e,"labels","meanSquaredError"),s=Ha(t,"predictions","meanSquaredError");let i=null;null!=n&&(i=Ha(n,"weights","meanSquaredError")),ee(a.shape,s.shape,"Error in meanSquaredError: ");const o=sh(a,s);return wf(o,i,r)}}),Nf=Ka({sigmoidCrossEntropy_:function(e,t,n,r=0,a=vf.SUM_BY_NONZERO_WEIGHTS){let s=Ha(e,"multiClassLabels","sigmoidCrossEntropy");const i=Ha(t,"logits","sigmoidCrossEntropy");let o=null;if(null!=n&&(o=Ha(n,"weights","sigmoidCrossEntropy")),ee(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),r>0){const e=$o(r),t=$o(1),n=$o(.5);s=ko(So(s,Vo(t,e)),So(n,e))}const l=function(e,t){const n=Ha(e,"labels","sigmoidCrossEntropyWithLogits"),r=Ha(t,"logits","sigmoidCrossEntropyWithLogits");ee(n.shape,r.shape,"Error in sigmoidCrossEntropyWithLogits: ");const a=Oc(r),s=So(r,n),i=Fu(du(Ru(Ho(r))));return ko(Vo(a,s),i)}(s,i);return wf(l,o,a)}}),If=Ka({softmaxCrossEntropy_:function(e,t,n,r=0,a=vf.SUM_BY_NONZERO_WEIGHTS){let s=Ha(e,"onehotLabels","softmaxCrossEntropy");const i=Ha(t,"logits","softmaxCrossEntropy");let o=null;if(null!=n&&(o=Ha(n,"weights","softmaxCrossEntropy")),ee(s.shape,i.shape,"Error in softmaxCrossEntropy: "),r>0){const e=$o(r),t=$o(1),n=$o(s.shape[1]);s=ko(So(s,Vo(t,e)),Co(e,n))}const l=function(e,t,n=-1){if(-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Bo(((e,t,r)=>{const a=Xu(t,[n],!0),s=Vo(js(t,"float32"),a);r([e,s]);const i=Ru(So(s,e));return{value:$u(i,[n]),gradFunc:(e,t)=>{const[r,a]=t,s=Uu(e.shape,[n]);return[So(Cl(e,s),Vo(js(r,"float32"),du(a))),So(Cl(e,s),Vo(du(a),js(r,"float32")))]}}}))(e,t)}(s,i);return wf(l,o,a)}}),Af={fft:eh,ifft:th,rfft:ah,irfft:nh},Df={hammingWindow:Hh,hannWindow:Gh,frame:Xh,stft:Kh},Tf={flipLeftRight:Yh,resizeNearestNeighbor:df,resizeBilinear:ff,rotateWithOffset:Jh,cropAndResize:qh,nonMaxSuppression:Qh,nonMaxSuppressionAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY){const s=Ha(e,"boxes","nonMaxSuppressionAsync"),i=Ha(t,"scores","nonMaxSuppressionAsync"),o=Zh(s,i,n,r,a);n=o.maxOutputSize,r=o.iouThreshold,a=o.scoreThreshold;const l=await Promise.all([s.data(),i.data()]),u=l[0],c=l[1],{selectedIndices:h}=nf(u,c,n,r,a);return s!==e&&s.dispose(),i!==t&&i.dispose(),hh(h,"int32")},nonMaxSuppressionWithScore:cf,nonMaxSuppressionWithScoreAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=0){const i=Ha(e,"boxes","nonMaxSuppressionAsync"),o=Ha(t,"scores","nonMaxSuppressionAsync"),l=Zh(i,o,n,r,a,s);n=l.maxOutputSize,r=l.iouThreshold,a=l.scoreThreshold,s=l.softNmsSigma;const u=await Promise.all([i.data(),o.data()]),c=u[0],h=u[1],{selectedIndices:f,selectedScores:d}=af(c,h,n,r,a,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:hh(f,"int32"),selectedScores:hh(d)}},nonMaxSuppressionPadded:hf,nonMaxSuppressionPaddedAsync:async function(e,t,n,r=.5,a=Number.NEGATIVE_INFINITY,s=!1){const i=Ha(e,"boxes","nonMaxSuppressionAsync"),o=Ha(t,"scores","nonMaxSuppressionAsync"),l=Zh(i,o,n,r,a,null),u=l.maxOutputSize,c=l.iouThreshold,h=l.scoreThreshold,[f,d]=await Promise.all([i.data(),o.data()]),{selectedIndices:p,validOutputs:m}=rf(f,d,u,c,h,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:hh(p,"int32"),validOutputs:$o(m,"int32")}},transform:pf},Ff={bandPart:mf,gramSchmidt:gf,qr:bf},Rf={absoluteDifference:_f,computeWeightedLoss:wf,cosineDistance:xf,hingeLoss:kf,huberLoss:Ef,logLoss:Cf,meanSquaredError:Sf,sigmoidCrossEntropy:Nf,softmaxCrossEntropy:If};class Of{static sgd(e){return new Jo(e)}static momentum(e,t,n=!1){return new Zo(e,t,n)}static rmsprop(e,t=.9,n=0,r=null,a=!1){return new Qo(e,t,n,r,a)}static adam(e=.001,t=.9,n=.999,r=null){return new jo(e,t,n,r)}static adadelta(e=.001,t=.95,n=null){return new Lo(e,t,n)}static adamax(e=.002,t=.9,n=.999,r=null,a=0){return new Yo(e,t,n,r,a)}static adagrad(e,t=.1){return new Wo(e,t)}}const Bf={sgd:Of.sgd,momentum:Of.momentum,adadelta:Of.adadelta,adagrad:Of.adagrad,rmsprop:Of.rmsprop,adamax:Of.adamax,adam:Of.adam},Mf="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:"undefined"!=typeof setImmediate?setImmediate:e=>e();function $f(){return new Promise((e=>Mf((()=>e()))))}function Pf(e,t){const n=e[0].length;e.forEach(((e,t)=>{Q(e.length===n,(()=>`Error in concat${n}D: rank of tensors[${t}] must be the same as the rank of the rest (${n})`))})),Q(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`));const r=e[0];e.forEach(((e,a)=>{for(let s=0;s`Error in concat${n}D: Shape of tensors[${a}] (${e}) does not match the shape of the rest (${r}) along the non-concatenated axis ${a}.`))}))}function Lf(e,t){const n=e[0].slice();for(let r=1;r=2*t+1||r%2==1?a.push(r):n.push(r);r.push(...n),r.push(0),r.push(...a)}return r}function Hf(e,t,n,r=!0){const a=[];r?a.push(e[0]/n):a.push(e[0]*n);for(let n=1;n"Number of splits must evenly divide the axis.")),r=new Array(t).fill(e.shape[n]/t);else{Q(t.reduce(((e,t)=>(-1===t&&(e+=1),e)),0)<=1,(()=>"There should be only one negative value in split array."));const a=t.indexOf(-1);if(-1!==a){const r=t.reduce(((e,t)=>t>0?e+t:e));t[a]=e.shape[n]-r}Q(e.shape[n]===t.reduce(((e,t)=>e+t)),(()=>"The sum of sizes must match the size of the axis dimension.")),r=t}return r}function dd(e,t){let n,r=!1;for(e<=zf?(n=e,r=!0):n=Ie(e,Math.floor(Math.sqrt(e)));!r;)n>t||n===e?r=!0:n=Ie(e,n+1);return n}function pd(e,t,n){const r=[],a=e.length;for(let s=0;sa))throw new Error(`Expect batchDims in the range of [-${a}, ${a}], but got ${r}`);if(r<0&&(r+=a),r>s)throw new Error(`batchDims (${r}) must be less than rank(x) (\n ${s}).`);if(naa(e)))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function yd(e){return e.map((e=>ra(e)))}const bd={kernelName:He,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,lh(js(n,"float32"),-1))}}},vd={kernelName:Ge,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=Io(js(n,"float32")),r=No(Vo($o(1),t));return Ru(Co(e,r))}}}},wd={kernelName:Xe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=No(Vo(Io(js(n,"float32")),1));return Co(e,t)}}}},_d={kernelName:Ke,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{let t=e;const r=Xo(n.shape,a);return r.length>0&&(t=$u(t,r)),Cl(t,n.shape)},b:()=>{let t=e;const n=Xo(r.shape,a);return n.length>0&&(t=$u(t,n)),Cl(t,r.shape)}}}},xd={kernelName:qe,saveAllInputs:!0,gradFunc:(e,t)=>{const n={};return t.forEach(((t,r)=>{n[r]=()=>e.clone()})),n}},kd={kernelName:Ze,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(n)}}},Ed={kernelName:Qe,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ao(n)}}},Cd={kernelName:et,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,No(Vo($o(1),Io(js(n,"float32")))))}}},Sd={kernelName:tt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=No(ko($o(1),Io(js(n,"float32"))));return Co(e,t)}}}},Nd={kernelName:at,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{const t=ko(Io(n),Io(r));let s=So(e,Co(r,t));const i=Xo(n.shape,a);return i.length>0&&(s=$u(s,i)),Cl(s,n.shape)},b:()=>{const t=ko(Io(n),Io(r));let s=Ru(So(e,Co(n,t)));const i=Xo(r.shape,a);return i.length>0&&(s=$u(s,i)),Cl(s,r.shape)}}}},Id={kernelName:nt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,ko(Io(js(n,"float32")),1))}}},Ad={kernelName:rt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,Vo($o(1),Io(js(n,"float32"))))}}},Dd=Ka({avgPool3dGrad_:function(e,t,n,r,a,s){const i=Ha(e,"dy","avgPool3dGrad"),o=Ha(t,"input","avgPool3dGrad");let l=i,u=o,c=!1;4===o.rank&&(c=!0,l=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=Cl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),Q(5===l.rank,(()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`)),Q(5===u.rank,(()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`)),null!=s&&Q(ie(a),(()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${a}.`));const h={dy:l,input:u},f={filterSize:n,strides:r,pad:a,dimRoundingMode:s},d=$a.runKernel(lt,h,f);return c?Cl(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}}),Td={kernelName:ot,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>Dd(e,r,a,s,i,o)}}},Fd=Ka({avgPoolGrad_:function(e,t,n,r,a){const s=Ha(e,"dy","avgPoolGrad"),i=Ha(t,"input","avgPoolGrad");Q(i.rank===s.rank,(()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`));let o=i,l=s,u=!1;3===i.rank&&(u=!0,o=Cl(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=Cl(s,[1,s.shape[0],s.shape[1],s.shape[2]])),Q(4===l.rank,(()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`)),Q(4===o.rank,(()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`));const c={dy:l,input:o},h={filterSize:n,strides:r,pad:a},f=$a.runKernel(it,c,h);return u?Cl(f,[f.shape[1],f.shape[2],f.shape[3]]):f}}),Rd={kernelName:st,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{filterSize:a,strides:s,pad:i}=n;return{x:()=>Fd(e,r,a,s,i)}}},Od={kernelName:ut,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{const[r,a]=t,{transposeA:s,transposeB:i}=n;return s||i?!s&&i?{a:()=>ci(e,a,!1,!1),b:()=>ci(e,r,!0,!1)}:s&&!i?{a:()=>ci(a,e,!1,!0),b:()=>ci(r,e,!1,!1)}:{a:()=>ci(a,e,!0,!0),b:()=>ci(e,r,!0,!0)}:{a:()=>ci(e,a,!1,!0),b:()=>ci(r,e,!0,!1)}}},Bd={kernelName:ct,gradFunc:(e,t,n)=>{const{blockShape:r,crops:a}=n;return{x:()=>vc(e,r,a)}}},Md={kernelName:ft,gradFunc:(e,t,n)=>{const r=n,a=r.inputShape,s=r.shape,i=Array.from(s);for(let e=a.length-1;e>=0;e--)if(a[e]===s[e])i[e]=1;else if(1!==a[e])throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${s}].`);const o=[];for(let e=0;e1&&o.push(e);return{x:()=>$u(e,o,!0)}}},$d={kernelName:dt,gradFunc:e=>({x:()=>e.clone()})},Pd={kernelName:pt,gradFunc:e=>({x:()=>Ao(e)})},Ld={kernelName:mt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{clipValueMin:a,clipValueMax:s}=n;return{x:()=>lu(Ku(_u(r,a),Iu(r,s)),e,Ao(e))}}},zd={kernelName:yt,inputsToSave:["x"],gradFunc:bd.gradFunc},Wd={kernelName:bt,saveAllInputs:!0,gradFunc:(e,t,n)=>{const r=t.map((e=>e.shape)),{axis:a}=n,s=de(a,t[0].shape)[0],i=r.map((e=>e[s]));return rh(e,i,s).map((e=>()=>e))}},Ud={kernelName:vt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return Q(xl(s),(()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`)),{x:()=>Kl(r.shape,e,a,i,o,l),filter:()=>Bh(r,e,a.shape,i,o,l)}}},Vd={kernelName:_t,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Gl(e,a,s,i,o,1,l),filter:()=>Bh(e,r,a.shape,s,i,o,l)}}},jd=Ka({conv3DBackpropFilter_:function(e,t,n,r,a){let s=e;4===e.rank&&(s=Cl(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;4===i.rank&&(i=Cl(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),Q(5===s.rank,(()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`)),Q(5===i.rank,(()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`)),Q(5===n.length,(()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`)),Q(s.shape[4]===n[3],(()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`)),Q(i.shape[4]===n[4],(()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`));const o={x:s,dy:i},l={strides:r,pad:a,filterShape:n};return $a.runKernel(kt,o,l)}}),Hd={kernelName:xt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s}=n;Q(xl(r),(()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`));const[i,o]=t;return{x:()=>Jl(i.shape,e,o,a,s),filter:()=>jd(i,e,o.shape,a,s)}}},Gd={kernelName:Ct,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(Ru(Xc(js(n,"float32"))),e)}}},Xd={kernelName:St,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(Kc(js(n,"float32")),e)}}},Kd={kernelName:Nt,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a,exclusive:s,reverse:i}=n;return{x:()=>{const t=ju([a],r.rank);let n=tu(e,a,s,!i);return null!=t&&(n=fi(n,t)),n}}}},qd={kernelName:Tt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const{dilations:r,strides:a,pad:s,dimRoundingMode:i}=n,o=null==r?[1,1]:r;Q(xl(o),(()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`));const[l,u]=t;return Q(4===l.rank,(()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`)),Q(4===u.rank,(()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`)),Q(l.shape[3]===u.shape[2],(()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`)),Q(kl(a,o),(()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${o}'.`)),null!=i&&Q(ie(s),(()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`)),{x:()=>Uh(l.shape,e,u,a,s,r,i),filter:()=>Wh(l,e,u.shape,a,s,r,i)}}},Yd={kernelName:Bt,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{const[r,a]=t,s={x:r,filter:a,dy:e},i={x:r,filter:a,dy:e};return{x:()=>$a.runKernel(Mt,s,n),filter:()=>$a.runKernel($t,i,n)}}},Jd={kernelName:Lt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t,r={dy:e,y:n};return{x:()=>$a.runKernel(zt,r)}}},Zd={kernelName:Wt,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=So(du(Ru(Io(n))),2/Math.sqrt(Math.PI));return{x:()=>So(e,r)}}},Qd={kernelName:Vt,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,n)}}},ep={kernelName:jt,inputsToSave:["input"],gradFunc:(e,t)=>{const[n]=t;return{input:()=>Cl(e,n.shape)}}},tp={kernelName:Ht,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,du(n))}}},np={kernelName:qt,gradFunc:e=>({x:()=>Ao(e)})},rp={kernelName:Yt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{const t=Co(e,js(r,"float32")),s=Xo(n.shape,a);return s.length>0?Cl($u(t,s),n.shape):t},b:()=>{let t=So(e,js(n,"float32"));const s=Xo(r.shape,a);s.length>0&&(t=Cl($u(t,s),r.shape));const i=Io(r);return Ru(Co(t,js(i,"float32")))}}}},ap={kernelName:Jt,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{const{varianceEpsilon:r}=n,[a,s,i,o]=t,l=null==o?$o(1):o,u=Xo(s.shape,a.shape),c=[];if(1===s.rank){for(let e=0;e1===s.rank?Cl(So(So(e,gu(Cl(d,[1,1,1,s.shape[0]]),c)),l),a.shape):Cl(So(So(e,d),l),a.shape),mean:()=>{let e=So(So(d,$o(-1)),f);return 1===s.rank&&(e=$u(e,u)),Cl(e,s.shape)},variance:()=>{let e=So(So(p,h),f);return 1===s.rank&&(e=$u(e,u)),Cl(e,s.shape)},scale:()=>{const t=So(h,d);let n=So(e,t);return 1===s.rank&&(n=$u(n,u)),Cl(n,s.shape)},offset:()=>{let t=e;return 1===s.rank&&(t=$u(t,u)),Cl(t,s.shape)}}}},sp={kernelName:Zt,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{const[r,a]=t,{axis:s}=n,i=de(s,r.shape)[0];return{x:()=>{const t=r.shape,n=a.size,o=t.slice(0,i),l=o.length,u=t.slice(s,t.length).slice(1),c=u.length,h=ip(0,l),f=ip(l+1,l+1+c),d=op([o,[n],u]),p=Cl(e,d),m=Cl(a,[n]),g=op([[l],h,f]),y=fi(p,g);let b=vh(y,m,r.shape[i]);const v=Hu(g);return b=fi(b,v),b},indices:()=>a}}};function ip(e,t){const n=[];for(let r=e;r{const[n,r]=t;return{a:()=>Ao(n),b:()=>Ao(r)}}},up={kernelName:nn,gradFunc:e=>({x:()=>js(e,"float32")})},cp={kernelName:sn,gradFunc:e=>({x:()=>Ao(e)})},hp={kernelName:on,gradFunc:e=>({x:()=>Ao(e)})},fp={kernelName:ln,gradFunc:e=>({x:()=>Ao(e)})},dp={kernelName:un,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{alpha:a}=n,s=wu(r,0);return{x:()=>lu(s,e,So(e,a))}}},pp={kernelName:pn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,ko(n,1))}}},mp={kernelName:dn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,js(n,"float32"))}}},gp={kernelName:bn,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n;return{logits:()=>{const t=du(r);return Vo(e,So($u(e,a,!0),t))}}}},yp=Ka({localResponseNormalizationBackprop_:function(e,t,n,r=5,a=1,s=1,i=.5){const o={x:e,y:t,dy:n},l={depthRadius:r,bias:a,alpha:s,beta:i};return $a.runKernel(wn,o,l)}}),bp={kernelName:vn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>yp(r,a,e,s,i,o,l)}}};function vp(e,t,n,r){return t.rankSo(e,js(ou(n,t),e.dtype))}}const wp={kernelName:_n,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{reductionIndices:a}=r,s=t[0],i=vp(e,t[1],s,de(a,s.shape));return{x:()=>i.x()}}},_p={kernelName:xn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>So(e,js(_u(n,r),"float32")),b:()=>So(e,js(Nu(n,r),"float32"))}}},xp=Ka({maxPool3dGrad_:function(e,t,n,r,a,s,i){const o=Ha(e,"dy","maxPool3dGrad"),l=Ha(t,"input","maxPool3dGrad"),u=Ha(n,"output","maxPool3dGrad");let c=o,h=l,f=u,d=!1;4===l.rank&&(d=!0,c=Cl(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),h=Cl(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),f=Cl(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),Q(5===c.rank,(()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`)),Q(5===h.rank,(()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${h.rank}.`)),Q(5===f.rank,(()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${f.rank}.`)),null!=i&&Q(ie(s),(()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const p={dy:c,input:h,output:f},m={filterSize:r,strides:a,pad:s,dimRoundingMode:i},g=$a.runKernel(Sn,p,m);return d?Cl(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}}),kp={kernelName:Cn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>xp(e,r,a,s,i,o,l)}}},Ep=Ka({maxPoolGrad_:function(e,t,n,r,a,s,i){const o=Ha(e,"dy","maxPoolGrad"),l=Ha(t,"input","maxPoolGrad"),u=Ha(n,"output","maxPoolGrad");Q(l.rank===o.rank,(()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`)),Q(4===o.rank,(()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`)),Q(4===l.rank,(()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`)),null!=i&&Q(ie(s),(()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`));const c={dy:o,input:l,output:u},h={filterSize:r,strides:a,pad:s,dimRoundingMode:i};return $a.runKernel(En,c,h)}}),Cp={kernelName:Vn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Dl(e,s,r.shape)}}},Sp={kernelName:br,gradFunc:(e,t,n)=>{const{blockShape:r,paddings:a}=n;return{x:()=>Rl(e,r,a)}}},Np={kernelName:vr,gradFunc:(e,t,n)=>{const{axis:r}=n;return{x:()=>Il(e,r)}}},Ip=[bd,vd,wd,_d,xd,kd,Ed,Cd,Sd,Nd,Id,Ad,Td,Rd,Od,Bd,Md,$d,Pd,Ld,zd,Wd,Vd,Ud,Hd,Gd,Xd,Kd,qd,Yd,{kernelName:Pt,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{const t=Co(e,js(r,"float32")),s=Xo(n.shape,a);return s.length>0?Cl($u(t,s),n.shape):t},b:()=>{let t=So(e,js(n,"float32"));const s=Xo(r.shape,a);s.length>0&&(t=Cl($u(t,s),r.shape));const i=Io(r);return Ru(Co(t,js(i,"float32")))}}}},Jd,Zd,Qd,ep,tp,rp,np,ap,sp,lp,up,cp,hp,fp,dp,pp,mp,gp,bp,wp,wp,_p,kp,{kernelName:kn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r,a]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>Ep(e,r,a,s,i,o)}}},{kernelName:In,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{axis:a}=n,s=de(a,r.shape),i=re(Wu(r.shape,s)[1]);return{x:()=>{const t=r.shape.slice();s.forEach((e=>{t[e]=1}));const n=Cl(e,t);return Co(So(n,hc(r.shape,"float32")),i)}}}},{kernelName:An,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{const r=n,{axis:a}=r,[s,i]=t,o=vp(e,i,s,de(a,s.shape));return{x:()=>o.x()}}},{kernelName:Dn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t;return{a:()=>So(e,js(Iu(n,r),"float32")),b:()=>So(e,js(wu(n,r),"float32"))}}},{kernelName:Tn,inputsToSave:["x"],gradFunc:(e,t,n)=>{const r=t[0],{paddings:a}=n,s=a.map((e=>e[0]));return{x:()=>Dl(e,s,r.shape)}}},{kernelName:Fn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{const t=Xo(n.shape,a);return t.length>0?Cl($u(e,t),n.shape):e},b:()=>{const t=So(e,Ru(bu(Co(n,r)))),s=Xo(r.shape,a);return s.length>0?Cl($u(t,s),r.shape):t}}}},{kernelName:On,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{const t=So(e,js(r,"float32")),s=Xo(n.shape,a);return s.length>0?Cl($u(t,s),n.shape):t},b:()=>{const t=So(e,js(n,"float32")),s=Xo(r.shape,a);return s.length>0?Cl($u(t,s),r.shape):t}}}},{kernelName:Bn,gradFunc:e=>({x:()=>Ru(e)})},{kernelName:Wn,inputsToSave:["indices"],gradFunc:(e,t)=>{const n=t[0];return{indices:()=>cc(n.shape,"float32")}}},{kernelName:zn,gradFunc:e=>({x:()=>Ao(e)})},{kernelName:Un,saveAllInputs:!0,gradFunc:(e,t,n)=>{const{axis:r}=n;return wh(e,r).map((e=>()=>e))}},Cp,Cp,{kernelName:Hn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[n,r,a]=t,s=n,i=r,o=Ko(s.shape,i.shape);return{a:()=>{const t=js(i,"float32");let n=So(e,So(t,Uo(s,Vo(t,$o(1)))));const r=Xo(s.shape,o);return r.length>0&&(n=$u(n,r)),Cl(n,s.shape)},b:()=>{const t=wu(s,0),n=lu(t,Tu(s),Ao(s));let r=So(e,So(a,n));const l=Xo(i.shape,o);return l.length>0&&(r=$u(r,l)),Cl(r,i.shape)}}}},{kernelName:Gn,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[n,r]=t,a=wu(n,0);return{x:()=>lu(a,e,So(e,r)),alpha:()=>{let t=lu(a,Ao(e),So(e,n));const s=Xo(r.shape,e.shape);return s.length>0&&(t=$u(t,s)),Cl(t,r.shape)}}}},{kernelName:Yn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,Ru(Io(n)))}}},{kernelName:rr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t,r=So(Iu(n,6),lh(n));return{x:()=>So(e,js(r,"float32"))}}},{kernelName:Jn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,js(lh(n),"float32"))}}},{kernelName:Zn,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Cl(e,n.shape)}}},{kernelName:tr,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>$a.runKernel(nr,a,n)}}},{kernelName:Qn,inputsToSave:["images"],gradFunc:(e,t,n)=>{const[r]=t,a={dy:e,images:r};return{images:()=>$a.runKernel(er,a,n)}}},{kernelName:ar,gradFunc:(e,t,n)=>{const{dims:r}=n,a=de(r,e.shape);return{x:()=>Mc(e,a)}}},{kernelName:sr,gradFunc:e=>({x:()=>Ao(e)})},{kernelName:ir,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Ru(Co(e,So(Uo(n,1.5),2)))}}},{kernelName:lr,inputsToSave:["condition"],gradFunc:(e,t)=>{const[n]=t;return{condition:()=>js(Ao(n),"float32"),t:()=>So(e,js(n,e.dtype)),e:()=>So(e,js(qu(n),e.dtype))}}},{kernelName:ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>{const t=wu(n,$o(0)),r=$o(Kf),a=$o(qf),s=So(e,a),i=So(So(e,r),du(js(n,"float32")));return lu(t,s,i)}}}},{kernelName:pr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,So(n,Vo($o(1),n)))}}},{kernelName:dr,gradFunc:e=>({x:()=>Ao(e)})},{kernelName:hr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(Ql(js(n,"float32")),e)}}},{kernelName:fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(eu(js(n,"float32")),e)}}},{kernelName:cr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{begin:a,size:s}=n,i=r.shape,[o,l]=Pi(r,a,s),u=[];for(let t=0;tpc(e,u)}}},{kernelName:wr,outputsToSave:[!0],gradFunc:(e,t,n)=>{const[r]=t,{dim:a}=n,s=So(e,r);return{logits:()=>Vo(s,So($u(s,[a],!0),r))}}},{kernelName:mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,Al(n))}}},Sp,Sp,Np,Np,{kernelName:gr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,So(No(js(n,"float32")),2))}}},{kernelName:_r,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=$o(2);return{a:()=>So(e,So(a,Vo(n,r))),b:()=>So(e,So(a,Vo(r,n)))}}},{kernelName:xr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(e,So(js(n,"float32"),2))}}},{kernelName:Mr,gradFunc:e=>({x:()=>Ao(e)})},{kernelName:kr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[n,r]=t,a=Ko(n.shape,r.shape);return{a:()=>{let t=e;const r=Xo(n.shape,a);return r.length>0&&(t=$u(t,r)),Cl(t,n.shape)},b:()=>{let t=e;const n=Xo(r.shape,a);return n.length>0&&(t=$u(t,n)),Cl(Ru(t),r.shape)}}}},{kernelName:yr,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,a=r.shape.slice(),{axis:s}=n;de(s,r.shape).forEach((e=>{a[e]=1}));const i=Cl(e,a),o=So(i,hc(r.shape,"float32"));return{x:()=>o}}},{kernelName:Sr,inputsToSave:["x"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>Co(e,Io(Ql(n)))}}},{kernelName:Nr,outputsToSave:[!0],gradFunc:(e,t)=>{const[n]=t;return{x:()=>So(Vo($o(1),Io(n)),e)}}},{kernelName:Ir,inputsToSave:["x"],gradFunc:(e,t,n)=>{const[r]=t,{reps:a}=n;return{x:()=>{let t=Ao(r);if(1===r.rank)for(let n=0;n{const r=n,{perm:a}=r,s=Hu(a);return{x:()=>fi(e,s)}}},{kernelName:Rr,gradFunc:(e,t,n)=>{const r=n,{axis:a}=r;return{value:()=>oh(e,a)}}},{kernelName:Or,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[n]=t;return{x:()=>function(e,t){const n=qo(t,Ao(t)),r=vu(e,n);let a=_u(t,$o(0,"int32"));const s=r.rank-a.rank;for(let e=0;e({x:()=>Ao(e)})}];for(const e of Ip)Kr(e);let Ap;function Dp(){return null==Ap&&(Ap=_o().epsilon()),Ap}ba().prototype.abs=function(){return this.throwIfDisposed(),Ho(this)},ba().prototype.acos=function(){return this.throwIfDisposed(),el(this)},ba().prototype.acosh=function(){return this.throwIfDisposed(),tl(this)},ba().prototype.add=function(e){return this.throwIfDisposed(),ko(this,e)},ba().prototype.all=function(e,t){return this.throwIfDisposed(),rl(this,e,t)},ba().prototype.any=function(e,t){return this.throwIfDisposed(),al(this,e,t)},ba().prototype.argMax=function(e){return this.throwIfDisposed(),sl(this,e)},ba().prototype.argMin=function(e){return this.throwIfDisposed(),il(this,e)},ba().prototype.asScalar=function(){return this.throwIfDisposed(),Q(1===this.size,(()=>"The array must have only 1 element.")),Cl(this,[])},ba().prototype.asType=function(e){return this.throwIfDisposed(),js(this,e)},ba().prototype.as1D=function(){return this.throwIfDisposed(),Cl(this,[this.size])},ba().prototype.as2D=function(e,t){return this.throwIfDisposed(),Cl(this,[e,t])},ba().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),Cl(this,[e,t,n])},ba().prototype.as4D=function(e,t,n,r){return this.throwIfDisposed(),Cl(this,[e,t,n,r])},ba().prototype.as5D=function(e,t,n,r,a){return this.throwIfDisposed(),Cl(this,[e,t,n,r,a])},ba().prototype.asin=function(){return this.throwIfDisposed(),ol(this)},ba().prototype.asinh=function(){return this.throwIfDisposed(),ll(this)},ba().prototype.atan=function(){return this.throwIfDisposed(),ul(this)},ba().prototype.atan2=function(e){return this.throwIfDisposed(),cl(this,e)},ba().prototype.atanh=function(){return this.throwIfDisposed(),hl(this)},ba().prototype.avgPool=function(e,t,n,r){return this.throwIfDisposed(),Sl(this,e,t,n,r)},ba().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Rl(this,e,t)},ba().prototype.batchNorm=function(e,t,n,r,a){return this.throwIfDisposed(),Ol(this,e,t,n,r,a)},ba().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Ll(this,e)},ba().prototype.cast=function(e){return this.throwIfDisposed(),js(this,e)},ba().prototype.ceil=function(){return this.throwIfDisposed(),zl(this)},ba().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),Wl(this,e,t)},ba().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof ya&&(e=[e]),Il([this,...e],t)},ba().prototype.conv1d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Xl(this,e,t,n,r,a,s)},ba().prototype.conv2dTranspose=function(e,t,n,r,a){return this.throwIfDisposed(),ql(this,e,t,n,r,a)},ba().prototype.conv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),Gl(this,e,t,n,r,a,s)},ba().prototype.cos=function(){return this.throwIfDisposed(),Ql(this)},ba().prototype.cosh=function(){return this.throwIfDisposed(),eu(this)},ba().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),tu(this,e,t,n)},ba().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),ru(this,e,t)},ba().prototype.depthwiseConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),au(this,e,t,n,r,a,s)},ba().prototype.dilation2d=function(e,t,n,r,a){return this.throwIfDisposed(),iu(this,e,t,n,r,a)},ba().prototype.divNoNan=function(e){return this.throwIfDisposed(),uu(this,e)},ba().prototype.div=function(e){return this.throwIfDisposed(),Co(this,e)},ba().prototype.dot=function(e){return this.throwIfDisposed(),cu(this,e)},ba().prototype.elu=function(){return this.throwIfDisposed(),hu(this)},ba().prototype.equal=function(e){return this.throwIfDisposed(),ou(this,e)},ba().prototype.erf=function(){return this.throwIfDisposed(),fu(this)},ba().prototype.exp=function(){return this.throwIfDisposed(),du(this)},ba().prototype.expandDims=function(e){return this.throwIfDisposed(),pu(this,e)},ba().prototype.expm1=function(){return this.throwIfDisposed(),mu(this)},ba().prototype.fft=function(){return this.throwIfDisposed(),eh(this)},ba().prototype.flatten=function(){return this.throwIfDisposed(),Cl(this,[this.size])},ba().prototype.floor=function(){return this.throwIfDisposed(),bu(this)},ba().prototype.floorDiv=function(e){return this.throwIfDisposed(),Eo(this,e)},ba().prototype.gather=function(e,t){return this.throwIfDisposed(),vu(this,e,t)},ba().prototype.greaterEqual=function(e){return this.throwIfDisposed(),_u(this,e)},ba().prototype.greater=function(e){return this.throwIfDisposed(),wu(this,e)},ba().prototype.ifft=function(){return this.throwIfDisposed(),th(this)},ba().prototype.irfft=function(){return this.throwIfDisposed(),nh(this)},ba().prototype.isFinite=function(){return this.throwIfDisposed(),ku(this)},ba().prototype.isInf=function(){return this.throwIfDisposed(),Eu(this)},ba().prototype.isNaN=function(){return this.throwIfDisposed(),Cu(this)},ba().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Su(this,e)},ba().prototype.lessEqual=function(e){return this.throwIfDisposed(),Iu(this,e)},ba().prototype.less=function(e){return this.throwIfDisposed(),Nu(this,e)},ba().prototype.localResponseNormalization=function(e,t,n,r){return this.throwIfDisposed(),Du(this,e,t,n,r)},ba().prototype.logSigmoid=function(){return this.throwIfDisposed(),Bu(this)},ba().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Pu(this,e)},ba().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Xu(this,e,t)},ba().prototype.log=function(){return this.throwIfDisposed(),Tu(this)},ba().prototype.log1p=function(){return this.throwIfDisposed(),Fu(this)},ba().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Ku(this,e)},ba().prototype.logicalNot=function(){return this.throwIfDisposed(),qu(this)},ba().prototype.logicalOr=function(e){return this.throwIfDisposed(),Yu(this,e)},ba().prototype.logicalXor=function(e){return this.throwIfDisposed(),Ju(this,e)},ba().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ci(this,e,t,n)},ba().prototype.maxPool=function(e,t,n,r){return this.throwIfDisposed(),Zu(this,e,t,n,r)},ba().prototype.max=function(e,t){return this.throwIfDisposed(),Mu(this,e,t)},ba().prototype.maximum=function(e){return this.throwIfDisposed(),qo(this,e)},ba().prototype.mean=function(e,t){return this.throwIfDisposed(),tc(this,e,t)},ba().prototype.min=function(e,t){return this.throwIfDisposed(),nc(this,e,t)},ba().prototype.minimum=function(e){return this.throwIfDisposed(),rc(this,e)},ba().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),ac(this,e,t)},ba().prototype.mod=function(e){return this.throwIfDisposed(),sc(this,e)},ba().prototype.mul=function(e){return this.throwIfDisposed(),So(this,e)},ba().prototype.neg=function(){return this.throwIfDisposed(),Ru(this)},ba().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Sh(this,e,t,n)},ba().prototype.notEqual=function(e){return this.throwIfDisposed(),uc(this,e)},ba().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),hi(this,e,t,n)},ba().prototype.onesLike=function(){return this.throwIfDisposed(),fc(this)},ba().prototype.pad=function(e,t){return this.throwIfDisposed(),pc(this,e,t)},ba().prototype.pool=function(e,t,n,r,a){return this.throwIfDisposed(),wc(this,e,t,n,r,a)},ba().prototype.pow=function(e){return this.throwIfDisposed(),Uo(this,e)},ba().prototype.prelu=function(e){return this.throwIfDisposed(),_c(this,e)},ba().prototype.prod=function(e,t){return this.throwIfDisposed(),xc(this,e,t)},ba().prototype.reciprocal=function(){return this.throwIfDisposed(),Rc(this)},ba().prototype.relu=function(){return this.throwIfDisposed(),Oc(this)},ba().prototype.relu6=function(){return this.throwIfDisposed(),Bc(this)},ba().prototype.reshapeAs=function(e){return this.throwIfDisposed(),Cl(this,e.shape)},ba().prototype.reshape=function(e){return this.throwIfDisposed(),Cl(this,e)},ba().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),ff(this,e,t,n)},ba().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),df(this,e,t,n)},ba().prototype.reverse=function(e){return this.throwIfDisposed(),Mc(this,e)},ba().prototype.rfft=function(){return this.throwIfDisposed(),ah(this)},ba().prototype.round=function(){return this.throwIfDisposed(),Wc(this)},ba().prototype.rsqrt=function(){return this.throwIfDisposed(),Uc(this)},ba().prototype.selu=function(){return this.throwIfDisposed(),Vc(this)},ba().prototype.separableConv2d=function(e,t,n,r,a,s){return this.throwIfDisposed(),jc(this,e,t,n,r,a,s)},ba().prototype.sigmoid=function(){return this.throwIfDisposed(),Al(this)},ba().prototype.sign=function(){return this.throwIfDisposed(),Gc(this)},ba().prototype.sin=function(){return this.throwIfDisposed(),Xc(this)},ba().prototype.sinh=function(){return this.throwIfDisposed(),Kc(this)},ba().prototype.slice=function(e,t){return this.throwIfDisposed(),Dl(this,e,t)},ba().prototype.softmax=function(e){return this.throwIfDisposed(),Qc(this,e)},ba().prototype.softplus=function(){return this.throwIfDisposed(),Ou(this)},ba().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),vc(this,e,t)},ba().prototype.split=function(e,t){return this.throwIfDisposed(),rh(this,e,t)},ba().prototype.sqrt=function(){return this.throwIfDisposed(),No(this)},ba().prototype.square=function(){return this.throwIfDisposed(),Io(this)},ba().prototype.squaredDifference=function(e){return this.throwIfDisposed(),sh(this,e)},ba().prototype.squeeze=function(e){return this.throwIfDisposed(),ih(this,e)},ba().prototype.stack=function(e,t){this.throwIfDisposed();const n=e instanceof ya?[this,e]:[this,...e];return oh(n,t)},ba().prototype.step=function(e){return this.throwIfDisposed(),lh(this,e)},ba().prototype.stridedSlice=function(e,t,n,r,a,s,i,o){return this.throwIfDisposed(),uh(this,e,t,n,r,a,s,i,o)},ba().prototype.sub=function(e){return this.throwIfDisposed(),Vo(this,e)},ba().prototype.sum=function(e,t){return this.throwIfDisposed(),$u(this,e,t)},ba().prototype.tan=function(){return this.throwIfDisposed(),ch(this)},ba().prototype.tanh=function(){return this.throwIfDisposed(),Tl(this)},ba().prototype.tile=function(e){return this.throwIfDisposed(),gu(this,e)},ba().prototype.toBool=function(){return this.throwIfDisposed(),js(this,"bool")},ba().prototype.toFloat=function(){return this.throwIfDisposed(),js(this,"float32")},ba().prototype.toInt=function(){return this.throwIfDisposed(),js(this,"int32")},ba().prototype.topk=function(e,t){return this.throwIfDisposed(),gh(this,e,t)},ba().prototype.transpose=function(e){return this.throwIfDisposed(),fi(this,e)},ba().prototype.unique=function(e){return this.throwIfDisposed(),bh(this,e)},ba().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),vh(this,e,t)},ba().prototype.unstack=function(e){return this.throwIfDisposed(),wh(this,e)},ba().prototype.where=function(e,t){return this.throwIfDisposed(),lu(e,this,t)},ba().prototype.zerosLike=function(){return this.throwIfDisposed(),Ao(this)};class Tp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Tp.prototype)}}class Fp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Fp.prototype)}}class Rp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Rp.prototype)}}class Op extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Op.prototype)}}class Bp extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Bp.prototype)}}function Mp(e,t){if(Array.isArray(e)){let n=[];for(let r=0;rt.toUpperCase()))}Error;let Vp={};function jp(e){if(null==e)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Hp(e){if(null!=e&&"object"==typeof e)if(Array.isArray(e))e.forEach((e=>Hp(e)));else{const t=Object.keys(e);for(const n of t){const t=e[n];null!=t&&"object"==typeof t&&(Array.isArray(t)||"ndarray"!==t.type||"number"!=typeof t.value?Hp(t):e[n]=t.value)}}}function Gp(e,t={},n={},r="object",a=!1){if("string"==typeof e){const a=e;let s;if(a in n)s=n[a];else if(a in Vp)s=Vp[a];else if(s=t[a],null==s)throw new Rp(`Unknown ${r}: ${e}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return s}{const s=e;if(null==s.className||null==s.config)throw new Rp(`${r}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);const i=s.className;let o,l;if(i in n?[o,l]=n[i]:i in Vp?[o,l]=Vp.className:i in t&&([o,l]=t[i]),null==o)throw new Rp(`Unknown ${r}: ${i}. This may be due to one of the following reasons:\n1. The ${r} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${r} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(null!=l){const e={};for(const t of Object.keys(Vp))e[t]=Vp[t];for(const t of Object.keys(n))e[t]=n[t];s.config.customObjects=e;const t=Object.assign({},Vp);for(const e of Object.keys(n))Vp[e]=n[e];Hp(s.config);const r=l(o,s.config,n,a);return Vp=Object.assign({},t),r}{const e=Object.assign({},Vp);for(const e of Object.keys(n))Vp[e]=n[e];const t=new o(s.config);return Vp=Object.assign({},e),t}}}function Xp(e,t){return-1*function(e,t){return et?1:0}(e,t)}function Kp(e){if(null==e)return e;const t=[];for(const n of e)-1===t.indexOf(n)&&t.push(n);return t}function qp(e){if(null==e)throw new Rp(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function Yp(e,t,n){if(null!=n&&e.indexOf(n)<0)throw new Rp(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Jp(e,t,n=0,r=1/0){return $p(n>=0),$p(r>=n),Array.isArray(e)&&e.length>=n&&e.length<=r&&e.every((e=>typeof e===t))}function Zp(e,t){Array.isArray(e)?(Q(e.length>0,(()=>`${t} is unexpectedly an empty array.`)),e.forEach(((e,n)=>Zp(e,`element ${n+1} of ${t}`)))):Q(Number.isInteger(e)&&e>0,(()=>`Expected ${t} to be a positive integer, but got ${Qp(e)}.`))}function Qp(e){return null===e?"null":Array.isArray(e)?"["+e.map((e=>Qp(e))).join(",")+"]":"string"==typeof e?`"${e}"`:`${e}`}function em(e){return"relu"===e?"relu":"linear"===e?"linear":"elu"===e?"elu":null}function tm(e,t){return uo((()=>No($u(So(e,e),t,!0))))}class nm extends zi{getConfig(){return{}}}class rm extends nm{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return uo((()=>{const t=tm(e,this.axis),n=Wl(t,0,this.maxValue);return So(e,Co(n,ko(Dp(),t)))}))}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}rm.className="MaxNorm",Ui(rm);class am extends nm{constructor(e){super(),this.defaultAxis=0,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return uo((()=>Co(e,ko(Dp(),tm(e,this.axis)))))}getConfig(){return{axis:this.axis}}}am.className="UnitNorm",Ui(am);class sm extends nm{apply(e){return Oc(e)}}sm.className="NonNeg",Ui(sm);class im extends nm{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=null!=e.minValue?e.minValue:this.defaultMinValue,this.maxValue=null!=e.maxValue?e.maxValue:this.defaultMaxValue,this.rate=null!=e.rate?e.rate:this.defaultRate,this.axis=null!=e.axis?e.axis:this.defaultAxis}apply(e){return uo((()=>{const t=tm(e,this.axis),n=ko(So(this.rate,Wl(t,this.minValue,this.maxValue)),So(1-this.rate,t));return So(e,Co(n,ko(Dp(),t)))}))}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}im.className="MinMaxNorm",Ui(im);const om={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function lm(e){return jp(e)}function um(e,t={}){return Gp(e,Wi.getMap().classNameMap,t,"constraint")}function cm(e){return null==e?null:"string"==typeof e?um({className:e in om?om[e]:e,config:{}}):e instanceof nm?e:um(e)}function hm(e){return new rm(e)}function fm(e){return new am(e)}function dm(){return new sm}function pm(e){return new im(e)}const mm=["channelsFirst","channelsLast"],gm=["nearest","bilinear"],ym=["valid","same","causal"],bm=["max","avg"],vm=["sum","mul","concat","ave"],wm=new Map;function _m(e){Yp(mm,"DataFormat",e)}function xm(e){Yp(ym,"PaddingMode",e)}function km(e){Yp(bm,"PoolMode",e)}const Em=[];function Cm(e,t){Em.push(e);try{const e=t();return Em.pop(),e}catch(e){throw Em.pop(),e}}function Sm(e){if(!Am(e))throw new Error("Not a valid tensor name: '"+e+"'");return(0===Em.length?"":Em.join("/")+"/")+e}function Nm(e){if(!Am(e))throw new Error("Not a valid tensor name: '"+e+"'");wm.has(e)||wm.set(e,0);const t=wm.get(e);if(wm.set(e,wm.get(e)+1),t>0){const n=`${e}_${t}`;return wm.set(n,1),n}return e}const Im=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Am(e){return!!e.match(Im)}function Dm(e,t,n){null==t&&(t=0),null==n&&(n=e.length);let r=1;for(let a=t;a{switch(e.rank){case 1:return qc(e,t,n);case 2:return Yc(e,[t,0],[n,e.shape[1]]);case 3:return Jc(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Zc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Dl(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Dl(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new Rp(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Pm(e,t,n){return uo((()=>{switch(e.rank){case 1:return qc(e,t,n);case 2:return Yc(e,[0,t],[e.shape[0],n]);case 3:return Jc(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Zc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new Rp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function Lm(e,t,n,r){return uo((()=>{switch(e.rank){case 1:return qc(e,t,n);case 2:switch(r){case 1:return $m(e,t,n);case 2:return Pm(e,t,n);default:throw new Rp(`The axis is not within the rank of the tensor ${r}`)}case 3:switch(r){case 1:return $m(e,t,n);case 2:return Jc(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Pm(e,t,n);default:throw new Rp(`The axis is not within the rank of the tensor ${r}`)}case 4:switch(r){case 1:return $m(e,t,n);case 2:return Zc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Zc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Pm(e,t,n);default:throw new Rp(`The axis is not within the rank of the tensor ${r}`)}default:throw new Rp(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}}))}function zm(e,t=-1){let n;return t<0&&(n=e[0].rank,t=0!==n?n:0),t===e[0].rank&&(t=-1),Il(e,t)}function Wm(e,t){switch(e.rank){case 1:return Ul([e,t]);case 2:return Vl([e,t],0);case 3:return jl([e,t],0);case 4:return Hl([e,t],0);default:throw new Rp(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Um(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new Rp(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return gu(e,t)}function Vm(e,t=0,n=1,r,a){return Ac(e,t,n,r,a)}function jm(e,t,n,r){if(e.rank<2||t.rank<2)throw new Op(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3&&e.shape.slice(-1)[0]!==t.shape.slice(-2)[0])throw new Op(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`);if(2===e.rank&&2===t.rank)return jh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?Xm(e.rank,r,"channelsLast"):null,activation:n});{const a=e.shape.slice(),s=a.pop();e=e.reshape([-1,s]);const i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],c=Array.from({length:t.rank},((e,n)=>0===n?t.rank-2:n<=t.rank-2?n-1:n));t=t.transpose(c).reshape([l,-1]);const h=[...a,...u];return jh({a:e,b:t,transposeA:!1,transposeB:!1,bias:r?Xm(e.rank,r,"channelsLast"):null,activation:n}).reshape(h)}}function Hm(e,t,n){return uo((()=>(t=Array.isArray(t)?hh(t,"int32"):t.toInt(),vu(e,t,n))))}function Gm(e){return So(e,e)}function Xm(e,t,n){const r=t.shape;if(1!==t.rank&&t.rank!==e)throw new Rp(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(5===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1,1]):t.reshape([1,r[3],r[0],r[1],r[2]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,1,r[0]]):t.reshape([1].concat(r))}else if(4===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1,1]):t.reshape([1,r[2],r[0],r[1]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,1,r[0]]):t.reshape([1].concat(r))}else if(3===e){if("channelsFirst"===n)return 1===r.length?t.reshape([1,r[0],1]):t.reshape([1,r[1],r[0]]);if("channelsLast"===n)return 1===r.length?t.reshape([1,1,r[0]]):t.reshape([1].concat(r))}else if(e<3)return t;throw new Rp(`Unsupported input rank by biasAdd: ${t.rank}`)}function Km(e,t,n){return uo((()=>(null==n&&(n="channelsLast"),_m(n),e.add(Xm(e.rank,t,n)))))}function qm(e,t,n,r){return uo((()=>Th(e,t,n,r)))}function Ym(e,t,n=!1){return n?e():t()}const Jm=["fanIn","fanOut","fanAvg"],Zm=["normal","uniform","truncatedNormal"];class Qm extends zi{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class eg extends Qm{apply(e,t){return cc(e,t)}}eg.className="Zeros",Ui(eg);class tg extends Qm{apply(e,t){return hc(e,t)}}tg.className="Ones",Ui(tg);class ng extends Qm{constructor(e){if(super(),"object"!=typeof e)throw new Rp(`Expected argument of type ConstantConfig but got ${e}`);if(void 0===e.value)throw new Rp(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return uo((()=>So($o(this.value),hc(e,t))))}getConfig(){return{value:this.value}}}ng.className="Constant",Ui(ng);class rg extends Qm{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Dc(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}rg.className="RandomUniform",Ui(rg);class ag extends Qm{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Op(`randomNormal does not support dType ${t}.`);return Vm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}ag.className="RandomNormal",Ui(ag);class sg extends Qm{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Op(`truncatedNormal does not support dType ${t}.`);return yh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}sg.className="TruncatedNormal",Ui(sg);class ig extends Qm{constructor(e){super(),this.gain=null!=e.gain?e.gain:1}apply(e,t){return uo((()=>{if(2!==e.length||e[0]!==e[1])throw new Rp("Identity matrix initializer can only be used for 2D square matrices.");return So(this.gain,yu(e[0]))}))}getConfig(){return{gain:this.gain}}}ig.className="Identity",Ui(ig);class og extends Qm{constructor(e){if(super(),e.scale<0)throw new Rp(`scale must be a positive float. Got: ${e.scale}`);var t;this.scale=null==e.scale?1:e.scale,this.mode=null==e.mode?"fanIn":e.mode,t=this.mode,Yp(Jm,"FanMode",t),this.distribution=null==e.distribution?"normal":e.distribution,function(e){Yp(Zm,"Distribution",e)}(this.distribution),this.seed=e.seed}apply(e,t){const n=function(e,t="channelsLast"){let n,r;if(_m(t),2===e.length)n=e[0],r=e[1];else if(-1!==[3,4,5].indexOf(e.length)){if("channelsFirst"===t){const t=Dm(e,2);n=e[1]*t,r=e[0]*t}else if("channelsLast"===t){const t=Dm(e,0,e.length-2);n=e[e.length-2]*t,r=e[e.length-1]*t}}else{const t=Dm(e);n=Math.sqrt(t),r=Math.sqrt(t)}return[n,r]}(e),r=n[0],a=n[1];let s=this.scale;if("fanIn"===this.mode?s/=Math.max(1,r):"fanOut"===this.mode?s/=Math.max(1,a):s/=Math.max(1,(r+a)/2),"normal"===this.distribution){const n=Math.sqrt(s);if("float32"!==(t=t||"float32")&&"int32"!==t)throw new Op(`${this.getClassName()} does not support dType ${t}.`);return yh(e,0,n,t,this.seed)}{const n=Math.sqrt(3*s);return Dc(e,-n,n,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}og.className="VarianceScaling",Ui(og);class lg extends og{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return og.className}}lg.className="GlorotUniform",Ui(lg);class ug extends og{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return og.className}}ug.className="GlorotNormal",Ui(ug);class cg extends og{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return og.className}}cg.className="HeNormal",Ui(cg);class hg extends og{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return og.className}}hg.className="HeUniform",Ui(hg);class fg extends og{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:null==e?null:e.seed})}getClassName(){return og.className}}fg.className="LeCunNormal",Ui(fg);class dg extends og{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:null==e?null:e.seed})}getClassName(){return og.className}}dg.className="LeCunNormal",Ui(dg);class pg extends Qm{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=null==e.gain?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,null!=this.seed)throw new Op("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return uo((()=>{if(e.length<2)throw new Op("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const t=Vm(e[0]>e[1]?[e[1],e[0]]:e,0,1,"float32");let n=Ff.gramSchmidt(t);return e[0]>e[1]&&(n=n.transpose()),So(this.gain,n)}))}getConfig(){return{gain:this.gain,seed:this.seed}}}pg.className="Orthogonal",Ui(pg);const mg={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function gg(e,t={}){return Gp(e,Wi.getMap().classNameMap,t,"initializer")}function yg(e){return jp(e)}function bg(e){if("string"==typeof e){const t=e in mg?mg[e]:e;if("GlorotNormal"===t)return new ug;if("GlorotUniform"===t)return new lg;if("HeNormal"===t)return new cg;if("HeUniform"===t)return new hg;if("LeCunNormal"===t)return new fg;if("LeCunUniform"===t)return new dg;{const e={};return e.className=t,e.config={},gg(e)}}return e instanceof Qm?e:gg(e)}function vg(){return new eg}function wg(){return new tg}function _g(e){return new ng(e)}function xg(e){return new rg(e)}function kg(e){return new ag(e)}function Eg(e){return new sg(e)}function Cg(e){return new ig(e)}function Sg(e){return new og(e)}function Ng(e){return new lg(e)}function Ig(e){return new ug(e)}function Ag(e){return new cg(e)}function Dg(e){return new hg(e)}function Tg(e){return new fg(e)}function Fg(e){return new dg(e)}function Rg(e){return new pg(e)}let Og=0;function Bg(){return Og++}const Mg={};function $g(e=""){return e in Mg||(Mg[e]=0),Mg[e]+=1,e+Mg[e].toString()}function Pg(e){return Array.isArray(e)&&Array.isArray(e[0])}function Lg(e){return 0===e.length?[]:Array.isArray(e[0])?e:[e]}function zg(e){let t;if(Array.isArray(e)){if(1!==e.length)throw new Rp(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Wg(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(1===e.length)return(e=e)[0];throw new Rp(`Expected exactly 1 Shape; got ${e.length}`)}return e}function Ug(e){let t=0;for(const n of e)0===n.shape.length?t+=1:t+=n.shape.reduce(((e,t)=>e*t));return t}class Vg{constructor(e,t="float32",n="Variable",r=!0,a=null){this.dtype=null==t?"float32":t,this.shape=e.shape,this.id=Bg(),n=null==n?"Variable":n,this.originalName=Sm(n),this.name=Nm(this.originalName),this.trainable_=r,this.constraint=a,this.val=_h(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),function(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}(this.val,e),this.val.id!==e.id&&(this.val.assign(e),null!=this.constraint&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function jg(e){return e.map((e=>e.read()))}function Hg(e){e.forEach((e=>{e[0].write(e[1])}))}class Gg{constructor(e){this.dtype=e.dtype,this.shape=e.shape,null!=e.shape?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class Xg{constructor(e,t,n,r,a,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=r,this.callArgs=a,this.outputTensorIndex=i,this.id=Bg(),null!=s&&(this.originalName=Sm(s),this.name=Nm(this.originalName)),this.rank=t.length}}let Kg=0;class qg{constructor(e,t){this.callArgs=t,this.id=Kg++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const t of e.inboundLayers)null!=t&&t.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)null!=t?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let Yg=0;class Jg extends zi{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=Yg++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const e=this.getClassName();t=Wp(e)+"_"+$g(e)}if(this.name=t,this.trainable_=null==e.trainable||e.trainable,null!=e.inputShape||null!=e.batchInputShape){let t;if(null!=e.batchInputShape)t=e.batchInputShape;else if(null!=e.inputShape){let n=null;null!=e.batchSize&&(n=e.batchSize),t=[n].concat(e.inputShape)}this.batchInputShape=t;let n=e.dtype;null==n&&(n=e.inputDType),null==n&&(n="float32"),this.dtype=n}null!=e.weights?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(0===this.inboundNodes.length)throw new Fp(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new Rp(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return Lp(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return Lp(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Tp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(0===this.inboundNodes.length)throw new Tp(`Layer ${this.name} is not connected, no input to return.`);return Lp(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(0===this.inboundNodes.length)throw new Tp(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Tp(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Lp(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map((e=>e()))}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach((t=>t.trainable=e)),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter((e=>e.trainable)):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter((e=>!e.trainable)).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=zp(e),null==this.inputSpec||0===this.inputSpec.length)return;const t=zp(this.inputSpec);if(e.length!==t.length)throw new Rp(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;na.maxNDim)throw new Rp(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${a.maxNDim}, found ndim=${s}`);if(null!=a.minNDim&&s=0?e[r]:e[e.length+r];if(null!=s&&-1===[s,null].indexOf(i))throw new Rp(`Input ${n} is incompatible with layer ${this.name}: expected axis ${r} of input shape to have value ${s} but got shape ${e}.`)}}if(null!=a.shape)for(let e=0;e{if(!this.built){this.assertInputCompatibility(e);const t=[];for(const n of zp(e))t.push(n.shape);this.build(Lp(t)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),null===this._refCount&&a&&(this._refCount=1)}if(this.assertInputCompatibility(e),a){let r=this.call(e,t);const a=zp(r),s=[];for(let e of a)-1!==n.indexOf(e)&&(e=e.clone()),s.push(e);if(r=Lp(s),null!=this.activityRegularizer)throw new Op("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}{const n=function(e){e=zp(e);const t=[];for(const n of e)t.push(n.shape);return Lp(t)}(e),r=this.computeOutputShape(n);let a;const s="float32";if(this.warnOnIncompatibleInputShape(Array.isArray(e)?n[0]:n),a=null!=r&&r.length>0&&Array.isArray(r[0])?r.map(((n,r)=>new Xg(s,n,this,zp(e),t,this.name,r))):new Xg(s,r,this,zp(e),t,this.name),this.addInboundNode(e,a,null,null,n,r,t),this._refCount++,null!=this.activityRegularizer)throw new Op("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}}))}warnOnIncompatibleInputShape(e){if(null!=this.batchInputShape)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach(((n,r)=>{null!=n&&null!=e[r]&&e[r]!==n&&(t=!0)})),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(null==this.inboundNodes||0===this.inboundNodes.length)throw new Tp(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const n=JSON.stringify(t.outputShapes);-1===e.indexOf(n)&&e.push(n)}if(1===e.length){const e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&1===e.length?e[0]:e}throw new Tp(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Fp(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Ug(this.weights)}build(e){this.built=!0}getWeights(e=!1){return jg(e?this.trainableWeights:this.weights)}setWeights(e){uo((()=>{const t=this.weights;if(t.length!==e.length)throw new Rp(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(0===t.length)return;const n=[],r=jg(t);for(let a=0;aa.apply(l.read()))),null==s&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){null==e||Array.isArray(e)&&0===e.length||(e=zp(e),void 0!==this._losses&&null!==this._losses&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(null!=t){if(!Array.isArray(t))throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);t.forEach((e=>{if(null!=e)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)}))}return null}return t}addInboundNode(e,t,n,r,a,s,i=null){const o=zp(e);t=zp(t),n=zp(n),r=zp(r),a=Lg(a),s=Lg(s);const l=[],u=[],c=[];for(const e of o)l.push(e.sourceLayer),u.push(e.nodeIndex),c.push(e.tensorIndex);new qg({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:c,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:r,inputShapes:a,outputShapes:s},i);for(let e=0;ee.dispose())),this.weights.length}assertNotDisposed(){if(0===this._refCount)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(null===this._refCount)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return 0==--this._refCount&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function Zg(e,t,n){if((null==t||null!=n&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),0===t.inboundNodes.length)return[e];{const e=t.inboundNodes[n];if(0===e.inboundLayers.length)return e.inputTensors;{const t=[];for(let n=0;n0){const a=await Promise.all(t);for(let t=0;tko(this.totals[e],So(r,n))));this.totals[e]=a,null!=t&&t.dispose()}}}async onEpochEnd(e,t){if(null!=t)for(const e of this.params.metrics)null!=this.totals[e]&&("number"==typeof this.totals[e]?t[e]=this.totals[e]/this.seen:uo((()=>{const n=So(Co(1,this.seen),this.totals[e]);t[e]=n,this.totals[e].dispose(),ho(t[e])})))}}class oy extends ay{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){null==t&&(t={}),this.epoch.push(e);for(const e in t)null==this.history[e]&&(this.history[e]=[]),this.history[e].push(t[e])}async syncData(){const e=[],t=[],n=[];for(const r in this.history){const a=this.history[r];for(let s=0;s{const s=ta();return s-rnew ly(e,t)))}class cy{constructor(){}static registerCallbackConstructor(e,t){Q(e>=0&&Number.isInteger(e),(()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`)),cy.checkForDuplicate(t),null==cy.constructors[e]&&(cy.constructors[e]=[]),cy.constructors[e].push(t)}static checkForDuplicate(e){for(const t in cy.constructors)cy.constructors[+t].forEach((t=>{if(t===e)throw new Rp("Duplicate callback constructor.")}))}static clear(){cy.constructors={}}static createCallbacks(e){const t=[];for(const n in cy.constructors){const r=+n;e>=r&&t.push(...cy.constructors[r])}return t.map((e=>new e))}}function hy(e,t,n,r,a,s,i,o,l){const u=new oy,c=[new iy,...cy.createCallbacks(t)];null!=e&&c.push(...e),c.push(u);const h=new sy(c);return h.setParams({epochs:n,initialEpoch:r,samples:a,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:h,history:u}}function fy(e,t={},n=!1){return Gp(e,Wi.getMap().classNameMap,t,"layer",n)}function dy(e,t){return uo((()=>{"float32"!==e.dtype&&(e=e.asType("float32"));const n=$u(Gm(e),t,!0),r=zo(n.shape,Dp()),a=No(qo(n,r));return Co(e,a)}))}function py(e,t){return uo((()=>tc(Gm(Vo(t,e)),-1)))}function my(e,t){return uo((()=>tc(Ho(Vo(t,e)),-1)))}function gy(e,t){return uo((()=>{const n=Vo(e,t),r=Wl(Ho(e),Dp(),Number.MAX_VALUE),a=Ho(Co(n,r));return So(100,tc(a,-1))}))}function yy(e,t,n=!1){return uo((()=>{if(n)t=Qc(t);else{const e=$u(t,t.shape.length-1,!0);t=Co(t,e)}return t=Wl(t,Dp(),1-Dp()),Ru($u(So(e.toFloat(),Tu(t)),t.shape.length-1))}))}function by(e,t,n=!1){return uo((()=>{const r=bu(function(e){const t=[Dm(e.shape)];return e.reshape(t)}(e)).toInt(),a=(t=Wl(t,Dp(),1-Dp())).shape;return yy(hi(r,a[a.length-1]).reshape(a),t,n)}))}function vy(e,t){return uo((()=>{let n;return n=Wl(t,Dp(),1-Dp()),n=Tu(Co(n,Vo(1,n))),tc(function(e,t){if(!se(e.shape,t.shape))throw new Rp(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return uo((()=>{const n=t.relu(),r=t.abs().neg();return n.sub(t.mul(e)).add(r.exp().log1p())}))}(e,n),-1)}))}function wy(e,t){return uo((()=>{const n=dy(e,-1),r=dy(t,-1),a=So(n,r);return Ru($u(a,-1))}))}cy.constructors={};const _y={meanSquaredError:py,meanAbsoluteError:my,meanAbsolutePercentageError:gy,meanSquaredLogarithmicError:function(e,t){return uo((()=>{const n=Wl(t,Dp(),Number.MAX_VALUE),r=Tu(ko(1,n)),a=Wl(e,Dp(),Number.MAX_VALUE),s=Tu(ko(1,a));return tc(Gm(Vo(r,s)),-1)}))},squaredHinge:function(e,t){return uo((()=>{const n=qo(0,Vo(1,So(e,t)));return tc(Gm(n),-1)}))},hinge:function(e,t){return uo((()=>{const n=qo(0,Vo(1,So(e,t)));return tc(n,-1)}))},categoricalHinge:function(e,t){return uo((()=>{const n=$u(So(e,t),-1),r=Mu(So(Vo(1,e),t),-1);return qo(0,ko(1,Vo(r,n)))}))},logcosh:function(e,t){return uo((()=>{const n=Math.log(2),r=Vo(t,e),a=Vo(ko(r,Ou(So(-2,r))),n);return tc(a,-1)}))},categoricalCrossentropy:yy,sparseCategoricalCrossentropy:by,binaryCrossentropy:vy,kullbackLeiblerDivergence:function(e,t){return uo((()=>{const n=Wl(e,Dp(),1),r=Wl(t,Dp(),1);return $u(So(e,Tu(Co(n,r))),-1)}))},poisson:function(e,t){return uo((()=>{const n=Tu(ko(Dp(),t));return tc(Vo(t,So(e,n)),-1)}))},cosineProximity:wy};function xy(e){if("string"==typeof e){if(e in _y)return _y[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new Rp(t)}return e}function ky(e,t){return uo((()=>{const n=So(.5,fc(t)),r=Bm(wu(t,n),e.dtype);return tc(ou(e,r),-1)}))}function Ey(e,t){return uo((()=>Bm(ou(sl(e,-1),sl(t,-1)),"float32")))}function Cy(e,t){return uo((()=>Ku(e.equal(1),t.equal(1)).sum().cast("float32")))}function Sy(e,t){return uo((()=>{const n=Cy(e,t),r=function(e,t){return uo((()=>Ku(e.equal(0),t.equal(1)).sum().cast("float32")))}(e,t),a=n.add(r);return lu(wu(a,0),n.div(a),0).cast("float32")}))}function Ny(e,t){return vy(e,t)}function Iy(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),(t=t.argMax(-1)).dtype!==e.dtype&&(t=t.asType(e.dtype)),ou(e,t).asType("float32")}const Ay=yy,Dy=by,Ty={binaryAccuracy:ky,categoricalAccuracy:Ey,precision:Sy,categoricalCrossentropy:Ay,sparseCategoricalCrossentropy:Dy,mse:py,MSE:py,mae:my,MAE:my,mape:gy,MAPE:gy,cosine:wy};function Fy(e){if("string"==typeof e&&e in Ty)return Ty[e];if("string"!=typeof e&&null!=e)return e;throw new Rp(`Unknown metric ${e}`)}function Ry(e){if($p(null!==e,`Unknown LossOrMetricFn ${e}`),"string"==typeof e)return e;{let t;for(const n of Object.keys(_y))if(_y[n]===e){t=n;break}if(void 0!==t)return t;for(const n of Object.keys(Ty))if(Ty[n]===e){t=n;break}return void 0!==t?t:e.name}}function Oy(e,t,n=!1){if(null==e||"object"!=typeof e||Object.getPrototypeOf(e)!==Object.prototype||!By(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){const n=JSON.stringify(e);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= 1048576.`)}}function By(e){if(null===e)return!0;if("object"==typeof e){if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const n of t){if("string"!=typeof n)return!1;if(!By(e[n]))return!1}return!0}if(Array.isArray(e)){for(const t of e)if(!By(t))return!1;return!0}return!1}{const t=typeof e;return"string"===t||"number"===t||"boolean"===t}}function My(e,t,n=console.log){let r="";for(let n=0;n0&&(r=r.slice(0,r.length-1)+" "),r+=e[n],r=r.slice(0,t[n]),r+=" ".repeat(t[n]-r.length);n(r)}function $y(e,t,n){let r;try{r=JSON.stringify(e.outputShape)}catch(e){r="multiple"}My([`${e.name} (${e.getClassName()})`,r,e.countParams().toString()],t,n)}function Py(e,t,n,r){let a;try{a=JSON.stringify(e.outputShape)}catch(e){a="multiple"}const s=[];for(const t of e.inboundNodes)if(!(null!=n&&n.length>0&&-1===n.indexOf(t)))for(let e=0;ee.name)),l=[],u=t.names();for(const e of o)-1!==u.indexOf(e)?l.push(t.getValue(e)):l.push(null);null!=r&&(r.maxNumTensors=-1/0,r.minNumTensors=1/0);const c=o.join(",")+"|"+t.names().join(",");let h,f;if(null==jy[c]){const e=function(e,t){Q(null!=e&&e.length>0,(()=>"Expected at least one fetch, got none"));let n=[],r={};if(1===e.length){const a=Ky(e[0],t);n=a.sorted,r=a.recipientMap}else{const a=new Set;for(const s of e){const{sorted:e,recipientMap:i}=Ky(s,t);for(const t of e)a.has(t.name)||(n.push(t),a.add(t.name));for(const e in i)null==r[e]&&(r[e]=new Set),i[e].forEach((t=>r[e].add(t)))}}return{sorted:n,recipientCounts:Xy(r)}}(i,t);h=e.sorted,f=e.recipientCounts,jy[c]=h,Hy[c]=f}h=jy[c],f={},a||Object.assign(f,Hy[c]);const d=new Vy(t);for(let e=0;er.maxNumTensors&&(r.maxNumTensors=e),e0;){const e=s[s.length-1];if(n.has(e.name)){s.pop();continue}const t=i[i.length-1]===s.length-1;if(0===e.inputs.length||t)s.pop(),r.push(e),n.add(e.name),t&&i.pop();else{i.push(s.length-1);for(const t of e.inputs)null==a[t.name]&&(a[t.name]=new Set),a[t.name].add(e.name),n.has(t.name)||s.push(t)}}return{sorted:r,recipientMap:a}}function qy(e){let t;if(1===e.sourceLayer.inboundNodes.length)t=e.sourceLayer.output;else{let n=null;for(let t=0;te.name))}`);Kp(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map((e=>e.name))}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const e of this.outputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;this.outputLayers.push(t),this.outputLayersNodeIndices.push(n),this.outputLayersTensorIndices.push(r)}for(const e of this.inputs){const t=e.sourceLayer,n=e.nodeIndex,r=e.tensorIndex;$p(0===n,"input layer has >1 nodes"),$p(0===r,"input layer has >1 tensors"),this.inputLayers.push(t),this.inputLayersNodeIndices.push(n),this.inputLayersTensorIndices.push(r)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let t=0;te.shape)),this.internalOutputShapes=this.outputs.map((e=>e.shape));const t={},n={},r={},a={},s={},i=[],o=(e,t,n,r,a,l)=>{null!=r&&null!=a&&null!=l||(r=e.sourceLayer,a=e.nodeIndex,l=e.tensorIndex);const u=r.inboundNodes[a];if(-1!==n.indexOf(u))throw new Fp(`The tensor ${e.name} at layer "${r.name}" is part of a cycle.`);if(-1!==t.indexOf(u))return;this.containerNodes.add(Yy.nodeKey(r,a)),r.id in s||(s[r.id]=Object.keys(s).length),-1===n.indexOf(u)&&n.push(u);const c=u.inboundLayers.length;for(let e=0;e=0;)n.splice(n.indexOf(u),1);i.push(u)},l=[],u=[];for(const e of this.outputs)o(e,l,u);const c=i.slice().reverse();for(const e of c){n[e.id]=e,e.id in t||(t[e.id]=0);let s=t[e.id];const i=null==r[e.outboundLayer.id]?0:r[e.outboundLayer.id];s=Math.max(s,i),r[e.outboundLayer.id]=s,a[e.outboundLayer.id]=e.outboundLayer,t[e.id]=s;for(let r=0;rparseInt(e,10))).sort(Xp);this.layers=[];for(const e of d){const t=f[e];t.sort(((e,t)=>{const n=s[e.id],r=s[t.id];return nr?1:0}));for(const e of t)e instanceof Yy&&this.internalContainerRefs.push(e),this.layers.push(e)}this.layersByDepth=f,d=Object.keys(h).map((e=>parseInt(e,10))).sort(Xp);const p=this.inputs.slice(),m=[];for(const e of d)for(const t of h[e]){const e=t.outboundLayer;if(null!=e){for(const n of t.inputTensors)if(-1===p.indexOf(n))throw new Fp(`Graph disconnected: cannot obtain value for tensor ${n} at layer "${e.name}". The following previous layers were accessed without issue: ${m}`);for(const e of t.outputTensors)p.push(e);m.push(e.name)}}this.nodesByDepth=h;const g=this.layers.map((e=>e.name));for(const e of g){const t=g.filter((t=>t===e)).length;if(1!==t)throw new Fp(`The name "${e}" is used ${t} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new qg({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map((e=>null)),outputMasks:this.outputs.map((e=>null)),inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs.map((e=>e.shape))}),this.built=!0,this._refCount=1}assertNotDisposed(){if(0===this._refCount)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(0==--this._refCount){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach((t=>{t._trainableWeights.forEach((t=>t.trainable=e))})),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new Rp("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.layers)t.push(...e.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const n={};let r=0;for(const e of this.layers)for(const t of e.weights){if(null!=n[t.originalName])throw new Rp(`Duplicate weight name: ${t.originalName}`);n[t.originalName]=t,r++}const a=[];for(const r in e){let s=r;if(null==n[r]){const e=r.split("/");s=e.slice(0,-2).concat([e[e.length-1]]).join("/")}if(null!=n[s])a.push([n[s],e[r]]);else if(t)throw new Rp(`Provided weight data has no target variable: ${r}`);delete n[s]}if(t){const e=[];for(const t in n)e.push(t);if(e.length>0)throw new Rp(`${e.length} of ${r} weights are not set: ${e}`)}Hg(a)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Uy}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const n=Wy(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return uo((()=>{e=zp(e);const n=new Vy;for(let t=0;t{let n;return e=zp(e),n=null==t?Mp(null,e.length):zp(t),this.runInternalGraph(e,n)[1]}))}computeOutputShape(e){const t=Lg(e);if(t.length!==this.inputLayers.length)throw new Rp(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const n={};for(let e=0;eparseInt(e,10))).sort(Xp);if(r.length>1)for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer;if(-1!==this.inputLayers.map((e=>e.id)).indexOf(t.id))continue;const r=[];for(let t=0;tparseInt(e,10))).sort(Xp);for(const e of r){const t=this.nodesByDepth[e];for(const e of t){const t=e.outboundLayer,r=e.inputTensors,a=e.outputTensors,s=new Array;for(const e of r)e.id in n&&s.push(n[e.id]);if(s.length===r.length){let r,i,o,l,u={};if(null!=e.callArgs&&(u=e.callArgs),1===s.length){const[e,n]=s[0];null==u.mask&&(u.mask=n),o=zp(t.call(e,u)),l=zp(t.computeMask(e,n)),r=[e],i=[n]}else r=s.map((e=>e[0])),i=s.map((e=>e[1])),null==u.mask&&(u.mask=i),o=zp(t.call(r,u)),l=zp(t.computeMask(r,i));if(t.activityRegularizer)throw new Op("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let e=0;e{const e=[];for(const t of this.layers)for(let n=0;n0){const e=[];for(let n=0;n0&&e.apply(Lp(n),r)}function l(e){const n=e.name,s=fy(e,null!=t.customObjects?t.customObjects:{});s.setFastWeightInitDuringBuild(r),a[n]=s,e.inboundNodes.forEach((e=>{if(!(e instanceof Array))throw new Rp(`Corrupted configuration, expected array for nodeData: ${e}`);i(s,e)}))}const u=t.name,c=t.layers;for(const e of c)l(e);for(;!qp(s);)for(const e of c){const t=a[e.name];if(t.name in s){const e=s[t.name];delete s[t.name];for(const n of e)o(t,n)}}const h=[],f=[],d=t.inputLayers;for(const e of d){const t=e[0],n=e[1],r=e[2];$p(t in a);const s=a[t].inboundNodes[n].outputTensors;h.push(s[r])}const p=t.outputLayers;for(const e of p){const t=e[0],n=e[1],r=e[2];$p(t in a);const s=a[t].inboundNodes[n].outputTensors;f.push(s[r])}return new e({inputs:h,outputs:f,name:u})}get stateful(){if(this._stateful)throw new Rp("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){uo((()=>{this.layers.forEach((e=>{e.stateful&&e.resetStates()}))}))}}function Jy(e,t){return function(e,t,n){const r=t.length;if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>null));if(1===r)return Array.isArray(e)&&1===e.length?e:"object"==typeof e&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==r)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${r} outputs. Make sure a set of weights is provided for each model output.`);return e}if("object"==typeof e&&Object.keys(e).length>0&&"object"==typeof e[Object.keys(e)[0]]){const n=[];return t.forEach((t=>{t in e?n.push(e[t]):n.push(null)})),n}throw new Error(`The model has multiple (${r}) outputs, so ${n} must be either an array with ${r} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}(e,t,"classWeight")}async function Zy(e,t,n,r){if(null!=t||null!=r)throw new Error("Support sampleWeight is not implemented yet");if(null!=n){const t=uo((()=>{if(1===e.shape.length)return e.clone();if(2===e.shape.length){if(e.shape[1]>1){const t=1;return e.argMax(t)}if(1===e.shape[1])return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)})),r=Array.from(await t.data());co(t);const a=[];return r.forEach((e=>{if(null==n[e])throw new Error(`classWeight must contain all classes in the training data. The class ${e} exists in the data but not in classWeight`);a.push(n[e])})),hh(a,"float32")}return null}function Qy(e,t){return So(e,t)}function eb(e,t){let n,r;const a=t;n=a.xs,r=a.ys,Q(null!=n&&null!=r,(()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`));const s=tb("input",e.inputNames,n),i=tb("output",e.outputNames,r),o=s[0].shape[0];Q(s.length===e.inputs.length,(()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`)),Q(i.length===e.outputs.length,(()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`));for(let t=0;t`Batch size mismatch: input ${e.inputNames[t]} has ${s[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));for(let t=0;t`Batch size mismatch: output ${e.outputNames[t]} has ${i[t].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`));return{xs:s,ys:i}}function tb(e,t,n){if(n instanceof ya)return[n];if(Array.isArray(n))return Q(n.length===t.length,(()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`)),n;{const r=[];for(const a of t){if(null==n[a])throw new Rp(`The feature data generated by the dataset lacks the required ${e} key '${a}'.`);r.push(n[a])}return r}}function nb(e){return"function"==typeof e.iterator}function rb(e){Q(e>0&&Number.isInteger(e),(()=>`batchSize is required to be a positive integer, but got ${e}`))}function ab(e,t,n){return null==e?[null]:Array.isArray(e)?e.map((e=>$m(e,t,n-t))):$m(e,t,n-t)}function sb(e,t){return uo((()=>null==e?null:Array.isArray(e)?e.map((e=>sb(e,t))):Hm(e,"int32"===t.dtype?t:t.toInt())))}function ib(e,t){const n=[];let r=0,a=null;for(;r=e&&(a=e),n.push([r,a]),r=a;return n}function ob(e){const t=[];e instanceof ya&&(e=[e]);for(let n=0;nn.push(e.id)));else if(null!=t)for(const e in t){const r=t[e];n.push(r.id)}const r=[];if(e instanceof ya)-1===n.indexOf(e.id)&&r.push(e);else if(Array.isArray(e))e.forEach((e=>{-1===n.indexOf(e.id)&&r.push(e)}));else if(null!=e)for(const t in e){const a=e[t];-1===n.indexOf(a.id)&&r.push(a)}r.forEach((e=>{e.isDisposed||e.dispose()}))}function ub(e){return Array.isArray(e)}function cb(e){return!function(e){return e instanceof ya}(e)&&!ub(e)}function hb(e,t,n,r=!0,a=""){if(null==t||0===t.length){if(null!=e){let t=!1;if(ub(e)&&e.length>0)t=!0;else if(cb(e)){for(const n in e)if(e.hasOwnProperty(n)){t=!0;break}}else t=!0;if(t)throw new Rp(`Error when checking model ${a} expected no data, but got ${e}`)}return[]}if(null==e)return t.map((e=>null));let s;if(cb(e)){e=e,s=[];for(const n of t){if(null==e[n])throw new Rp(`No data provided for "${n}". Need data for each key in: ${t}`);s.push(e[n])}}else if(ub(e)){if((e=e).length!==t.length)throw new Rp(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new Rp(`The model ${a} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=ob(s),null!=n)for(let e=0;e=0&&o!==l)throw new Rp(`Error when checking ${a}: expected ${t[e]} to have shape [${n[e]}], but got array with shape [${i.shape}].`)}}return s}function fb(e,t,n,r=!0,a=""){let s;if(Array.isArray(e)){if(e.length!==t.length)throw new Rp(`Error when checking model ${a}: the Array of Tensors that you are passing to your model is not the size the the model expected. Expected to see ${t.length} Tensor(s), but instead got ${e.length} Tensors(s).`);s=e}else{if(t.length>1)throw new Rp(`The model expects ${t.length} ${a} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(null!=n)for(let e=0;e1||1===e.length&&e[0].inboundLayers.length>1){t=!1;break}r.push(...e)}if(t)for(const n of e.layers){let e=!1;for(const a of n.inboundNodes)if(-1!==r.indexOf(a)){if(e){t=!1;break}e=!0}if(!t)break}return t}(e),s=["Layer (type)","Output shape","Param #"];let i;if(a?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map((e=>Math.floor(t*e)))),!a){s.push("Receives inputs"),i=[];for(const t in e.nodesByDepth)i.push(...e.nodesByDepth[t])}r("_".repeat(t)),My(s,n,r),r("=".repeat(t));const o=e.layers;for(let e=0;eBf.adagrad(.01),Adadelta:()=>Bf.adadelta(1,.95,Dp()),Adam:()=>Bf.adam(.001,.9,.999,Dp()),Adamax:()=>Bf.adamax(.002,.9,.999,Dp(),0),RMSProp:()=>Bf.rmsprop(.001,.9,0,Dp()),SGD:()=>Bf.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new Rp(`Unknown Optimizer ${e}`)}(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Po))throw new Rp("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(Array.isArray(e.loss)||"string"==typeof e.loss||"function"==typeof e.loss)if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new Rp(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const n=e.loss;t=n.map((e=>xy(e)))}else{const n=xy(e.loss);this.outputs.forEach((e=>{t.push(n)}))}else{e.loss=e.loss;for(const t in e.loss)if(-1===this.outputNames.indexOf(t))throw new Rp(`Unknown entry in loss dictionary: "${t}". Only expected the following keys: ${this.outputNames}`);for(const n of this.outputNames)null==e.loss[n]&&console.warn(`Output "${n}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${n} during training`),t.push(xy(e.loss[n]))}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let e=0;e{for(let e=0;e1&&(this.metricsTensors.push([t,e]),this.metricsNames.push(this.outputNames[e]+"_loss"))}}));const r=function(e,t){if(null==e||Array.isArray(e)&&0===e.length)return t.map((e=>[]));let n;if("string"==typeof e||"function"==typeof e)n=[e];else{if(!Array.isArray(e)&&"object"!=typeof e)throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);n=e}if(Array.isArray(n))return t.map((e=>n));{const e=[];for(const r of t){let t=n.hasOwnProperty(r)?n[r]:[];Array.isArray(t)||(t=[t]),e.push(t)}return e}}(e.metrics,this.outputNames),a=(e,t,n)=>{this.outputNames.length>1&&(t=this.outputNames[e]+"_"+t),this.metricsNames.push(t),this.metricsTensors.push([n,e])};Cm("metric",(()=>{for(let e=0;e{let n,r,s;for(const i of t){if("string"==typeof i&&-1!==["accuracy","acc","crossentropy","ce"].indexOf(i)){const t=this.internalOutputShapes[e];let a;1===t[t.length-1]||this.lossFunctions[e]===vy?-1!==["accuracy","acc"].indexOf(i)?r=ky:-1!==["crossentropy","ce"].indexOf(i)&&(r=Ny):this.lossFunctions[e]===by?-1!==["accuracy","acc"].indexOf(i)?r=Iy:-1!==["crossentropy","ce"].indexOf(i)&&(r=Dy):-1!==["accuracy","acc"].indexOf(i)?r=Ey:-1!==["crossentropy","ce"].indexOf(i)&&(r=Ay),-1!==["accuracy","acc"].indexOf(i)?a="acc":-1!==["crossentropy","ce"].indexOf(i)&&(a="ce"),s=r,n=""+a}else{const e=Fy(i);s=e,n=""+Ry(i)}let t;Cm(n,(()=>{t=s})),a(e,n,t)}})(r[e])})),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){null!=this.collectedTrainableWeights&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){const r=null==n.batchSize?32:n.batchSize;rb(r);const a=this.standardizeUserDataXY(e,t,!0,r);try{const s=a[0].concat(a[1]);this.makeTestFunction();const i=this.testFunction;return Lp(this.testLoop(i,s,r,n.verbose,n.steps))}finally{lb(a[0],e),lb(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),async function(e,t,n){const r=null!=(n=n||{}).batches,a=e.testFunction;let s=[];if(n.verbose>0)throw new Op("Verbose mode is not implemented yet.");Q(!r||n.batches>0&&Number.isInteger(n.batches),(()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`));const i="function"==typeof t.next?t:await t.iterator();let o=0,l=0;for(;!r||l{if(t.value){const{xs:n,ys:r}=eb(e,t.value),i=n.concat(r),u=uo((()=>a(i)));if(co(i),0===l)for(let e=0;eko(s[e],So(c,t)))),l>0&&co(n)}co(u),o+=c,++l}return s})),t.done){r&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let e=0;ee.name));for(let r=0;r0){const n=[];throw t.forEach(((t,r)=>{null==t&&n.push(e[r])})),new Rp(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,n=!1){return uo((()=>{const r=this.checkNumSamples(e);if(n)throw new Op("Verbose predictLoop() is not implemented yet.");const a=ib(r,t),s=this.outputs.map((e=>[]));for(let t=0;t{const n=a[t][0],r=a[t][1],s=ab(e,n,r),i=[];if(Array.isArray(s))for(let e=0;es[t].push(e)));return Lp(s.map((e=>Il(e,0))))}))}predict(e,t={}){const n=ob(e);fb(n,this.inputNames,this.feedInputShapes,!1);try{const r=null==t.batchSize?32:t.batchSize;return rb(r),this.predictLoop(n,r)}finally{lb(n,e)}}predictOnBatch(e){fb(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,r){if(null==this.optimizer_)throw new Fp("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const a=[];for(let e=0;ee.shape[0])));r.sort();const a=Kp(t.map((e=>e.shape[0])));if(a.sort(),r.length>1)throw new Rp(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map((e=>e.shape)))}`);if(a.length>1)throw new Rp(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map((e=>e.shape)))}`);if(r.length>0&&a.length>0&&!se(r,a))throw new Rp(`Input Tensors should have the same number of samples as target Tensors. Found ${r[0]} input sample(s) and ${a[0]} target sample(s).`)}(e=hb(e,this.feedInputNames,this.feedInputShapes,!1,"input"),t=hb(t,this.feedOutputNames,a,!1,"target")),function(e,t,n){const r=[py,vy,yy];for(let a=0;a0&&e[0].shape[0]%r!=0)throw new Rp(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${r}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,r,a=!0,s){const[i,o]=this.standardizeUserDataXY(e,t,a,s);if(null!=n)throw new Error("sample weight is not supported yet.");let l=null;if(null!=r){const e=Jy(r,this.outputNames);l=[];for(let t=0;t{const s=this.checkNumSamples(t,n,a,"steps"),i=[];if(r>0)throw new Op("Verbose mode is not implemented yet.");if(null!=a)throw new Op("steps mode in testLoop() is not implemented yet");{const r=ib(s,n),a=hh(Om(0,s));for(let n=0;n1&&(a+=`_${Pp(e.slice(0,n),r)}`),t.push(a)}return t}makeTrainFunction(){return e=>{const t=[],n=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+2*this.outputs.length),s=[],i=this.collectedTrainableWeights.map((e=>e.read()));return[this.optimizer_.minimize((()=>{const e=[];for(let t=0;t1&&e{l=ko(l,e)})),l}),!0,i)].concat(s)}}makeTestFunction(){this.testFunction=e=>uo((()=>{const t=[];let n;const r=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let e=0;e0){if(m=!0,2!==r.validationData.length)throw 3===r.validationData.length?new Op("validationData including sample weights is not supported yet."):new Rp(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${r.validationData} is invalid.`);i=r.validationData[0],o=r.validationData[1];const t=!0,n=await e.standardizeUserData(i,o,null,null,t,h);l=n[0],u=n[1],p=l.concat(u)}else if(null!=r.validationSplit&&r.validationSplit>0&&r.validationSplit<1){m=!0;const e=Math.floor(a[0].shape[0]*(1-r.validationSplit)),t=a[0].shape[0];l=ab(a,e,t),a=ab(a,0,e),u=ab(s,e,t),s=ab(s,0,e),p=l.concat(u)}else null!=r.validationSteps&&(m=!0);const g=a.concat(s).concat(c);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),b=e.getDedupedMetricsNames();let v,w;m?(e.makeTestFunction(),v=e.testFunction,w=b.slice().concat(b.map((e=>"val_"+e)))):(v=null,p=[],w=b.slice());const _=uy(r.callbacks,r.yieldEvery);return await async function(e,t,n,r,a,s,i,o,l,u,c,h,f,d,p){null==a&&(a=32),null==s&&(s=1),null==c&&(c=!0),null==f&&(f=0);let m=!1;null!=l&&null!=u&&(m=!0);const g=e.checkNumSamples(n,a,d,"steps_per_epoch");let y;null!=g&&(y=Om(0,g)),null==i&&(i=1);const{callbackList:b,history:v}=hy(o,i,s,f,g,d,a,m,h);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let i=f;i{const f=o[c][0],d=o[c][1],p=$m(i,f,d-f);h.batch=c,h.size=d-f;const g=sb(n,p),y=t(g);for(let e=0;e"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).")),Q(null!=n,(()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.")),Q(null!=n.epochs&&n.epochs>0&&Number.isInteger(n.epochs),(()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`)),Q(!r||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),(()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`)),Q(null==n.validationSplit,(()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.")),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const a=null!=n.validationData;let s,i;if(a)if(nb(n.validationData))Q(null==n.validationBatches||n.validationBatches>0&&Number.isInteger(n.validationBatches),(()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`));else{const e=function(e){if(3===e.length)throw new Op("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}(n.validationData);s=e.xs,i=e.ys}const o=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let u;u=a?l.slice().concat(l.map((e=>"val_"+e))):l.slice();const c=uy(n.callbacks,n.yieldEvery),h=null==n.verbose?1:n.verbose,{callbackList:f,history:d}=hy(c,h,n.epochs,null,null,function(e,t){let n=null;return null!=t.batchesPerEpoch?n=t.batchesPerEpoch:Number.isFinite(e.size)&&(n=e.size),n}(t,n),null,a,u);f.setModel(e),e.history=d,await f.onTrainBegin(),e.stopTraining_=!1;let p=null==n.initialEpoch?0:n.initialEpoch,m=await t.iterator();for(;p=n.batchesPerEpoch:t.done){if(a){let t;t=nb(n.validationData)?zp(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):zp(e.evaluate(s,i,{batchSize:null==n.validationBatchSize?32:n.validationBatchSize,verbose:0}));for(let n=0;nWp(e)))}else{const t=Object.keys(this.loss);e={};const n=this.loss;for(const r of t){if("string"!=typeof n[r])throw new Error("Serialization of non-string loss is not supported.");e[r]=Wp(n[r])}}return e}getMetricIdentifiers(){if("string"==typeof this.metrics||"function"==typeof this.metrics)return[Wp(Ry(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map((e=>Wp(Ry(e))));{const e={};for(const t in this.metrics)e[t]=Wp(Ry(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(null!=e.weighted_metrics)throw new Error("Loading weight_metrics is not supported yet.");if(null!=e.loss_weights)throw new Error("Loading loss_weights is not supported yet.");if(null!=e.sample_weight_mode)throw new Error("Loading sample_weight_mode is not supported yet.");const t=fy(zy(e.optimizer_config));let n,r;if("string"==typeof e.loss)n=Up(e.loss);else if(Array.isArray(e.loss))n=e.loss.map((e=>Up(e)));else if(null!=e.loss){n={};for(const t in e.loss)n[t]=Up(e.loss[t])}if(Array.isArray(e.metrics))r=e.metrics.map((e=>Up(e)));else if(null!=e.metrics){r={};for(const t in e.metrics)r[t]=Up(e.metrics[t])}this.compile({loss:n,metrics:r,optimizer:t})}async save(e,t){if("string"==typeof e){const t=hs(e);if(0===t.length)throw new Rp(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Rp(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Rp("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const n=await Qa(this.getNamedWeights(t)),r={modelTopology:this.toJSON(null,!1),format:"layers-model",generatedBy:`TensorFlow.js tfjs-layers v${Uy}`,convertedBy:null};if(null!=t&&t.includeOptimizer&&null!=this.optimizer){r.trainingConfig=this.getTrainingConfig();const e="optimizer",{data:t,specs:a}=await Qa(await this.optimizer.getWeights(),e);n.specs.push(...a),n.data=as([n.data,t])}if(null!=this.userDefinedMetadata){const e=!0;Oy(this.userDefinedMetadata,this.name,e),r.userDefinedMetadata=this.userDefinedMetadata}return r.weightData=n.data,r.weightSpecs=n.specs,e.save(r)}setUserDefinedMetadata(e){Oy(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}db.className="Model",Ui(db);class pb extends db{}async function mb(e,t){"modelTopology"in e||(e={modelTopology:e});let n=(e=e).modelTopology;null!=n.model_config&&(n=n.model_config);const r=fy(zy(n),t);if(null!=e.weightsManifest){const t=await Qs(e.weightsManifest,e.pathPrefix,r.weights.map((e=>e.originalName))),n={};for(const e of r.weights)n[e.originalName]=t[e.originalName];r.loadWeights(n),co(t)}return r}pb.className="Functional",Ui(pb);class gb extends db{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=null!=e.name?e.name:$g("sequential_"),null!=e.layers)for(const t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some((e=>e<0)))throw new Rp(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof gb||e instanceof db;let n;if(t){if(n=e,1!==n.outputs.length)throw new Rp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(1!==n.inputs.length)throw new Rp("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(0===this.outputs.length){if(0===e.inboundNodes.length){if(null==e.batchInputShape)throw new Rp("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const t=ey({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(t)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(1!==e.inboundNodes.length)throw new Rp(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(1!==e.inboundNodes[0].outputTensors.length)throw new Rp("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Zg(this.outputs[0])}this.inboundNodes=[],new qg({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Mp(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map((e=>e.shape)),outputShapes:this.outputs[0].shape})}else{const t=e.apply(this.outputs[0]);if(Array.isArray(t))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[t],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(0===this.layers.length)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),0===this.layers.length)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return null==this.model&&this.build(),this.model.call(e,t)}build(e){if(Wg(e),0===this.inputs.length||0===this.outputs.length)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new db({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){null==this.model&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Fp("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Fp("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return null==this.model&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return null==this.model&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return null==this.model?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Fp("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Fp("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},r=!1){let a,s={};if(t instanceof Array){if(null==t[0].className||"Merge"===t[0].className)throw new Rp("Legacy serialization format not supported yet.");a=t}else Q(null!=t.layers,(()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.")),a=t.layers,delete t.layers,s=t;const i=new e(s);if(!(i instanceof gb))throw new Op(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(const e of a){const t=fy(e,void 0,r);r&&t.setFastWeightInitDuringBuild(!0),i.add(t)}return i}set stopTraining(e){if(null==this.model)throw new Rp("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(null==this.model)throw new Rp("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}}function yb(e){return new db(e)}function bb(e){return new gb(e)}function vb(e,t){return null==t&&(t={}),async function(e,t){if(null==t&&(t={}),"string"==typeof e){const n=fs(e,t);if(0===n.length)n.push(si(e,t));else if(n.length>1)throw new Rp(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return async function(e,t,n){if(null==n&&(n={}),null==e.load)throw new Rp("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const r=await e.load();let a=r.modelTopology;null!=a.model_config&&(a=a.model_config);const s=null==n.strict||n.strict,i=null!=r.weightData&&null!=r.weightSpecs&&s,o=fy(zy(a),void 0,i),l=r.trainingConfig;if(null!=l&&o.loadTrainingConfig(l),null!=r.userDefinedMetadata&&o.setUserDefinedMetadata(r.userDefinedMetadata),null!=r.weightData){if(null==r.weightSpecs)throw new Rp("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:e,optimizerWeights:t}=function(e,t){const n=es(e,t),r={},a=[];return t.forEach((e=>{"optimizer"===e.group?a.push({name:e.name,tensor:n[e.name]}):r[e.name]=n[e.name]})),{modelWeights:r,optimizerWeights:a}}(r.weightData,r.weightSpecs);o.loadWeights(e,s),null!=o.optimizer&&t.length>0&&await o.optimizer.setWeights(t),co(e),co(t.map((e=>e.tensor)))}return o}(e,0,t)}(e,t)}function wb(e){return ey(e)}function _b(e,t){cy.registerCallbackConstructor(e,t)}gb.className="Sequential",Ui(gb);class xb extends zi{getConfig(){return{}}}class kb extends xb{apply(e,t=1){return function(e,t=1){if(1!==t)throw new Op(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return hu(e)}(e,t)}}kb.className="elu",Ui(kb);class Eb extends xb{apply(e){return Vc(e)}}Eb.className="selu",Ui(Eb);class Cb extends xb{apply(e){return Oc(e)}}Cb.className="relu",Ui(Cb);class Sb extends xb{apply(e){return uo((()=>rc(6,Oc(e))))}}Sb.className="relu6",Ui(Sb);class Nb extends xb{apply(e){return e}}Nb.className="linear",Ui(Nb);class Ib extends xb{apply(e){return Al(e)}}Ib.className="sigmoid",Ui(Ib);class Ab extends xb{apply(e){return function(e){return uo((()=>{const t=ko(.5,So(.2,e));return Wl(t,0,1)}))}(e)}}Ab.className="hardSigmoid",Ui(Ab);class Db extends xb{apply(e){return Ou(e)}}Db.className="softplus",Ui(Db);class Tb extends xb{apply(e){return function(e){return uo((()=>Co(e,Ho(e).add(1))))}(e)}}Tb.className="softsign",Ui(Tb);class Fb extends xb{apply(e){return Tl(e)}}Fb.className="tanh",Ui(Fb);class Rb extends xb{apply(e,t=-1){return Qc(e,t)}}Rb.className="softmax",Ui(Rb);class Ob extends xb{apply(e,t=-1){return Pu(e,t)}}Ob.className="logSoftmax",Ui(Ob);class Bb extends xb{apply(e,t=1){return uo((()=>Al(e.mul(t)).mul(e)))}}function Mb(e){return e.getClassName()}function $b(e,t={}){return Gp(e,Wi.getMap().classNameMap,t,"activation")}function Pb(e){if(null==e){return $b({className:"linear",config:{}})}if("string"==typeof e){const t={};return t.className=e,t.config={},$b(t)}return e instanceof xb?e:$b(e)}function Lb(e){if(null!=e&&"object"!=typeof e)throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}Bb.className="swish",Ui(Bb);class zb extends zi{}class Wb extends zb{constructor(e){super(),Lb(e),this.l1=null==e||null==e.l1?.01:e.l1,this.l2=null==e||null==e.l2?.01:e.l2,this.hasL1=0!==this.l1,this.hasL2=0!==this.l2}apply(e){return uo((()=>{let t=cc([1]);return this.hasL1&&(t=ko(t,$u(So(this.l1,Ho(e))))),this.hasL2&&(t=ko(t,$u(So(this.l2,Gm(e))))),t.asScalar()}))}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}Wb.className="L1L2",Ui(Wb);const Ub={l1l2:"L1L2"};function Vb(e){return jp(e)}function jb(e,t={}){return Gp(e,Wi.getMap().classNameMap,t,"regularizer")}function Hb(e){return null==e?null:"string"==typeof e?jb({className:e in Ub?Ub[e]:e,config:{}}):e instanceof zb?e:jb(e)}class Gb extends Jg{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,null!=e&&(this.maxValue=e.maxValue)}call(e,t){e=zg(e);let n=Oc(e);return null!=this.maxValue&&(n=Wl(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Gb.className="ReLU",Ui(Gb);class Xb extends Jg{constructor(e){super(null==e?{}:e),this.DEFAULT_ALPHA=.3,null==e&&(e={}),this.alpha=null==e.alpha?this.DEFAULT_ALPHA:e.alpha}call(e,t){const n=zg(e);return Su(n,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Xb.className="LeakyReLU",Ui(Xb);class Kb extends Jg{constructor(e){if(super(null==e?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",null==e&&(e={}),this.supportsMasking=!0,this.alphaInitializer=bg(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Hb(e.alphaRegularizer),this.alphaConstraint=cm(e.alphaConstraint),null==e.sharedAxes)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else{if("number"!=typeof e.sharedAxes)throw new Rp(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`);this.sharedAxes=[e.sharedAxes]}}build(e){const t=(e=Wg(e)).slice(1);if(null!=this.sharedAxes)for(const e of this.sharedAxes)t[e-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const n={};if(null!=this.sharedAxes)for(let t=1;t(_m(t),"channelsFirst"===t?fi(e,[0,2,3,1]):e)))}function nv(e,t){return uo((()=>(_m(t),"channelsFirst"===t?fi(e,[0,2,3,4,1]):e)))}function rv(e,t,n,r=[1,1],a="valid",s,i,o=null){return uo((()=>{if(null==s&&(s="channelsLast"),_m(s),3!==e.rank&&4!==e.rank)throw new Rp(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(3!==t.rank&&4!==t.rank)throw new Rp(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=tv(e,s);if("causal"===a)throw new Op("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=zh({x:l,filter:t,strides:r,pad:"same"===a?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),"channelsFirst"===s&&(l=fi(l,[0,3,1,2])),l}))}Jb.className="Softmax",Ui(Jb);class av extends Jg{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",av.verifyArgs(t),this.rank=e,Zp(this.rank,"rank"),1!==this.rank&&2!==this.rank&&3!==this.rank)throw new Op(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Zb(t.kernelSize,e,"kernelSize"),this.strides=Zb(null==t.strides?1:t.strides,e,"strides"),this.padding=null==t.padding?"valid":t.padding,xm(this.padding),this.dataFormat=null==t.dataFormat?"channelsLast":t.dataFormat,_m(this.dataFormat),this.activation=Pb(t.activation),this.useBias=null==t.useBias||t.useBias,this.biasInitializer=bg(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=cm(t.biasConstraint),this.biasRegularizer=Hb(t.biasRegularizer),this.activityRegularizer=Hb(t.activityRegularizer),this.dilationRate=Zb(null==t.dilationRate?1:t.dilationRate,e,"dilationRate"),1===this.rank&&Array.isArray(this.dilationRate)&&1!==this.dilationRate.length)throw new Rp(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(2===this.rank){if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate];else if(2!==this.dilationRate.length)throw new Rp(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(3===this.rank)if("number"==typeof this.dilationRate)this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(3!==this.dilationRate.length)throw new Rp(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}static verifyArgs(e){if($p("kernelSize"in e,"required key 'kernelSize' not in config"),"number"!=typeof e.kernelSize&&!Jp(e.kernelSize,"number",1,3))throw new Rp(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Mb(this.activation),useBias:this.useBias,biasInitializer:yg(this.biasInitializer),biasRegularizer:Vb(this.biasRegularizer),activityRegularizer:Vb(this.activityRegularizer),biasConstraint:lm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class sv extends av{constructor(e,t){super(e,t),this.kernel=null,sv.verifyArgs(t),this.filters=t.filters,Zp(this.filters,"filters"),this.kernelInitializer=bg(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=cm(t.kernelConstraint),this.kernelRegularizer=Hb(t.kernelRegularizer)}build(e){e=Wg(e);const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Rp(`The channel dimension of the input should be defined. Found ${e[t]}`);const n=e[t],r=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return uo((()=>{let t;e=zg(e);const n=null==this.bias?null:this.bias.read(),r=em(this.activation.getClassName());if(null!=r&&2===this.rank)t=rv(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(1===this.rank)t=function(e,t,n,r=1,a="valid",s,i=1){return uo((()=>{if(null==s&&(s="channelsLast"),_m(s),3!==e.shape.length)throw new Rp(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(3!==t.shape.length)throw new Rp(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(null!=n&&1!==n.shape.length)throw new Rp(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if("channelsFirst"===s&&(e=fi(e,[0,2,1])),"causal"===a)throw new Op("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Xl(e,t,r,"same"===a?"same":"valid","NWC",i);return null!=n&&(o=Km(o,n)),o}))}(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(2===this.rank)t=rv(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else{if(3!==this.rank)throw new Op("convolutions greater than 3D are not implemented yet.");t=function(e,t,n,r=[1,1,1],a="valid",s,i){return uo((()=>{if(null==s&&(s="channelsLast"),_m(s),4!==e.rank&&5!==e.rank)throw new Rp(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(4!==t.rank&&5!==t.rank)throw new Rp(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=nv(e,s);if("causal"===a)throw new Op("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Yl(o,t,r,"same"===a?"same":"valid","NDHWC",i),null!=n&&(o=Km(o,n)),"channelsFirst"===s&&(o=fi(o,[0,4,1,2,3])),o}))}(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate)}null!=this.activation&&(t=this.activation.apply(t))}return t}))}computeOutputShape(e){e=Wg(e);const t=[],n="channelsLast"===this.dataFormat?e.slice(1,e.length-1):e.slice(2);for(let e=0;e 0 but got ${JSON.stringify(e.filters)}`)}}class iv extends sv{constructor(e){super(2,e),iv.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!Jp(e.kernelSize,"number",1,2))throw new Rp(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}iv.className="Conv2D",Ui(iv);class ov extends sv{constructor(e){super(3,e),ov.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&(!Array.isArray(e.kernelSize)||1!==e.kernelSize.length&&3!==e.kernelSize.length))throw new Rp(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}ov.className="Conv3D",Ui(ov);class lv extends iv{constructor(e){if(super(e),this.inputSpec=[new Gg({ndim:4})],"same"!==this.padding&&"valid"!==this.padding)throw new Rp(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(4!==(e=Wg(e)).length)throw new Rp("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[t])throw new Rp("The channel dimension of the inputs should be defined. Found `None`.");const n=e[t],r=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",r,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Gg({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return uo((()=>{let t=zg(e);if(4!==t.shape.length)throw new Rp(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${t.shape.length}`);const n=t.shape,r=n[0];let a,s;"channelsFirst"===this.dataFormat?(a=2,s=3):(a=1,s=2);const i=n[a],o=n[s],l=this.kernelSize[0],u=this.kernelSize[1],c=this.strides[0],h=this.strides[1],f=[r,ev(i,c,l,this.padding),ev(o,h,u,this.padding),this.filters];"channelsLast"!==this.dataFormat&&(t=fi(t,[0,2,3,1]));let d=ql(t,this.kernel.read(),f,this.strides,this.padding);return"channelsLast"!==this.dataFormat&&(d=fi(d,[0,3,1,2])),null!=this.bias&&(d=Km(d,this.bias.read(),this.dataFormat)),null!=this.activation&&(d=this.activation.apply(d)),d}))}computeOutputShape(e){const t=(e=Wg(e)).slice();let n,r,a;"channelsFirst"===this.dataFormat?(n=1,r=2,a=3):(n=3,r=1,a=2);const s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[r]=ev(t[r],o,s,this.padding),t[a]=ev(t[a],l,i,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}lv.className="Conv2DTranspose",Ui(lv);class uv extends sv{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,null==t.filters)throw new Rp("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(null!=t.kernelInitializer||null!=t.kernelRegularizer||null!=t.kernelConstraint)throw new Rp("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(null!=t.padding&&"same"!==t.padding&&"valid"!==t.padding)throw new Rp(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=null==t.depthMultiplier?1:t.depthMultiplier,this.depthwiseInitializer=bg(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Hb(t.depthwiseRegularizer),this.depthwiseConstraint=cm(t.depthwiseConstraint),this.pointwiseInitializer=bg(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Hb(t.pointwiseRegularizer),this.pointwiseConstraint=cm(t.pointwiseConstraint)}build(e){if((e=Wg(e)).length{let t;if(e=zg(e),1===this.rank)throw new Op("1D separable convolution is not implemented yet.");return 2===this.rank&&("channelsFirst"===this.dataFormat&&(e=fi(e,[0,2,3,1])),t=jc(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(t=Km(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),"channelsFirst"===this.dataFormat&&(t=fi(t,[0,3,1,2])),t}))}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=yg(this.depthwiseInitializer),e.pointwiseInitializer=yg(this.pointwiseInitializer),e.depthwiseRegularizer=Vb(this.depthwiseRegularizer),e.pointwiseRegularizer=Vb(this.pointwiseRegularizer),e.depthwiseConstraint=lm(this.depthwiseConstraint),e.pointwiseConstraint=lm(this.pointwiseConstraint),e}}uv.className="SeparableConv";class cv extends uv{constructor(e){super(2,e)}}cv.className="SeparableConv2D",Ui(cv);class hv extends sv{constructor(e){super(1,e),hv.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if("number"!=typeof e.kernelSize&&!Jp(e.kernelSize,"number",1,1))throw new Rp(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}hv.className="Conv1D",Ui(hv);class fv extends Jg{constructor(e){super(e),"number"==typeof e.cropping?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:"number"==typeof e.cropping[0]?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=void 0===e.dataFormat?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return"channelsFirst"===this.dataFormat?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return uo((()=>{if(e=zg(e),"channelsLast"===this.dataFormat){const t=Lm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Lm(t,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}{const t=Lm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Lm(t,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}}))}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}fv.className="Cropping2D",Ui(fv);class dv extends Jg{constructor(e){var t;super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=null==e.size?this.DEFAULT_SIZE:e.size,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,_m(this.dataFormat),this.interpolation=null==e.interpolation?"nearest":e.interpolation,t=this.interpolation,Yp(gm,"InterpolationFormat",t)}computeOutputShape(e){if("channelsFirst"===this.dataFormat){const t=null==e[2]?null:this.size[0]*e[2],n=null==e[3]?null:this.size[1]*e[3];return[e[0],e[1],t,n]}{const t=null==e[1]?null:this.size[0]*e[1],n=null==e[2]?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return uo((()=>{let t=zg(e);const n=t.shape;if("channelsFirst"===this.dataFormat){t=fi(t,[0,2,3,1]);const e=this.size[0]*n[2],r=this.size[1]*n[3],a="nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r]);return fi(a,[0,3,1,2])}{const e=this.size[0]*n[1],r=this.size[1]*n[2];return"nearest"===this.interpolation?t.resizeNearestNeighbor([e,r]):t.resizeBilinear([e,r])}}))}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}dv.className="UpSampling2D",Ui(dv);class pv extends av{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=null==e.depthMultiplier?1:e.depthMultiplier,this.depthwiseInitializer=bg(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=cm(e.depthwiseConstraint),this.depthwiseRegularizer=Hb(e.depthwiseRegularizer)}build(e){if((e=Wg(e)).length<4)throw new Rp(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t="channelsFirst"===this.dataFormat?1:3;if(null==e[t]||e[t]<0)throw new Rp(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const n=e[t],r=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",r,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return uo((()=>{let t=function(e,t,n=[1,1],r="valid",a,s){return uo((()=>{null==a&&(a="channelsLast"),_m(a);let i=tv(e,a);if(4!==e.rank)throw new Rp(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(4!==t.rank)throw new Rp(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=au(i,t,n,"same"===r?"same":"valid","NHWC",s),"channelsFirst"===a&&(i=fi(i,[0,3,1,2])),i}))}(e=zg(e),this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(t=Km(t,this.bias.read(),this.dataFormat)),null!=this.activation&&(t=this.activation.apply(t)),t}))}computeOutputShape(e){e=Wg(e);const t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,a=Qb(t,this.kernelSize[0],this.padding,this.strides[0]),s=Qb(n,this.kernelSize[1],this.padding,this.strides[1]);return"channelsFirst"===this.dataFormat?[e[0],r,a,s]:[e[0],a,s,r]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=yg(this.depthwiseInitializer),e.depthwiseRegularizer=Vb(this.depthwiseRegularizer),e.depthwiseConstraint=lm(this.depthwiseRegularizer),e}}function mv(e,t,n,r){if(Array.isArray(e)){if(null!=t||null!=n)throw new Rp("When inputs is an array, neither initialState or constants should be provided");null!=r&&(n=e.slice(e.length-r,e.length),e=e.slice(0,e.length-r)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function a(e){return null==e||Array.isArray(e)?e:[e]}return{inputs:e,initialState:t=a(t),constants:n=a(n)}}function gv(e,t,n,r=!1,a,s,i=!1,o=!1){return uo((()=>{const l=t.shape.length;if(l<3)throw new Rp(`Input should be at least 3D, but is ${l}D.`);const u=[1,0].concat(Om(2,l));if(t=fi(t,u),null!=s)throw new Op("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=a&&((a=a.asType("bool").asType("float32")).rank===l-1&&(a=pu(a,-1)),a=fi(a,u)),r&&(t=Mc(t,0),null!=a&&(a=Mc(a,0)));const c=[];let h,f=n;const d=t.shape[0],p=wh(t);let m,g;null!=a&&(m=wh(a));for(let t=0;te(n,f)));if(null==a)h=r[0],f=r[1];else{const e=uo((()=>{const e=m[t],n=fc(e).sub(e);return{output:r[0].mul(e).add(f[0].mul(n)),newStates:f.map(((t,a)=>r[1][a].mul(e).add(t.mul(n))))}}));h=e.output,f=e.newStates}o&&c.push(h)}return o&&(g=oh(c,1)),[h,g,f]}))}pv.className="DepthwiseConv2D",Ui(pv);class yv extends Jg{constructor(e){let t;if(super(e),null==e.cell)throw new Rp("cell property is missing for the constructor of RNN.");if(t=Array.isArray(e.cell)?new Cv({cells:e.cell}):e.cell,null==t.stateSize)throw new Rp("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=null!=e.returnSequences&&e.returnSequences,this.returnState=null!=e.returnState&&e.returnState,this.goBackwards=null!=e.goBackwards&&e.goBackwards,this._stateful=null!=e.stateful&&e.stateful,this.unroll=null!=e.unroll&&e.unroll,this.supportsMasking=!0,this.inputSpec=[new Gg({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){return null==this.states_?Om(0,Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1).map((e=>null)):this.states_}setStates(e){this.states_=e}computeOutputShape(e){Pg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const n=t[0];let r;if(r=this.returnSequences?[e[0],e[1],n]:[e[0],n],this.returnState){const n=[];for(const r of t)n.push([e[0],r]);return[r].concat(n)}return r}computeMask(e,t){return uo((()=>{Array.isArray(t)&&(t=t[0]);const e=this.returnSequences?t:null;if(this.returnState){const t=this.states.map((e=>null));return[e].concat(t)}return e}))}get states(){if(null==this.states_){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ne.shape[e.shape.length-1])),a))throw new Rp(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map((e=>new Gg({shape:[null,e]})));this.stateful&&this.resetStates()}resetStates(e,t=!1){uo((()=>{if(!this.stateful)throw new Tp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape[0];if(null==n)throw new Rp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>cc([n,e]))):this.states_=[cc([n,this.cell.stateSize])];else if(null==e)co(this.states_),null!=this.keptStates&&(co(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((e=>cc([n,e]))):this.states_[0]=cc([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Rp(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);!0===t?this.keptStates.push(this.states_.slice()):co(this.states_);for(let t=0;tho(e.clone())))}))}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=mv(e,n,r,this.numConstants);e=a.inputs,n=a.initialState,r=a.constants;let s=[],i=[];if(null!=n){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(const e of n)this.stateSpec.push(new Gg({shape:e.shape}));i=i.concat(this.stateSpec)}if(null!=r&&(t.constants=r,s=s.concat(r),this.numConstants=r.length),s[0]instanceof Xg){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return uo((()=>{const n=null==t?null:t.mask,r=null==t?null:t.training;let a=null==t?null:t.initialState;e=zg(e),null==a&&(a=this.stateful?this.states_:this.getInitialState(e));const s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(a.length!==s)throw new Rp(`RNN Layer has ${s} state(s) but was passed ${a.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const i={training:r},o=gv(((e,t)=>{const n=this.cell.call([e].concat(t),i);return[n[0],n.slice(1)]}),e,a,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],c=o[2];this.stateful&&this.resetStates(c,r);const h=this.returnSequences?u:l;return this.returnState?[h].concat(c):h}))}getInitialState(e){return uo((()=>{let t=cc(e.shape);return t=$u(t,[1,2]),t=Mm(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map((e=>e>1?Um(t,[1,e]):t)):this.cell.stateSize>1?[Um(t,[1,this.cell.stateSize])]:[t]}))}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(t.numConstants=this.numConstants);const n=this.cell.getConfig();return this.getClassName()===yv.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){const r=fy(t.cell,n);return new e(Object.assign(t,{cell:r}))}}yv.className="RNN",Ui(yv);class bv extends Jg{}class vv extends bv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Zp(this.units,"units"),this.activation=Pb(null==e.activation?this.DEFAULT_ACTIVATION:e.activation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=bg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=bg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=bg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Hb(e.kernelRegularizer),this.recurrentRegularizer=Hb(e.recurrentRegularizer),this.biasRegularizer=Hb(e.biasRegularizer),this.kernelConstraint=cm(e.kernelConstraint),this.recurrentConstraint=cm(e.recurrentConstraint),this.biasConstraint=cm(e.biasConstraint),this.dropout=Fm([1,Rm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Fm([1,Rm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Wg(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return uo((()=>{if(2!==(e=e).length)throw new Rp(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];const r=null!=t.training&&t.training;let a;0fc(e),rate:this.dropout,training:r})),0fc(n),rate:this.recurrentDropout,training:r}));const s=this.dropoutMask,i=this.recurrentDropoutMask;a=jm(null!=s?So(e,s):e,this.kernel.read()),null!=this.bias&&(a=Km(a,this.bias.read())),null!=i&&(n=So(n,i));let o=ko(a,jm(n,this.recurrentKernel.read()));return null!=this.activation&&(o=this.activation.apply(o)),[o,o]}))}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Mb(this.activation),useBias:this.useBias,kernelInitializer:yg(this.kernelInitializer),recurrentInitializer:yg(this.recurrentInitializer),biasInitializer:yg(this.biasInitializer),kernelRegularizer:Vb(this.kernelRegularizer),recurrentRegularizer:Vb(this.recurrentRegularizer),biasRegularizer:Vb(this.biasRegularizer),activityRegularizer:Vb(this.activityRegularizer),kernelConstraint:lm(this.kernelConstraint),recurrentConstraint:lm(this.recurrentConstraint),biasConstraint:lm(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}vv.className="SimpleRNNCell",Ui(vv);class wv extends yv{constructor(e){e.cell=new vv(e),super(e)}call(e,t){return uo((()=>{null!=this.cell.dropoutMask&&(co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return new e(t)}}wv.className="SimpleRNN",Ui(wv);class _v extends bv{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new Rp("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Zp(this.units,"units"),this.activation=Pb(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Pb(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=bg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=bg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=bg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Hb(e.kernelRegularizer),this.recurrentRegularizer=Hb(e.recurrentRegularizer),this.biasRegularizer=Hb(e.biasRegularizer),this.kernelConstraint=cm(e.kernelConstraint),this.recurrentConstraint=cm(e.recurrentConstraint),this.biasConstraint=cm(e.biasConstraint),this.dropout=Fm([1,Rm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Fm([1,Rm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){const t=(e=Wg(e))[e.length-1];this.kernel=this.addWeight("kernel",[t,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return uo((()=>{if(2!==(e=e).length)throw new Rp(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const n=null!=t.training&&t.training;let r=e[1];e=e[0],0fc(e),rate:this.dropout,training:n,count:3})),0fc(r),rate:this.recurrentDropout,training:n,count:3}));const a=this.dropoutMask,s=this.recurrentDropoutMask;let i,o,l;0{null!=this.cell.dropoutMask&&(co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}xv.className="GRU",Ui(xv);class kv extends bv{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Zp(this.units,"units"),this.activation=Pb(void 0===e.activation?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Pb(void 0===e.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=null==e.useBias||e.useBias,this.kernelInitializer=bg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=bg(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=bg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Hb(e.kernelRegularizer),this.recurrentRegularizer=Hb(e.recurrentRegularizer),this.biasRegularizer=Hb(e.biasRegularizer),this.kernelConstraint=cm(e.kernelConstraint),this.recurrentConstraint=cm(e.recurrentConstraint),this.biasConstraint=cm(e.biasConstraint),this.dropout=Fm([1,Rm([0,null==e.dropout?0:e.dropout])]),this.recurrentDropout=Fm([1,Rm([0,null==e.recurrentDropout?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;const n=(e=Wg(e))[e.length-1];let r;if(this.kernel=this.addWeight("kernel",[n,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){const e=this.biasInitializer,n=this.units;r=new((t=class extends Qm{apply(t,r){const a=e.apply([n]),s=(new tg).apply([n]),i=e.apply([2*n]);return Wm(Wm(a,s),i)}}).className="CustomInit",t)}else r=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,r,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return uo((()=>{const n=null!=t.training&&t.training;if(3!==(e=e).length)throw new Rp(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let r=e[1];const a=e[2];e=e[0],0fc(e),rate:this.dropout,training:n,count:4})),0fc(r),rate:this.recurrentDropout,training:n,count:4}));const s=this.dropoutMask,i=this.recurrentDropoutMask;let o,l,u,c;0{null!=this.cell.dropoutMask&&(co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}static fromConfig(e,t){return 0===t.implmentation&&(t.implementation=1),new e(t)}}Ev.className="LSTM",Ui(Ev);class Cv extends bv{constructor(e){super(e),this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return uo((()=>{let n=(e=e).slice(1);const r=[];for(const e of this.cells.slice().reverse())Array.isArray(e.stateSize)?r.push(n.splice(0,e.stateSize.length)):r.push(n.splice(0,1));r.reverse();const a=[];let s;for(let i=0;i{Cm(`RNNCell_${r}`,(()=>{n.build(e),t=Array.isArray(n.stateSize)?n.stateSize[0]:n.stateSize,e=[e[0],t]}))})),this.built=!0}getConfig(){const e=super.getConfig(),t={cells:this.cells.map((e=>({className:e.getClassName(),config:e.getConfig()})))};return Object.assign({},e,t)}static fromConfig(e,t,n={}){const r=[];for(const e of t.cells)r.push(fy(e,n));return new e({cells:r})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const e of this.cells)t.push(...e.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return jg(e)}setWeights(e){const t=[];for(const n of this.cells){const r=n.weights.length,a=e.splice(r);for(let e=0;eqm(t(),n),i=()=>Ym(s,t,r);return!a||a<=1?ho(i().clone()):Array(a).fill(void 0).map(i).map((e=>ho(e.clone())))}Cv.className="StackedRNNCells",Ui(Cv);class Nv extends yv{constructor(e){if(e.unroll)throw new Op("Unrolling is not possible with convolutional RNNs.");if(Array.isArray(e.cell))throw new Op("It is not possible at the moment to stack convolutional cells.");super(e),this.inputSpec=[new Gg({ndim:5})]}call(e,t){return uo((()=>{if(null!=this.cell.dropoutMask&&(co(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(co(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new Rp("ConvRNN2D cell does not support constants");const n=null==t?null:t.mask,r=null==t?null:t.training,a=null==t?null:t.initialState;return super.call(e,{mask:n,training:r,initialState:a})}))}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return uo((()=>{const{stateSize:t}=this.cell,n=e.shape,r=this.computeSingleOutputShape(n),a=cc([r[0],...r.slice(2)]);return Array.isArray(t)?Array(t.length).fill(a):[a]}))}resetStates(e,t=!1){uo((()=>{if(!this.stateful)throw new Tp("Cannot call resetStates() on an RNN Layer that is not stateful.");const n=this.inputSpec[0].shape,r=this.computeSingleOutputShape(n),a=[r[0],...r.slice(2)];if(null==n[0])throw new Rp("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(null==this.getStates())Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>cc(a))):this.states_=[cc(a)];else if(null==e)co(this.states_),null!=this.keptStates&&(co(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map((()=>cc(a))):this.states_[0]=cc(a);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new Rp(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):co(this.states_);for(let t=0;tho(e.clone())))}))}computeSingleOutputShape(e){const{dataFormat:t,filters:n,kernelSize:r,padding:a,strides:s,dilationRate:i}=this.cell,o="channelsFirst"===t,l=e[o?3:2],u=e[o?4:3],c=Qb(l,r[0],a,s[0],i[0]),h=Qb(u,r[1],a,s[1],i[1]);return[...e.slice(0,2),...o?[n,c,h]:[c,h,n]]}}Nv.className="ConvRNN2D";class Iv extends kv{constructor(e){const{filters:t,kernelSize:n,strides:r,padding:a,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t})),this.filters=t,Zp(this.filters,"filters"),this.kernelSize=Zb(n,2,"kernelSize"),this.kernelSize.forEach((e=>Zp(e,"kernelSize"))),this.strides=Zb(r||1,2,"strides"),this.strides.forEach((e=>Zp(e,"strides"))),this.padding=a||"valid",xm(this.padding),this.dataFormat=s||"channelsLast",_m(this.dataFormat),this.dilationRate=Zb(i||1,2,"dilationRate"),this.dilationRate.forEach((e=>Zp(e,"dilationRate")))}build(e){var t;e=Wg(e);const n="channelsFirst"===this.dataFormat?1:e.length-1;if(null==e[n])throw new Rp(`The channel dimension of the input should be defined. Found ${e[n]}`);const r=e[n],a=this.kernelSize.concat([r,4*this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const s=this.kernelSize.concat([this.filters,4*this.filters]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",s,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let e;if(this.unitForgetBias){const n=this.biasInitializer,r=this.filters;e=new((t=class extends Qm{apply(e,t){return zm([n.apply([r]),hc([r]),n.apply([2*r])])}}).className="CustomInit",t)}else e=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.filters],null,e,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return uo((()=>{if(3!==e.length)throw new Rp(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const n=t.training||!1,r=e[0],a=e[1],s=e[2];0fc(r),rate:this.dropout,training:n,count:4}));const i=this.dropoutMask,o=(e,t,n)=>t&&t[n]?So(t[n],e):e;let l=o(r,i,0),u=o(r,i,1),c=o(r,i,2),h=o(r,i,3);0fc(a),rate:this.recurrentDropout,training:n,count:4}));const f=this.recurrentDropoutMask;let d=o(a,f,0),p=o(a,f,1),m=o(a,f,2),g=o(a,f,3);const[y,b,v,w]=rh(this.kernel.read(),4,3),[_,x,k,E]=this.useBias?rh(this.bias.read(),4):[null,null,null,null];l=this.inputConv(l,y,_,this.padding),u=this.inputConv(u,b,x,this.padding),c=this.inputConv(c,v,k,this.padding),h=this.inputConv(h,w,E,this.padding);const[C,S,N,I]=rh(this.recurrentKernel.read(),4,3);d=this.recurrentConv(d,C),p=this.recurrentConv(p,S),m=this.recurrentConv(m,N),g=this.recurrentConv(g,I);const A=this.recurrentActivation.apply(ko(l,d)),D=this.recurrentActivation.apply(ko(u,p)),T=ko(So(D,s),So(A,this.activation.apply(ko(c,m)))),F=So(this.recurrentActivation.apply(ko(h,g)),this.activation.apply(T));return[F,F,T]}))}getConfig(){const e=super.getConfig(),{units:t}=e,n=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a{this.invokeCallHook(e,t);const n=zg(e);if(0qm(n,this.rate,r,this.seed)),(()=>n),e)}return e}))}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}Dv.className="Dropout",Ui(Dv);class Tv extends Dv{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Tv.className="SpatialDropout1D",Ui(Tv);class Fv extends Jg{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",null==e.batchInputShape&&null==e.inputShape&&null!=e.inputDim){let t=null;null!=e.batchSize&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Zp(this.units,"units"),this.activation=Pb(e.activation),null!=e.useBias&&(this.useBias=e.useBias),this.kernelInitializer=bg(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=bg(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=cm(e.kernelConstraint),this.biasConstraint=cm(e.biasConstraint),this.kernelRegularizer=Hb(e.kernelRegularizer),this.biasRegularizer=Hb(e.biasRegularizer),this.activityRegularizer=Hb(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){const t=(e=Wg(e))[e.length-1];null==this.kernel&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){const t=(e=Wg(e)).slice();return t[t.length-1]=this.units,t}call(e,t){return uo((()=>{this.invokeCallHook(e,t);const n=zg(e),r=em(this.activation.getClassName());let a;return null!=r?a=jm(n,this.kernel.read(),r,this.bias?this.bias.read():null):(a=jm(n,this.kernel.read()),null!=this.bias&&(a=Km(a,this.bias.read())),null!=this.activation&&(a=this.activation.apply(a))),a}))}getConfig(){const e={units:this.units,activation:Mb(this.activation),useBias:this.useBias,kernelInitializer:yg(this.kernelInitializer),biasInitializer:yg(this.biasInitializer),kernelRegularizer:Vb(this.kernelRegularizer),biasRegularizer:Vb(this.biasRegularizer),activityRegularizer:Vb(this.activityRegularizer),kernelConstraint:lm(this.kernelConstraint),biasConstraint:lm(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Fv.className="Dense",Ui(Fv);class Rv extends Jg{constructor(e){super(e=e||{}),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Wg(e);for(const t of e.slice(1))if(null==t)throw new Rp(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Dm(e,1)]}call(e,t){return uo((()=>{this.invokeCallHook(e,t);let n=zg(e);if("channelsFirst"===this.dataFormat&&n.rank>1){const e=[0];for(let t=2;t{this.invokeCallHook(e,t);const n=zg(e);return this.activation.apply(n)}))}getConfig(){const e={activation:Mb(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}Ov.className="Activation",Ui(Ov);class Bv extends Jg{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return uo((()=>{return e=zg(e),t=e,n=this.n,uo((()=>{if(2!==t.shape.length)throw new Rp(`repeat() expects a rank-2 tensor, but received a rank-${t.shape.length} tensor.`);return Um(Mm(t,1),[1,n,1])}));var t,n}))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}Bv.className="RepeatVector",Ui(Bv);class Mv extends Jg{constructor(e){super(e),this.targetShape=e.targetShape;for(let e=0;e{this.invokeCallHook(e,t);const n=zg(e),r=n.shape,a=r.slice(0,1).concat(this.fixUnknownDimension(r.slice(1),this.targetShape));return n.reshape(a)}))}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}Mv.className="Reshape",Ui(Mv);class $v extends Jg{constructor(e){if(super(e),null==e.dims)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=Om(1,e.dims.length+1);if(!se(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Gg({ndim:this.dims.length+1})]}computeOutputShape(e){const t=(e=Wg(e)).slice();return this.dims.forEach(((n,r)=>{t[r+1]=e[n]})),t}call(e,t){return fi(zg(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}$v.className="Permute",Ui($v);class Pv extends Jg{constructor(e){super(null==e?{}:e),this.supportsMasking=!0,this.maskValue=null!=e?null==e.maskValue?0:e.maskValue:0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const n=zg(e);return al(uc(n,this.maskValue),-1)}call(e,t){return uo((()=>{this.invokeCallHook(e,t);const n=zg(e),r=al(uc(n,this.maskValue),-1,!0);return n.mul(r.asType(n.dtype))}))}}Pv.className="Masking",Ui(Pv);class Lv extends Jg{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",null==e.batchInputShape&&null==e.inputShape){let t=null;null!=e.batchSize&&(t=e.batchSize),null==e.inputLength?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(zp(e.inputLength))}this.inputDim=e.inputDim,Zp(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Zp(this.outputDim,"outputDim"),this.embeddingsInitializer=bg(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Hb(e.embeddingsRegularizer),this.activityRegularizer=Hb(e.activityRegularizer),this.embeddingsConstraint=cm(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return uo((()=>this.maskZero?(e=zg(e),uc(e,Ao(e))):null))}computeOutputShape(e){if(e=Wg(e),null==this.inputLength)return[...e,this.outputDim];const t=zp(this.inputLength);if(t.length!==e.length-1)throw new Rp(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let r=0;r{this.invokeCallHook(e,t);let n=zg(e);return"int32"!==n.dtype&&(n=Bm(n,"int32")),Hm(this.embeddings.read(),n.as1D()).reshape(Wg(this.computeOutputShape(n.shape)))}))}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:yg(this.embeddingsInitializer),embeddingsRegularizer:Vb(this.embeddingsRegularizer),activityRegularizer:Vb(this.activityRegularizer),embeddingsConstraint:lm(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}Lv.className="Embedding",Ui(Lv);class zv extends Jg{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Op}computeElementwiseOpOutputShape(e,t){if(null==e||null==t)return null;if(e.length1)throw new Rp(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=null==e[0]?null:e[0].slice(1);for(let t=1;te.length));-1===e.indexOf(null)&&1===Kp(r).length?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return uo((()=>{if(e=e,this.reshapeRequired){const t=[],n=e.map((e=>e.rank));if(-1===n.indexOf(null)){const r=Rm(n);for(let n of e){const e=n.rank;for(let t=0;t1){const a=Om(1,e).concat([0]);t.push(fi(r,a)),n=!0}else t.push(r)}let r=this.mergeFunction(t);const a=r.rank;if(n)if(null==a){const e=r.shape,t=e[e.length-1],n=[t].concat(e.slice(0,e.length-1));r=fi(r.reshape([-1,t]),[1,0]).reshape(n)}else if(a>1){const e=[a-1].concat(Om(0,a-1));r=fi(r,e)}return r}}return this.mergeFunction(e)}))}computeOutputShape(e){let t;t=null==(e=e)[0]?null:e[0].slice(1);for(let n=1;n{if(null==t)return null;if(!Array.isArray(t))throw new Rp("`mask` should be an Array");if(!Array.isArray(e))throw new Rp("`inputs` should be an Array");if(t.length!==e.length)throw new Rp(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every((e=>null==e)))return null;let n=(t=t.map((e=>null==e?e:pu(e,0))))[0];for(let e=1;e{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new Rp("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return uo((()=>zm(e,this.axis)))}computeOutputShape(e){if(!Array.isArray(e)||!Array.isArray(e[0]))throw new Rp("A `Concatenate` layer should be called on a list of inputs.");const t=e,n=t[0].slice(),r=this.axis<0?n.length+this.axis:this.axis;for(const e of t.slice(1)){if(null==n[r]||null==e[r]){n[r]=null;break}n[r]+=e[r]}return n}computeMask(e,t){if(null==t)return null;if(!Array.isArray(t))throw new Rp("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new Rp("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new Rp(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return uo((()=>{let n=!0;if(t.forEach((e=>{null==e||(n=!1)})),n)return null;const r=[];for(let n=0;n"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Op("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);if(t[r[0]]!==n[r[1]])throw new Rp(`Dimension incompatibility: ${t[r[0]]} !== ${n[r[1]]}`)}mergeFunction(e){if(2!==e.length)throw new Rp(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t,n=e[0],r=e[1];return t=Array.isArray(this.axes)?this.axes.map(((t,n)=>Xv(t,e[n].shape.length))):[Xv(this.axes,n.shape.length),Xv(this.axes,r.shape.length)],this.normalize&&(n=dy(n,t[0]),r=dy(r,t[1])),function(e,t,n){if(e.shape.length>3||t.shape.length>3)throw new Op("batchDot is not implemented for tensors of 4D or higher rank yet");if(Q(e.shape.length>=2,(()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`)),Q(e.shape.length>=2,(()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`)),"number"==typeof n&&(n=[n,n]),"complex64"===e.dtype||"complex64"===t.dtype)throw new Op("batchDot is not implemented for complex64-type Tensors yet.");const r=e.shape.length,a=t.shape.length;null==n&&(n=[r-1,a-2]);const s=n;return uo((()=>{let n,i;if(r>a){n=r-a;const e=[];for(let t=0;tr){n=a-r;const t=[];for(let e=0;e0){let e;e=r>a?r+a-3:r-1;const t=[];for(let r=e;r"A `Dot` layer should be called on a list of exactly 2 inputs."));const t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Op("Dot layer does not support tensors of 4D or higher rank yet.");const r=this.interpretAxes(t,n);t.splice(r[0],1),n.splice(r[1],1),n.splice(0,1);const a=t.concat(n);return 1===a.length&&a.push(1),a}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}Kv.className="Dot",Ui(Kv);class qv extends Jg{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return uo((()=>{this.invokeCallHook(e,t);const n=zg(e);return Ym((()=>Vm(n.shape,0,this.stddev).add(n)),(()=>n),t.training||!1)}))}}qv.className="GaussianNoise",Ui(qv);class Yv extends Jg{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return uo((()=>{this.invokeCallHook(e,t);const n=zg(e);return this.rate>0&&this.rate<1?Ym((()=>{const e=Math.sqrt(this.rate/(1-this.rate));return n.mul(Vm(n.shape,1,e))}),(()=>n),t.training||!1):n}))}}Yv.className="GaussianDropout",Ui(Yv);class Jv extends Jg{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||zg(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return uo((()=>{if(this.rate<1&&this.rate>0){const n=this._getNoiseShape(e);return Ym((()=>{const t=zg(e),r=-1.7580993408473766;let a=_u(Dc(n),this.rate);a=Bm(a,"float32");const s=((1-this.rate)*(1+this.rate*r**2))**-.5,i=-s*r*this.rate;return t.mul(a).add(a.add(-1).mul(r)).mul(s).add(i)}),(()=>zg(e)),t.training||!1)}return e}))}}function Zv(e,t,n,r,a,s=.001){let i;if(2===e.rank)i=Bl(e,t,n,r,a,s);else if(3===e.rank)i=Ml(e,t,n,r,a,s);else{if(4!==e.rank)throw new Op(`batchNormalization is not implemented for array of rank ${e.rank} yet`);i=$l(e,t,n,r,a,s)}return i}Jv.className="AlphaDropout",Ui(Jv);class Qv extends Jg{constructor(e){null==e&&(e={}),super(e),this.supportsMasking=!0,this.axis=null==e.axis?-1:e.axis,this.momentum=null==e.momentum?.99:e.momentum,this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=bg(e.betaInitializer||"zeros"),this.gammaInitializer=bg(e.gammaInitializer||"ones"),this.movingMeanInitializer=bg(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=bg(e.movingVarianceInitializer||"ones"),this.betaConstraint=cm(e.betaConstraint),this.gammaConstraint=cm(e.gammaConstraint),this.betaRegularizer=Hb(e.betaRegularizer),this.gammaRegularizer=Hb(e.gammaRegularizer)}build(e){e=Wg(e);const t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(null==n)throw new Rp(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Gg({ndim:e.length,axes:{[t]:n}})];const r=[n];this.scale&&(this.gamma=this.addWeight("gamma",r,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",r,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",r,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",r,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return uo((()=>{const n=null!=t.training&&t.training,r=zg(e),a=r.shape,s=a.length,i=Om(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);const l=Mp(1,s);l[o]=a[o];const u=i.slice();u.sort();const c=!se(u,Om(0,s).slice(0,s-1));if(!n)return(()=>{if(c){const e=this.movingMean.read().reshape(l),t=this.movingVariance.read().reshape(l),n=this.center?this.beta.read().reshape(l):null,a=this.scale?this.gamma.read().reshape(l):null;return Zv(r,e,t,n,a,this.epsilon)}return Zv(r,this.movingMean.read(),this.movingVariance.read(),null==this.beta?null:this.beta.read(),null==this.gamma?null:this.gamma.read(),this.epsilon)})();const[h,f,d]=function(e,t,n,r,a=.001){return se(r.slice().sort(),Om(0,e.rank-1))?function(e,t,n,r,a=.001){return uo((()=>{const s=ic(e,r),i=s.mean,o=s.variance;return[Zv(e,i,o,n,t,a),i,o]}))}(e,t,n,r,a):function(e,t,n,r,a=.001){return uo((()=>{const s=ic(e,r),i=s.mean,o=s.variance,l=[];for(const t of Om(0,e.rank))-1!==r.indexOf(t)?l.push(1):l.push(e.shape[t]);const u=i.reshape(l),c=o.reshape(l),h=null==t?null:t.reshape(l),f=null==n?null:n.reshape(l);return[Zv(e,u,c,f,h,a),i,o]}))}(e,t,n,r,a)}(r,this.gamma.read(),this.beta.read(),i,this.epsilon),p=(e,t,n)=>{uo((()=>{const r=1-n,a=e.read(),s=a.sub(t).mul(r);e.write(a.sub(s))}))};return(()=>{p(this.movingMean,f,this.momentum),p(this.movingVariance,d,this.momentum)})(),h}))}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:yg(this.betaInitializer),gammaInitializer:yg(this.gammaInitializer),movingMeanInitializer:yg(this.movingMeanInitializer),movingVarianceInitializer:yg(this.movingVarianceInitializer),betaRegularizer:Vb(this.betaRegularizer),gammaRegularizer:Vb(this.gammaRegularizer),betaConstraint:lm(this.betaConstraint),gammaConstraint:lm(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}Qv.className="BatchNormalization",Ui(Qv);class ew extends Jg{constructor(e){if(null==e&&(e={}),super(e),this.axis=null==e.axis?-1:e.axis,"number"==typeof this.axis){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else{if(!Array.isArray(this.axis))throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);for(const e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}this.epsilon=null==e.epsilon?.001:e.epsilon,this.center=null==e.center||e.center,this.scale=null==e.scale||e.scale,this.betaInitializer=bg(e.betaInitializer||"zeros"),this.gammaInitializer=bg(e.gammaInitializer||"ones"),this.betaRegularizer=Hb(e.betaRegularizer),this.gammaRegularizer=Hb(e.gammaRegularizer),this.supportsMasking=!0}build(e){const t=(e=Wg(e)).length;"number"==typeof this.axis&&(this.axis=[this.axis]);for(let e=0;e=t)throw new Error(`Invalid axis: ${e}`);if(this.axis.length!==Kp(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const n=this.axis.map((t=>e[t]));this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,!0):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,!0):this.beta=null,this.built=!0}call(e,t){const n=zg(e),r=n.shape,a=r.length;return uo((()=>{let{mean:e,variance:t}=ic(n,this.axis,!0);const s=Mp(1,a);for(const e of this.axis)s[e]=r[e];const i=e=>null!=e&&e.shape.length!==a&&this.axis!==[a-1]?e.reshape(s):e;let o=i(this.gamma.read()),l=i(this.beta.read());const u=[],c=[];for(let e=0;e=0?e[2]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[3]&&e[3]>=0?e[3]+this.padding[1][0]+this.padding[1][1]:null,[e[0],e[1],t,n]):(t=null!=e[1]&&e[1]>=0?e[1]+this.padding[0][0]+this.padding[0][1]:null,n=null!=e[2]&&e[2]>=0?e[2]+this.padding[1][0]+this.padding[1][1]:null,[e[0],t,n,e[3]])}call(e,t){return uo((()=>{return t=zg(e),n=this.padding,r=this.dataFormat,uo((()=>{if(4!==t.rank)throw new Rp(`temporalPadding expects input tensor to be 4-D, but received a ${t.rank}-D tensor.`);if(null==n&&(n=[[1,1],[1,1]]),2!==n.length||2!==n[0].length||2!==n[1].length)throw new Rp("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(null==r&&(r="channelsLast"),"channelsLast"!==r&&"channelsFirst"!==r)throw new Rp(`Unknown data format: ${r}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let e;return e="channelsFirst"===r?[[0,0],[0,0],n[0],n[1]]:[[0,0],n[0],n[1],[0,0]],pc(t,e)}));var t,n,r}))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}function nw(e,t,n,r,a,s){return uo((()=>{let i;_m(a),km(s),xm(r),null==n&&(n=[1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=tv(e,a);const o="same"===r?"same":"valid";return i="max"===s?Zu(e,t,n,o):Sl(e,t,n,o),"channelsFirst"===a&&(i=fi(i,[0,3,1,2])),i}))}function rw(e,t,n,r,a,s){return uo((()=>{let i;_m(a),km(s),xm(r),null==n&&(n=[1,1,1]),null==r&&(r="valid"),null==a&&(a="channelsLast"),null==s&&(s="max"),e=nv(e,a);const o="same"===r?"same":"valid";return i="max"===s?Qu(e,t,n,o):Nl(e,t,n,o),"channelsFirst"===a&&(i=fi(i,[0,4,1,2,3])),i}))}tw.className="ZeroPadding2D",Ui(tw);class aw extends Jg{constructor(e){if(null==e.poolSize&&(e.poolSize=2),super(e),"number"==typeof e.poolSize)this.poolSize=[e.poolSize];else{if(!Array.isArray(e.poolSize)||1!==e.poolSize.length||"number"!=typeof e.poolSize[0])throw new Rp(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);this.poolSize=e.poolSize}if(Zp(this.poolSize,"poolSize"),null==e.strides)this.strides=this.poolSize;else if("number"==typeof e.strides)this.strides=[e.strides];else{if(!Array.isArray(e.strides)||1!==e.strides.length||"number"!=typeof e.strides[0])throw new Rp(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);this.strides=e.strides}Zp(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,xm(this.padding),this.inputSpec=[new Gg({ndim:3})]}computeOutputShape(e){const t=Qb((e=Wg(e))[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return uo((()=>{this.invokeCallHook(e,t),e=Mm(zg(e),2);const n=this.poolingFunction(zg(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ih(n,[2])}))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class sw extends aw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return _m(a),xm(r),nw(e,t,n,r,a,"max")}}sw.className="MaxPooling1D",Ui(sw);class iw extends aw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return _m(a),xm(r),nw(e,t,n,r,a,"avg")}}iw.className="AveragePooling1D",Ui(iw);class ow extends Jg{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(2!==e.strides.length)throw new Rp(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Zp(this.poolSize,"poolSize"),Zp(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,_m(this.dataFormat),xm(this.padding),this.inputSpec=[new Gg({ndim:4})]}computeOutputShape(e){e=Wg(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2];return t=Qb(t,this.poolSize[0],this.padding,this.strides[0]),n=Qb(n,this.poolSize[1],this.padding,this.strides[1]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return uo((()=>(this.invokeCallHook(e,t),this.poolingFunction(zg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class lw extends ow{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return _m(a),xm(r),nw(e,t,n,r,a,"max")}}lw.className="MaxPooling2D",Ui(lw);class uw extends ow{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return _m(a),xm(r),nw(e,t,n,r,a,"avg")}}uw.className="AveragePooling2D",Ui(uw);class cw extends Jg{constructor(e){if(null==e.poolSize&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],null==e.strides)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(3!==e.strides.length)throw new Rp(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Zp(this.poolSize,"poolSize"),Zp(this.strides,"strides"),this.padding=null==e.padding?"valid":e.padding,this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,_m(this.dataFormat),xm(this.padding),this.inputSpec=[new Gg({ndim:5})]}computeOutputShape(e){e=Wg(e);let t="channelsFirst"===this.dataFormat?e[2]:e[1],n="channelsFirst"===this.dataFormat?e[3]:e[2],r="channelsFirst"===this.dataFormat?e[4]:e[3];return t=Qb(t,this.poolSize[0],this.padding,this.strides[0]),n=Qb(n,this.poolSize[1],this.padding,this.strides[1]),r=Qb(r,this.poolSize[2],this.padding,this.strides[2]),"channelsFirst"===this.dataFormat?[e[0],e[1],t,n,r]:[e[0],t,n,r,e[4]]}call(e,t){return uo((()=>(this.invokeCallHook(e,t),this.poolingFunction(zg(e),this.poolSize,this.strides,this.padding,this.dataFormat))))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class hw extends cw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return _m(a),xm(r),rw(e,t,n,r,a,"max")}}hw.className="MaxPooling3D",Ui(hw);class fw extends cw{constructor(e){super(e)}poolingFunction(e,t,n,r,a){return _m(a),xm(r),rw(e,t,n,r,a,"avg")}}fw.className="AveragePooling3D",Ui(fw);class dw extends Jg{constructor(e){super(e),this.inputSpec=[new Gg({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Op}}class pw extends dw{constructor(e){super(e||{})}call(e,t){return uo((()=>{const t=zg(e);return tc(t,1)}))}}pw.className="GlobalAveragePooling1D",Ui(pw);class mw extends dw{constructor(e){super(e||{})}call(e,t){return uo((()=>{const t=zg(e);return Mu(t,1)}))}}mw.className="GlobalMaxPooling1D",Ui(mw);class gw extends Jg{constructor(e){super(e),this.dataFormat=null==e.dataFormat?"channelsLast":e.dataFormat,_m(this.dataFormat),this.inputSpec=[new Gg({ndim:4})]}computeOutputShape(e){return e=e,"channelsLast"===this.dataFormat?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Op}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class yw extends gw{call(e,t){return uo((()=>{const t=zg(e);return"channelsLast"===this.dataFormat?tc(t,[1,2]):tc(t,[2,3])}))}}yw.className="GlobalAveragePooling2D",Ui(yw);class bw extends gw{call(e,t){return uo((()=>{const t=zg(e);return"channelsLast"===this.dataFormat?Mu(t,[1,2]):Mu(t,[2,3])}))}}bw.className="GlobalMaxPooling2D",Ui(bw);class vw extends Jg{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return null!=this.layer&&this.layer.trainable}set trainable(e){null!=this.layer&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.layer&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){const r=fy(t.layer,n);delete t.layer;const a={layer:r};return Object.assign(a,t),new e(a)}}class ww extends vw{constructor(e){super(e),this.supportsMasking=!0}build(e){if((e=Wg(e)).length<3)throw new Rp(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){const t=[(e=Wg(e))[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),r=e[1];return[n[0],r].concat(n.slice(1))}call(e,t){return uo((()=>gv(((e,n)=>[zg(this.layer.call(e,t)),[]]),e=zg(e),[],!1,null,null,!1,!0)[1]))}}ww.className="TimeDistributed",Ui(ww);class _w extends vw{constructor(e){super(e);const t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=fy(n),t.goBackwards=!0!==t.goBackwards;const r={};var a;if(r.className=e.layer.getClassName(),r.config=t,this.backwardLayer=fy(r),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=void 0===e.mergeMode?"concat":e.mergeMode,a=this.mergeMode,Yp(vm,"BidirectionalMergeMode",a),e.weights)throw new Op("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,null!=this.forwardLayer&&(this.forwardLayer.trainable=e),null!=this.backwardLayer&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t,n,r,a=this.forwardLayer.computeOutputShape(e);return Array.isArray(a)&&Array.isArray(a[0])||(a=[a]),a=a,this.returnState?(r=a.slice(1),t=a[0]):t=a[0],t=t,"concat"===this.mergeMode?(t[t.length-1]*=2,n=[t]):n=null==this.mergeMode?[t,t.slice()]:[t],this.returnState?null==this.mergeMode?n.concat(r).concat(r.slice()):[t].concat(r).concat(r.slice()):Lp(n)}apply(e,t){let n=null==t?null:t.initialState,r=null==t?null:t.constants;null==t&&(t={});const a=mv(e,n,r,this.numConstants);if(e=a.inputs,n=a.initialState,r=a.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(null==n||0===n.length)&&null==r)return super.apply(e,t);const s=[],i=[];if(null!=n){const e=n.length;if(e%2>0)throw new Rp("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);const r=n.map((e=>new Gg({shape:e.shape})));this.forwardLayer.stateSpec=r.slice(0,e/2),this.backwardLayer.stateSpec=r.slice(e/2),i.push(...r)}if(null!=r)throw new Op("Support for constants in Bidirectional layers is not implemented yet.");const o=s[0]instanceof Xg;for(const e of s)if(e instanceof Xg!==o)throw new Rp("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){const n=[e].concat(s),r=this.inputSpec.concat(i),a=this.inputSpec;this.inputSpec=r;const o=super.apply(n,t);return this.inputSpec=a,o}return super.apply(e,t)}call(e,t){return uo((()=>{const n=t.initialState;let r,a,s,i;if(null==n)r=this.forwardLayer.call(e,t),a=this.backwardLayer.call(e,t);else{const s=n.slice(0,n.length/2),i=n.slice(n.length/2);r=this.forwardLayer.call(e,Object.assign(t,{initialState:s})),a=this.backwardLayer.call(e,Object.assign(t,{initialState:i}))}return this.returnState&&(Array.isArray(r)&&(s=r.slice(1).concat(a.slice(1))),r=r[0],a=a[0]),this.returnSequences&&(a=Mc(a,1)),"concat"===this.mergeMode?i=zm([r,a]):"sum"===this.mergeMode?i=ko(r,a):"ave"===this.mergeMode?i=So(.5,ko(r,a)):"mul"===this.mergeMode?i=So(r,a):null==this.mergeMode&&(i=[r,a]),this.returnState?null==this.mergeMode?i.concat(s):[i].concat(s):i}))}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Cm(this.forwardLayer.name,(()=>{this.forwardLayer.build(e)})),Cm(this.backwardLayer.name,(()=>{this.backwardLayer.build(e)})),this.built=!0}computeMask(e,t){let n;if(Array.isArray(t)&&(t=t[0]),n=this.returnSequences?null==this.mergeMode?[t,t]:t:null==this.mergeMode?[null,null]:null,this.returnState){const e=this.forwardLayer.states.map((e=>null));return Array.isArray(n)?n.concat(e).concat(e):[n].concat(e).concat(e)}return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),null!=this.forwardLayer&&this.forwardLayer.setFastWeightInitDuringBuild(e),null!=this.backwardLayer&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const n=fy(t.layer);if(delete t.layer,null!=t.numConstants)throw new Op("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const r=t;return r.layer=n,new e(r)}}function xw(e){return new Qg(e)}function kw(e){return new qb(e)}function Ew(e){return new Gb(e)}function Cw(e){return new Xb(e)}function Sw(e){return new Kb(e)}function Nw(e){return new Jb(e)}function Iw(e){return new Yb(e)}function Aw(e){return new hv(e)}function Dw(e){return new iv(e)}function Tw(e){return new lv(e)}function Fw(e){return new ov(e)}function Rw(e){return new cv(e)}function Ow(e){return new fv(e)}function Bw(e){return new dv(e)}function Mw(e){return new pv(e)}function $w(e){return new Ov(e)}function Pw(e){return new Fv(e)}function Lw(e){return new Dv(e)}function zw(e){return new Tv(e)}function Ww(e){return new Rv(e)}function Uw(e){return new Bv(e)}function Vw(e){return new Mv(e)}function jw(e){return new $v(e)}function Hw(e){return new Lv(e)}function Gw(e){return new Wv(e)}function Xw(e){return new Vv(e)}function Kw(e){return new Gv(e)}function qw(e){return new jv(e)}function Yw(e){return new Hv(e)}function Jw(e){return new Uv(e)}function Zw(e){return new Kv(e)}function Qw(e){return new Qv(e)}function e_(e){return new ew(e)}function t_(e){return new tw(e)}function n_(e){return new iw(e)}function r_(e){return n_(e)}function a_(e){return n_(e)}function s_(e){return new uw(e)}function i_(e){return s_(e)}function o_(e){return s_(e)}function l_(e){return new fw(e)}function u_(e){return l_(e)}function c_(e){return l_(e)}function h_(e){return new pw(e)}function f_(e){return new yw(e)}function d_(e){return new mw(e)}function p_(e){return new bw(e)}function m_(e){return new sw(e)}function g_(e){return new lw(e)}function y_(e){return new hw(e)}function b_(e){return new xv(e)}function v_(e){return new _v(e)}function w_(e){return new Ev(e)}function __(e){return new kv(e)}function x_(e){return new wv(e)}function k_(e){return new vv(e)}function E_(e){return new Av(e)}function C_(e){return new Iv(e)}function S_(e){return new yv(e)}function N_(e){return new Cv(e)}function I_(e){return new _w(e)}function A_(e){return new ww(e)}_w.className="Bidirectional",Ui(_w);const D_=d_,T_=p_,F_=m_,R_=g_;function O_(e){return new qv(e)}function B_(e){return new Yv(e)}function M_(e){return new Jv(e)}function $_(e){return new Pv(e)}function P_(e,t){return ky(e,t)}function L_(e,t){return Ny(e,t)}function z_(e,t){return Iy(e,t)}function W_(e,t){return Ey(e,t)}function U_(e,t){return Ay(e,t)}function V_(e,t){return Sy(e,t)}function j_(e,t){return function(e,t){return uo((()=>{const n=Cy(e,t),r=function(e,t){return uo((()=>Ku(e.equal(1),t.equal(0)).sum().cast("float32")))}(e,t),a=n.add(r);return lu(wu(a,0),n.div(a),0).cast("float32")}))}(e,t)}function H_(e,t){return wy(e,t)}function G_(e,t){return my(e,t)}function X_(e,t){return gy(e,t)}function K_(e,t){return gy(e,t)}function q_(e,t){return gy(e,t)}function Y_(e,t){return py(e,t)}function J_(e,t){return py(e,t)}function Z_(e,t){return py(e,t)}function Q_(e){return new Wb(e)}function ex(e){return Lb(t=e),new Wb({l1:null!=t?t.l1:null,l2:0});var t}function tx(e){return Lb(t=e),new Wb({l2:null!=t?t.l2:null,l1:0});var t}class nx extends ay{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof db))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function rx(e,t){return et}class sx extends nx{constructor(e){if(super(),null==e&&(e={}),e.restoreBestWeights)throw new Op("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,-1===["auto","min","max"].indexOf(this.mode)&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),"min"===this.mode?this.monitorFunc=rx:"max"===this.mode||-1!==this.monitor.indexOf("acc")?this.monitorFunc=ax:this.monitorFunc=rx,this.monitorFunc===rx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,null!=this.baseline?this.best=this.baseline:this.best=this.monitorFunc===rx?1/0:-1/0}async onEpochEnd(e,t){await ty(t);const n=this.getMonitorValue(t);null!=n&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){null==e&&(e={});const t=e[this.monitor];return null==t&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}const ix={earlyStopping:function(e){return new sx(e)}};var ox,lx;!function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"}(ox||(ox={})),function(e){let t;!function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"}(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))}(lx||(lx={}));const ux={};function cx(e,t){const n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};ux[e]=n}function hx(e){return ux[e]}function fx(e){delete ux[e]}function dx(e,t,n,r,a){const s=t.inputParams[e];if(s&&void 0!==s.inputIndexStart){const e=s.inputIndexStart,i=0===s.inputIndexEnd?void 0:void 0===s.inputIndexEnd?e+1:s.inputIndexEnd;if("tensor"===s.type)return px(t.inputNames[s.inputIndexStart],n,r,a);if("tensors"===s.type)return t.inputNames.slice(e,i).map((e=>px(e,n,r,a)));const o=px(t.inputNames.slice(e)[0],n,r,a),l=o.dataSync();return"number"===s.type?l[0]:Te(o.shape,l)}const i=t.attrParams[e];return i&&i.value}function px(e,t,n,r){const[a,s]=yx(e);if(null!=r){const e=r.getHashTableHandleByName(a);if(null!=e)return e}const i=n.currentContextIds.find((e=>!!t[gx(a,e)]));return void 0!==i?t[gx(a,i)][s]:void 0}function mx(e,t){const[n,r]=yx(e);return[gx(n,t&&t.currentContextId),r]}function gx(e,t){return t?`${e}-${t}`:e}function yx(e){const t=e.split(":");return 1===t.length?[e,0]:[t[0],Number(t[t.length-1])]}function bx(e,t,n){let r=dx("pad",e,t,n);if("explicit"===r){r=dx("explicitPaddings",e,t,n);const a=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)a[e][0]=r[2*e],a[e][1]=r[2*e+1];return a}return r}function vx(e){return e.kept?e:Hs(e)}const wx=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],_x=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],xx=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],kx=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],Ex=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],Cx=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Sx=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],Nx=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],Ix=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],Ax=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],Dx=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Tx=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],Fx=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],Rx=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],Ox=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],Bx=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],Mx=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class $x{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[E,C,S,N,I,A,D,O,R,T,B,M,$,P,L,z,F].map((e=>e.json)));this.opMappers=e.reduce(((e,t)=>(e[t.tfOpName]=t,e)),{})}transformGraph(e,t={}){const n=e.node,r=[],a=[],s=[],i=n.reduce(((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?r.push(e[t.name]):"Const"===t.op?a.push(e[t.name]):null!=t.input&&0!==t.input.length||s.push(e[t.name]),e)),{});let o=[];const l=[];let u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));const h=Object.keys(i);h.forEach((e=>{const t=i[e];t.inputNames.forEach((e=>{const[n]=mx(e);t.inputs.push(i[n]),i[n].children.push(t)}))})),0===Object.keys(c).length?h.forEach((e=>{const t=i[e];0===t.children.length&&l.push(t)})):Object.keys(c).forEach((e=>{const[t]=mx(e),n=i[t];null!=n&&(n.signatureKey=c[e],l.push(n))})),Object.keys(u).length>0?Object.keys(u).forEach((e=>{const[t]=mx(e),n=i[t];n&&(n.signatureKey=u[e],o.push(n))})):o=r;let f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce(((e,t)=>(e[t.signature.name]=this.mapFunction(t),e)),{}));const d={nodes:i,inputs:o,outputs:l,weights:a,placeholders:r,signature:t,functions:f};return s.length>0&&(d.initNodes=s),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce(((t,n)=>(t[e[n].name]=n,t)),{})}mapNode(e){const t=hx(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});const n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map((e=>e.startsWith("^")?e.substr(1):e)),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return null!=t.inputs&&(n.inputParams=t.inputs.reduce(((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e)),{})),null!=t.attrs&&(n.attrParams=t.attrs.reduce(((t,n)=>{const r=n.type;let a;switch(n.type){case"string":a=Lx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Lx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"string[]":a=qx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=qx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number":a=Wx(e.attr,n.tfName,n.defaultValue||0),void 0===a&&n.tfDeprecatedName&&(a=Wx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"number[]":a=Kx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Kx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool":a=zx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=zx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"bool[]":a=Jx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Jx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape":a=Xx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Xx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"shape[]":a=Yx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Yx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype":a=jx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=jx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"dtype[]":a=Hx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Hx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"func":a=Vx(e.attr,n.tfName,n.defaultValue),void 0===a&&n.tfDeprecatedName&&(a=Vx(e.attr,n.tfDeprecatedName,n.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${n.type} for op: ${e.op}`)}return t[n.name]={value:a,type:r},t}),{})),n}mapFunction(e){const t=e.nodeDef,n=[];let r={};null!=t&&(r=t.reduce(((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&n.push(e[t.name]),e)),{}));const a=[],s=[];e.signature.inputArg.forEach((e=>{const[t]=mx(e.name),n={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Ux(e.type),type:"dtype"}},children:[]};n.signatureKey=e.name,a.push(n),r[t]=n})),Object.keys(r).forEach((e=>{const t=r[e];t.inputNames.forEach((e=>{const[n]=mx(e);t.inputs.push(r[n]),r[n].children.push(t)}))}));const i=e.ret;e.signature.outputArg.forEach((e=>{const[t,n]=mx(i[e.name]),a=r[t];null!=a&&(a.defaultOutput=n,s.push(a))}));const o=this.mapArgsToSignature(e);return{nodes:r,inputs:a,outputs:s,weights:n,placeholders:[],signature:o}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce(((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e)),{}),outputs:e.signature.outputArg.reduce(((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t)),{})}}mapArgToTensorInfo(e,t){let n=e.name;return null!=t&&(n=t[n]),{name:n,dtype:e.type}}}function Px(e,t){const n=Array.isArray(e)?String.fromCharCode.apply(null,e):function(e){const t=ze().global;if(void 0!==t.atob)return t.atob(e);if("undefined"!=typeof Buffer)return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}(e);return t?n:n.toLowerCase()}function Lx(e,t,n,r=!1){const a=e[t];return null!=a?Px(a.s,r):n}function zx(e,t,n){const r=e[t];return r?r.b:n}function Wx(e,t,n){const r=e[t]||{},a=null!=r.i?r.i:null!=r.f?r.f:n;return"number"==typeof a?a:parseInt(a,10)}function Ux(e){switch("string"==typeof e&&(e=ox[e]),e){case ox.DT_FLOAT:return"float32";case ox.DT_INT32:case ox.DT_INT64:case ox.DT_INT8:case ox.DT_UINT8:return"int32";case ox.DT_BOOL:return"bool";case ox.DT_DOUBLE:return"float32";case ox.DT_STRING:return"string";default:return null}}function Vx(e,t,n){const r=e[t];return r&&r.func?r.func.name:n}function jx(e,t,n){const r=e[t];return r&&r.type?Ux(r.type):n}function Hx(e,t,n){const r=e[t];return r&&r.list&&r.list.type?r.list.type.map((e=>Ux(e))):n}function Gx(e){if(!e.unknownRank)return null!=e.dim?e.dim.map((e=>"number"==typeof e.size?e.size:parseInt(e.size,10))):[]}function Xx(e,t,n){const r=e[t];return r&&r.shape?Gx(r.shape):n}function Kx(e,t,n){const r=e[t];return r?((r.list.f&&r.list.f.length?r.list.f:r.list.i)||[]).map((e=>"number"==typeof e?e:parseInt(e,10))):n}function qx(e,t,n,r=!1){const a=e[t];return a&&a.list&&a.list.s?a.list.s.map((e=>Px(e,r))):n}function Yx(e,t,n){const r=e[t];return r&&r.list&&r.list.shape?r.list.shape.map((e=>Gx(e))):n}function Jx(e,t,n){const r=e[t];return r&&r.list&&r.list.b?r.list.b:n}class Zx{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map((e=>this.getInput(e))),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce(((e,t)=>(e[t]=this.getAttr(t),e)),{}))}getInput(e){return px(e,this.tensorMap,this.context)}getAttr(e,t){const n=this.node.rawAttrs[e];if(null!=n.tensor)return px(e,this.tensorMap,this.context);if(null!=n.i||null!=n.f)return Wx(this.node.rawAttrs,e,t);if(null!=n.s)return Lx(this.node.rawAttrs,e,t);if(null!=n.b)return zx(this.node.rawAttrs,e,t);if(null!=n.shape)return Xx(this.node.rawAttrs,e,t);if(null!=n.type)return jx(this.node.rawAttrs,e,t);if(null!=n.list){if(null!=n.list.i||null!=n.list.f)return Kx(this.node.rawAttrs,e,t);if(null!=n.list.s)return qx(this.node.rawAttrs,e,t);if(null!=n.list.shape)return Yx(this.node.rawAttrs,e,t);if(null!=n.list.b)return Jx(this.node.rawAttrs,e,t);if(null!=n.list.type)return Hx(this.node.rawAttrs,e,t)}return t}}function Qx(e,t,n=""){if("number"!=typeof e&&"number"!=typeof t){Q(e.length===t.length,(()=>n+` Shapes ${e} and ${t} must match`));for(let r=0;rn+` Shapes ${e} and ${t} must match`))}}}function ek(e){return"number"!=typeof e&&!e.some((e=>e<0))}function tk(e,t,n){let r=nk(e,n);const a=!ek(r);if(a&&0===t.length)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${r}`);if(a&&t.forEach((e=>{r=nk(e.shape,r)})),!ek(r))throw new Error(`Non-fully-defined elementShape: ${r}`);return r}function nk(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);const n=[];for(let r=0;r=0&&s>=0&&a!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[r]=a>=0?a:s}return n}class rk{constructor(e,t,n,r,a,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=r,this.identicalElementShapes=a,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=$o(0),ho(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.tensor.id)||t.tensor.dispose()})),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map((e=>this.read(e)))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e},\n because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(0!==this.size()||null!=this.elementShape&&0!==this.elementShape.length||(this.elementShape=t.shape),Qx(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,ho(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach(((e,n)=>this.write(e,t[n])))}gather(e,t){if(t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,wh(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0;const r=e.map((e=>(n+=e,n)));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const a=0===n?0:t.size/n,s=[];uo((()=>{t=Cl(t,[1,n,a]);for(let n=0;n{if(n!==e.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${e.dtype}`);Qx(t,e.shape,"TensorList shape mismatch: "),ho(e)})),this.idTensor=$o(0),this.maxNumElements=r,ho(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ak([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach((t=>{null!=e&&e.has(t.id)||t.dispose()})),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==n&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Qx(e,this.elementShape,"TensorList shape mismatch: ");const r=tk(this.elementShape,this.tensors,e);return uo((()=>{const e=this.tensors.map((e=>Cl(e,r)));return oh(e,0)}))}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw new Error("Trying to pop from an empty list.");const n=tk(this.elementShape,this.tensors,e),r=this.tensors.pop();return Qx(r.shape,e,"TensorList shape mismatch: "),Cl(r,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Qx(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");ho(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw new Error(`element at index ${e} is null.`);Qx(this.tensors[e].shape,t,"TensorList shape mismatch: ");const r=tk(this.elementShape,this.tensors,t);return Cl(this.tensors[e],r)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Qx(this.elementShape,t.shape,"TensorList shape mismatch: "),ho(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);Qx(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());const r=tk(this.elementShape,this.tensors,n);return 0===e.length?Ja([],[0].concat(r)):uo((()=>{const t=e.map((e=>Cl(this.tensors[e],r)));return oh(t,0)}))}concat(e,t){if(e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Qx(this.elementShape,t,"TensorList shape mismatch: ");const n=tk(this.elementShape,this.tensors,t);return 0===this.size()?Ja([],[0].concat(n)):uo((()=>{const e=this.tensors.map((e=>Cl(e,n)));return Il(e,0)}))}}function sk(e,t,n){const[r,a]=dx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o="fusedbatchnorm"===r,l=dx("numArgs",e,t,n);if(s){if(i&&2!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==l)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const u=dx("strides",e,t,n),c=bx(e,t,n),h=dx("dataFormat",e,t,n).toUpperCase(),f=dx("dilations",e,t,n),[d,p]=dx("args",e,t,n);return{stride:u,pad:c,dataFormat:h,dilations:f,biasArg:d,preluArg:p,activationFunc:a,leakyreluAlpha:dx("leakyreluAlpha",e,t,n)}}function ik(e,t,n){return{boxes:dx("boxes",e,t,n),scores:dx("scores",e,t,n),maxOutputSize:dx("maxOutputSize",e,t,n),iouThreshold:dx("iouThreshold",e,t,n),scoreThreshold:dx("scoreThreshold",e,t,n),softNmsSigma:dx("softNmsSigma",e,t,n)}}class ok{constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=$o(0),this.tensorMap=new Map,ho(this.handle)}get id(){return this.handle.id}clearAndClose(){this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return $o(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);const n=await e.data();return this.tensorMap.forEach((e=>e.dispose())),this.tensorMap.clear(),uo((()=>{const e=wh(t),r=n.length,a=e.length;Q(r===a,(()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${a} elements.`));for(let t=0;t{const e=[];for(let r=0;r{switch(e.category){case"arithmetic":return uo((()=>((e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[ko(dx("a",e,t,n),dx("b",e,t,n))];case"AddN":return[nl(dx("tensors",e,t,n))];case"FloorMod":case"Mod":return[sc(dx("a",e,t,n),dx("b",e,t,n))];case"Mul":return[So(dx("a",e,t,n),dx("b",e,t,n))];case"RealDiv":case"Div":return[Co(dx("a",e,t,n),dx("b",e,t,n))];case"DivNoNan":return[uu(dx("a",e,t,n),dx("b",e,t,n))];case"FloorDiv":return[Eo(dx("a",e,t,n),dx("b",e,t,n))];case"Sub":return[Vo(dx("a",e,t,n),dx("b",e,t,n))];case"Minimum":return[rc(dx("a",e,t,n),dx("b",e,t,n))];case"Maximum":return[qo(dx("a",e,t,n),dx("b",e,t,n))];case"Pow":return[Uo(dx("a",e,t,n),dx("b",e,t,n))];case"SquaredDifference":return[sh(dx("a",e,t,n),dx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"basic_math":return uo((()=>((e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Ho(dx("x",e,t,n))];case"Acos":return[el(dx("x",e,t,n))];case"Acosh":return[tl(dx("x",e,t,n))];case"Asin":return[ol(dx("x",e,t,n))];case"Asinh":return[ll(dx("x",e,t,n))];case"Atan":return[ul(dx("x",e,t,n))];case"Atan2":return[cl(dx("x",e,t,n),dx("y",e,t,n))];case"Atanh":return[hl(dx("x",e,t,n))];case"Ceil":return[zl(dx("x",e,t,n))];case"Complex":return[qa(dx("real",e,t,n),dx("imag",e,t,n))];case"Cos":return[Ql(dx("x",e,t,n))];case"Cosh":return[eu(dx("x",e,t,n))];case"Elu":return[hu(dx("x",e,t,n))];case"Erf":return[fu(dx("x",e,t,n))];case"Exp":return[du(dx("x",e,t,n))];case"Expm1":return[mu(dx("x",e,t,n))];case"Floor":return[bu(dx("x",e,t,n))];case"Log":return[Tu(dx("x",e,t,n))];case"Log1p":return[Fu(dx("x",e,t,n))];case"Imag":return[xu(dx("x",e,t,n))];case"Neg":return[Ru(dx("x",e,t,n))];case"Reciprocal":return[Rc(dx("x",e,t,n))];case"Real":return[Fc(dx("x",e,t,n))];case"Relu":return[Oc(dx("x",e,t,n))];case"Round":return[Wc(dx("x",e,t,n))];case"Selu":return[Vc(dx("x",e,t,n))];case"Sigmoid":return[Al(dx("x",e,t,n))];case"Sin":return[Xc(dx("x",e,t,n))];case"Sign":return[Gc(dx("x",e,t,n))];case"Sinh":return[Kc(dx("x",e,t,n))];case"Softplus":return[Ou(dx("x",e,t,n))];case"Sqrt":return[No(dx("x",e,t,n))];case"Square":return[Io(dx("x",e,t,n))];case"Tanh":return[Tl(dx("x",e,t,n))];case"Tan":return[ch(dx("x",e,t,n))];case"ClipByValue":return[Wl(dx("x",e,t,n),dx("clipValueMin",e,t,n),dx("clipValueMax",e,t,n))];case"Relu6":return[Bc(dx("x",e,t,n))];case"Rsqrt":return[Uc(px(e.inputNames[0],t,n))];case"Prod":return[xc(dx("x",e,t,n),dx("axes",e,t,n))];case"LeakyRelu":return[Su(dx("x",e,t,n),dx("alpha",e,t,n))];case"Prelu":return[_c(dx("x",e,t,n),dx("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"control":return(async(e,t,n)=>{switch(e.op){case"If":case"StatelessIf":{const r=dx("thenBranch",e,t,n),a=dx("elseBranch",e,t,n),s=dx("cond",e,t,n),i=dx("args",e,t,n);return(await s.data())[0]?n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{const r=dx("body",e,t,n),a=dx("cond",e,t,n),s=dx("args",e,t,n),i=await n.functionMap[a].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map((e=>e.id));let l=await i[0].data();i.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||e.dispose()}));let u=s;for(;l[0];){const e=u;u=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);const t=u.map((e=>e.id));e.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}));const s=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await s[0].data(),s.forEach((e=>{e.kept||-1!==o.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()}))}return u}case"LoopCond":return[vx(dx("pred",e,t,n))];case"Switch":{const r=dx("pred",e,t,n);let a=dx("data",e,t,n);return a.kept||(a=vx(a)),(await r.data())[0]?[void 0,a]:[a,void 0]}case"Merge":{const r=e.inputNames.find((e=>void 0!==px(e,t,n)));return r?[vx(px(r,t,n))]:void 0}case"Enter":{const r=dx("frameName",e,t,n),a=dx("tensor",e,t,n);return n.enterFrame(r),[vx(a)]}case"Exit":{const r=dx("tensor",e,t,n);return n.exitFrame(),[vx(r)]}case"NextIteration":{const r=dx("tensor",e,t,n);return n.nextIteration(),[vx(r)]}case"TensorArrayV3":{const r=dx("size",e,t,n),a=dx("dtype",e,t,n),s=dx("elementShape",e,t,n),i=dx("dynamicSize",e,t,n),o=dx("clearAfterRead",e,t,n),l=dx("identicalElementShapes",e,t,n),u=dx("name",e,t,n),c=new rk(u,a,r,s,l,i,o);return n.addTensorArray(c),[c.idTensor,$o(1)]}case"TensorArrayWriteV3":{const r=dx("tensorArrayId",e,t,n),a=dx("index",e,t,n),s=dx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.write(a,s),[i.idTensor]}case"TensorArrayReadV3":{const r=dx("tensorArrayId",e,t,n),a=dx("index",e,t,n);return[n.getTensorArray(r.id).read(a)]}case"TensorArrayGatherV3":{const r=dx("tensorArrayId",e,t,n),a=dx("indices",e,t,n),s=dx("dtype",e,t,n);return[n.getTensorArray(r.id).gather(a,s)]}case"TensorArrayScatterV3":{const r=dx("tensorArrayId",e,t,n),a=dx("indices",e,t,n),s=dx("tensor",e,t,n),i=n.getTensorArray(r.id);return i.scatter(a,s),[i.idTensor]}case"TensorArrayConcatV3":{const r=dx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id),s=dx("dtype",e,t,n);return[a.concat(s)]}case"TensorArraySplitV3":{const r=dx("tensorArrayId",e,t,n),a=dx("tensor",e,t,n),s=dx("lengths",e,t,n),i=n.getTensorArray(r.id);return i.split(s,a),[i.idTensor]}case"TensorArraySizeV3":{const r=dx("tensorArrayId",e,t,n);return[$o(n.getTensorArray(r.id).size(),"int32")]}case"TensorArrayCloseV3":{const r=dx("tensorArrayId",e,t,n),a=n.getTensorArray(r.id);return a.clearAndClose(),[a.idTensor]}case"TensorListSetItem":{const r=dx("tensorListId",e,t,n),a=dx("index",e,t,n),s=dx("tensor",e,t,n),i=n.getTensorList(r.id);return i.setItem(a,s),[i.idTensor]}case"TensorListGetItem":{const r=dx("tensorListId",e,t,n),a=dx("index",e,t,n),s=dx("elementShape",e,t,n),i=dx("elementDType",e,t,n);return[n.getTensorList(r.id).getItem(a,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{const r=dx("indices",e,t,n),a=function(e,t,n,r){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const a=Math.max(...t);if(null!=r&&-1!==r&&a>=r)throw new Error(`Max index must be < array size (${a} vs. ${r})`);const s=new ak([],n,e.dtype,r),i=wh(e,0);return t.forEach(((e,t)=>{s.setItem(e,i[t])})),s}(dx("tensor",e,t,n),r,dx("elementShape",e,t,n),dx("numElements",e,t,n));return n.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{const r=dx("elementShape",e,t,n),a=dx("elementDType",e,t,n);let s;s="TensorListReserve"===e.op?"numElements":"maxNumElements";const i=function(e,t,n){return new ak([],e,t,n)}(r,a,dx(s,e,t,n));return n.addTensorList(i),[i.idTensor]}case"TensorListGather":{const r=dx("tensorListId",e,t,n),a=dx("indices",e,t,n),s=dx("elementShape",e,t,n),i=dx("elementDType",e,t,n);return[n.getTensorList(r.id).gather(a,i,s)]}case"TensorListStack":{const r=dx("tensorListId",e,t,n),a=dx("elementShape",e,t,n),s=dx("elementDType",e,t,n),i=dx("numElements",e,t,n);return[n.getTensorList(r.id).stack(a,s,i)]}case"TensorListFromTensor":{const r=function(e,t,n){const r=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);Qx(e.shape.slice(1),t,"TensorList shape mismatch: ");const a=wh(e);return new ak(a,t,r)}(dx("tensor",e,t,n),dx("elementShape",e,t,n),dx("elementDType",e,t,n));return n.addTensorList(r),[r.idTensor]}case"TensorListConcat":{const r=dx("tensorListId",e,t,n),a=n.getTensorList(r.id),s=dx("dtype",e,t,n),i=dx("elementShape",e,t,n);return[a.concat(s,i)]}case"TensorListPushBack":{const r=dx("tensorListId",e,t,n),a=dx("tensor",e,t,n),s=n.getTensorList(r.id);return s.pushBack(a),[s.idTensor]}case"TensorListPopBack":{const r=dx("tensorListId",e,t,n),a=dx("elementShape",e,t,n),s=dx("elementDType",e,t,n);return[n.getTensorList(r.id).popBack(a,s)]}case"TensorListSplit":{const r=dx("tensor",e,t,n),a=dx("elementShape",e,t,n),s=function(e,t,n){let r=0;const a=t.map((e=>(r+=e,r)));if(r!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${r}, and tensor's shape is: ${e.shape}`);const s=nk(e.shape.slice(1),n),i=0===r?0:e.size/r,o=uo((()=>{const n=[];e=Cl(e,[1,r,i]);for(let r=0;r((e,t,n)=>{switch(e.op){case"Conv1D":{const r=dx("stride",e,t,n),a=dx("pad",e,t,n),s=dx("dataFormat",e,t,n).toUpperCase(),i=dx("dilation",e,t,n);return[Xl(dx("x",e,t,n),dx("filter",e,t,n),r,a,s,i)]}case"Conv2D":{const r=dx("strides",e,t,n),a=bx(e,t,n),s=dx("dataFormat",e,t,n).toUpperCase(),i=dx("dilations",e,t,n);return[Gl(dx("x",e,t,n),dx("filter",e,t,n),[r[1],r[2]],a,s,[i[1],i[2]])]}case"_FusedConv2D":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=sk(e,t,n);return[zh({x:dx("x",e,t,n),filter:dx("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{const{stride:r,pad:a,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:u,leakyreluAlpha:c}=sk(e,t,n);return[Vh({x:dx("x",e,t,n),filter:dx("filter",e,t,n),strides:[r[1],r[2]],pad:a,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const r=dx("outputShape",e,t,n),a=dx("strides",e,t,n),s=bx(e,t,n);return[ql(dx("x",e,t,n),dx("filter",e,t,n),r,[a[1],a[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const r=dx("strides",e,t,n),a=bx(e,t,n),s=dx("dilations",e,t,n),i=dx("dataFormat",e,t,n).toUpperCase();return[au(dx("input",e,t,n),dx("filter",e,t,n),[r[1],r[2]],a,i,[s[1],s[2]])]}case"Conv3D":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("dataFormat",e,t,n).toUpperCase(),i=dx("dilations",e,t,n);return[Yl(dx("x",e,t,n),dx("filter",e,t,n),[r[1],r[2],r[3]],a,s,[i[1],i[2],i[3]])]}case"AvgPool":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("kernelSize",e,t,n);return[Sl(dx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPool":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("kernelSize",e,t,n);return[Zu(dx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a)]}case"MaxPoolWithArgmax":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("kernelSize",e,t,n),i=dx("includeBatchInIndex",e,t,n),{result:o,indexes:l}=ec(dx("x",e,t,n),[s[1],s[2]],[r[1],r[2]],a,i);return[o,l]}case"AvgPool3D":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("kernelSize",e,t,n);return[Nl(dx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"MaxPool3D":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("kernelSize",e,t,n);return[Qu(dx("x",e,t,n),[s[1],s[2],s[3]],[r[1],r[2],r[3]],a)]}case"Dilation2D":{const r=dx("strides",e,t,n),a=dx("pad",e,t,n),s=dx("dilations",e,t,n),i=r[1],o=r[2],l=s[1],u=s[2];return[iu(dx("x",e,t,n),dx("filter",e,t,n),[i,o],a,[l,u],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"creation":return uo((()=>((e,t,n)=>{switch(e.op){case"Fill":{const r=dx("shape",e,t,n),a=dx("dtype",e,t,n);return[zo(r,dx("value",e,t,n),a)]}case"LinSpace":return[Au(dx("start",e,t,n),dx("stop",e,t,n),dx("num",e,t,n))];case"Multinomial":{const r=dx("logits",e,t,n),a=dx("numSamples",e,t,n),s=dx("seed",e,t,n);return[lc(r,a,s)]}case"OneHot":{const r=dx("indices",e,t,n),a=dx("depth",e,t,n),s=dx("onValue",e,t,n),i=dx("offValue",e,t,n);return[hi(r,a,s,i)]}case"Ones":return[hc(dx("shape",e,t,n),dx("dtype",e,t,n))];case"OnesLike":return[fc(dx("x",e,t,n))];case"RandomUniform":return[Dc(dx("shape",e,t,n),dx("minval",e,t,n),dx("maxval",e,t,n),dx("dtype",e,t,n))];case"Range":return[Tc(dx("start",e,t,n),dx("stop",e,t,n),dx("step",e,t,n),dx("dtype",e,t,n))];case"TruncatedNormal":{const r=dx("shape",e,t,n),a=dx("mean",e,t,n),s=dx("stdDev",e,t,n),i=dx("seed",e,t,n);return[yh(r,a,s,dx("dtype",e,t,n),i)]}case"Zeros":return[cc(dx("shape",e,t,n),dx("dtype",e,t,n))];case"ZerosLike":return[Ao(dx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"dynamic":return(async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=ik(e,t,n),u=await Tf.nonMaxSuppressionWithScoreAsync(r,a,s,i,o,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=ik(e,t,n),l=dx("padToMaxOutputSize",e,t,n),u=await Tf.nonMaxSuppressionPaddedAsync(r,a,s,i,o,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:r,scores:a,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=ik(e,t,n);return[await Tf.nonMaxSuppressionAsync(r,a,s,i,o)]}case"Where":{const r=js(dx("condition",e,t,n),"bool"),a=[await kh(r)];return r.dispose(),a}case"ListDiff":return Hc(dx("x",e,t,n),dx("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n);case"evaluation":return uo((()=>((e,t,n)=>{switch(e.op){case"TopKV2":{const r=dx("x",e,t,n),a=dx("k",e,t,n),s=dx("sorted",e,t,n),i=gh(r,a,s);return[i.values,i.indices]}case"Unique":{const r=dx("x",e,t,n),a=bh(r);return[a.values,a.indices]}case"UniqueV2":{const r=dx("x",e,t,n),a=dx("axis",e,t,n),s=bh(r,a);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"image":return uo((()=>((e,t,n)=>{switch(e.op){case"ResizeBilinear":{const r=dx("images",e,t,n),a=dx("size",e,t,n),s=dx("alignCorners",e,t,n),i=dx("halfPixelCenters",e,t,n);return[Tf.resizeBilinear(r,[a[0],a[1]],s,i)]}case"ResizeNearestNeighbor":{const r=dx("images",e,t,n),a=dx("size",e,t,n),s=dx("alignCorners",e,t,n),i=dx("halfPixelCenters",e,t,n);return[Tf.resizeNearestNeighbor(r,[a[0],a[1]],s,i)]}case"CropAndResize":{const r=dx("image",e,t,n),a=dx("boxes",e,t,n),s=dx("boxInd",e,t,n),i=dx("cropSize",e,t,n),o=dx("method",e,t,n),l=dx("extrapolationValue",e,t,n);return[Tf.cropAndResize(r,a,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"graph":return uo((()=>((e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const r=dx("default",e,t,n);return[px(e.name,t,n)||r];case"Placeholder":return[px(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":return[vx(dx("x",e,t,n))];case"IdentityN":return dx("x",e,t,n).map((e=>vx(e)));case"Snapshot":return[vx(dx("x",e,t,n))];case"Shape":return[hh(dx("x",e,t,n).shape,"int32")];case"ShapeN":return dx("x",e,t,n).map((e=>hh(e.shape)));case"Size":return[$o(dx("x",e,t,n).size,"int32")];case"Rank":return[$o(dx("x",e,t,n).rank,"int32")];case"NoOp":return[$o(1)];case"Print":const a=dx("x",e,t,n),s=dx("data",e,t,n),i=dx("message",e,t,n),o=dx("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let e=0;e((e,t,n)=>{switch(e.op){case"Equal":return[ou(dx("a",e,t,n),dx("b",e,t,n))];case"NotEqual":return[uc(dx("a",e,t,n),dx("b",e,t,n))];case"Greater":return[wu(dx("a",e,t,n),dx("b",e,t,n))];case"GreaterEqual":return[_u(dx("a",e,t,n),dx("b",e,t,n))];case"Less":return[Nu(dx("a",e,t,n),dx("b",e,t,n))];case"LessEqual":return[Iu(dx("a",e,t,n),dx("b",e,t,n))];case"LogicalAnd":return[Ku(dx("a",e,t,n),dx("b",e,t,n))];case"LogicalNot":return[qu(dx("a",e,t,n))];case"LogicalOr":return[Yu(dx("a",e,t,n),dx("b",e,t,n))];case"Select":case"SelectV2":return[lu(dx("condition",e,t,n),dx("a",e,t,n),dx("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"matrices":return uo((()=>((e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ci(dx("a",e,t,n),dx("b",e,t,n),dx("transposeA",e,t,n),dx("transposeB",e,t,n))];case"Transpose":return[fi(dx("x",e,t,n),dx("perm",e,t,n))];case"_FusedMatMul":const[r,a]=dx("fusedOps",e,t,n),s="biasadd"===r,i="prelu"===a,o=dx("numArgs",e,t,n),l=dx("leakyreluAlpha",e,t,n);if(s){if(i&&2!==o)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==o)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[u,c]=dx("args",e,t,n);return[jh({a:dx("a",e,t,n),b:dx("b",e,t,n),transposeA:dx("transposeA",e,t,n),transposeB:dx("transposeB",e,t,n),bias:u,activation:a,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"normalization":return uo((()=>((e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[Ol(dx("x",e,t,n),dx("mean",e,t,n),dx("variance",e,t,n),dx("offset",e,t,n),dx("scale",e,t,n),dx("epsilon",e,t,n))];case"LRN":return[Du(dx("x",e,t,n),dx("radius",e,t,n),dx("bias",e,t,n),dx("alpha",e,t,n),dx("beta",e,t,n))];case"Softmax":return[Qc(dx("x",e,t,n))];case"LogSoftmax":return[Pu(dx("x",e,t,n))];case"SparseToDense":return[Ah(dx("sparseIndices",e,t,n),dx("outputShape",e,t,n),dx("sparseValues",e,t,n),dx("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"reduction":return uo((()=>((e,t,n)=>{switch(e.op){case"Max":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[Mu(dx("x",e,t,n),r,a)]}case"Mean":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[tc(dx("x",e,t,n),r,a)]}case"Min":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[nc(dx("x",e,t,n),r,a)]}case"Sum":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[$u(dx("x",e,t,n),r,a)]}case"All":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[rl(dx("x",e,t,n),r,a)]}case"Any":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[al(dx("x",e,t,n),r,a)]}case"ArgMax":{const r=dx("axis",e,t,n);return[sl(dx("x",e,t,n),r)]}case"ArgMin":{const r=dx("axis",e,t,n);return[il(dx("x",e,t,n),r)]}case"Prod":{const r=dx("axis",e,t,n),a=dx("keepDims",e,t,n);return[xc(dx("x",e,t,n),r,a)]}case"Cumsum":{const r=dx("axis",e,t,n),a=dx("exclusive",e,t,n),s=dx("reverse",e,t,n);return[tu(dx("x",e,t,n),r,a,s)]}case"Bincount":const r=dx("x",e,t,n),a=dx("weights",e,t,n),s=dx("size",e,t,n);return[Pl(r,a,s)];case"DenseBincount":{const r=dx("x",e,t,n),a=dx("weights",e,t,n),s=dx("size",e,t,n),i=dx("binaryOutput",e,t,n);return[nu(r,a,s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"slice_join":return uo((()=>((e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{const r=dx("n",e,t,n),a=dx("axis",e,t,n);let s=dx("tensors",e,t,n);return s=s.slice(0,r),[Il(s,a)]}case"Gather":{const r=dx("x",e,t,n),a=dx("indices",e,t,n);return[vu(r,js(a,"int32"),0)]}case"GatherV2":{const r=dx("axis",e,t,n),a=dx("batchDims",e,t,n),s=dx("x",e,t,n),i=dx("indices",e,t,n);return[vu(s,js(i,"int32"),r,a)]}case"Reverse":{const r=dx("dims",e,t,n),a=[];for(let e=0;e{const r=dx("axis",e,t,n),a=dx("tensors",e,t,n),s=a[0].shape,i=ih(a[0]).shape,o=a.map((e=>{const t=se(e.shape,s);if(!t&&!se(ih(e).shape,i))throw new Error("the input tensors shape does not match");return t?e:Cl(e,s)}));return[oh(o,r)]}));case"Unpack":{const r=dx("axis",e,t,n),a=dx("tensor",e,t,n);return wh(a,r)}case"Tile":{const r=dx("reps",e,t,n);return[gu(dx("x",e,t,n),r)]}case"Split":case"SplitV":{const r=dx("axis",e,t,n),a=dx("numOrSizeSplits",e,t,n),s=dx("x",e,t,n);return rh(s,a,r)}case"ScatterNd":{const r=dx("indices",e,t,n),a=dx("values",e,t,n),s=dx("shape",e,t,n);return[Ih(r,a,s)]}case"GatherNd":{const r=dx("x",e,t,n),a=dx("indices",e,t,n);return[Dh(r,a)]}case"SparseToDense":{const r=dx("sparseIndices",e,t,n),a=dx("outputShape",e,t,n),s=dx("sparseValues",e,t,n),i=dx("defaultValue",e,t,n);return[Ah(r,s,a,s.dtype===i.dtype?i:js(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"spectral":return uo((()=>((e,t,n)=>{switch(e.op){case"FFT":return[eh(dx("x",e,t,n))];case"IFFT":return[th(dx("x",e,t,n))];case"RFFT":return[ah(dx("x",e,t,n))];case"IRFFT":return[nh(dx("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"transformation":return uo((()=>((e,t,n)=>{switch(e.op){case"Cast":return[js(dx("x",e,t,n),dx("dtype",e,t,n))];case"ExpandDims":{const r=dx("axis",e,t,n);return[pu(dx("x",e,t,n),r)]}case"Squeeze":{const r=dx("axis",e,t,n);return[ih(dx("x",e,t,n),r)]}case"Reshape":return[Cl(dx("x",e,t,n),dx("shape",e,t,n))];case"MirrorPad":return[ac(dx("x",e,t,n),dx("padding",e,t,n),dx("mode",e,t,n))];case"PadV2":case"Pad":return[pc(dx("x",e,t,n),dx("padding",e,t,n),dx("constantValue",e,t,n))];case"SpaceToBatchND":{const r=dx("blockShape",e,t,n),a=dx("paddings",e,t,n);return[vc(dx("x",e,t,n),r,a)]}case"BatchToSpaceND":{const r=dx("blockShape",e,t,n),a=dx("crops",e,t,n);return[Rl(dx("x",e,t,n),r,a)]}case"DepthToSpace":{const r=dx("blockSize",e,t,n),a=dx("dataFormat",e,t,n).toUpperCase();return[ru(dx("x",e,t,n),r,a)]}case"BroadcastTo":return[Ll(dx("x",e,t,n),dx("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n)));case"hash_table":return(async(e,t,n,r)=>{switch(e.op){case"HashTable":case"HashTableV2":{const a=dx("keyDType",e,t,n),s=dx("valueDType",e,t,n),i=new ok(a,s);return r.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{const a=dx("tableHandle",e,t,n,r),s=dx("keys",e,t,n),i=dx("values",e,t,n),o=r.getHashTableById(a.id);return[await o.import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{const a=dx("tableHandle",e,t,n,r),s=dx("keys",e,t,n),i=dx("defaultValue",e,t,n),o=r.getHashTableById(a.id);return[await o.find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{const a=dx("tableHandle",e,t,n,r);return[r.getHashTableById(a.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}})(e,t,n,r);case"custom":const a=hx(e.op);if(a&&a.customExecutor)return a.customExecutor(new Zx(e,t,n));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return Pe(a)?a.then((e=>[].concat(e))):[].concat(a)}class uk{constructor(e={},t={},n={},r={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=r,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;t0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.iterationId}`)).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(!(this.contexts&&this.contexts.length>1))throw new Error("Cannot exit frame, the context is empty");this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift()}nextIteration(){if(!(this.contexts&&this.contexts.length>0))throw new Error("Cannot increase frame iteration, the context is empty");{this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function ck(e,t,n,r){const a=new Set,s=[];let i=null,o=null;const l=new Set,u=Object.keys(e).map((e=>yx(e)[0]));let c=[];null!=r&&(c=r.map((e=>yx(e.name)[0])));const h=[...t];for(;h.length>0;){const e=h.pop();(pk(e)||mk(e)||gk(e))&&null==i&&(i=e,o=i.children.map((e=>e.name)).filter((e=>a.has(e)))),a.add(e.name),null==n[e.name]&&-1===u.indexOf(e.name)&&-1===c.indexOf(e.name)&&(0!==e.inputs.length?e.inputs.forEach((e=>{l.has(e.name)||(l.add(e.name),h.push(e))})):s.push(e.name))}return{inputs:e,outputs:t,usedNodes:a,missingInputs:s,dynamicNode:i,syncInputs:o}}const hk=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],fk=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],dk=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function pk(e){return hk.indexOf(e.op)>=0}function mk(e){return fk.indexOf(e.op)>=0}function gk(e){return dk.indexOf(e.op)>=0}class yk{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach((t=>{this._functionExecutorMap[t]=new yk(e.functions[t],this)}))}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map((t=>e[t].map((e=>e.id))));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get outputs(){return this._outputs.map((e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0})))}get inputNodes(){return this._inputs.map((e=>e.signatureKey||e.name))}get outputNodes(){return this._outputs.map((e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t}))}get functions(){return Object.keys(this._functions).reduce(((e,t)=>(e[t]=this._functions[t].signature,e)),{})}getCompilationKey(e,t){const n=e.map((e=>e.name)).sort(),r=t.map((e=>e.name)).sort();return n.join(this.SEPERATOR)+"--"+r.join(this.SEPERATOR)}compile(e,t){const n=ck(e,t,this.weightMap,this._initNodes),{missingInputs:r,dynamicNode:a,syncInputs:s}=n;if(null!=a)throw new Error(`This execution contains the node '${a.name}', which has the dynamic op '${a.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(r.length>0){const n=t.map((e=>e.name)),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${n}] from the provided inputs [${a}]. Missing the following inputs: [${r}]`)}return function(e,t,n){const{usedNodes:r,inputs:a}=n,s=[],i=Object.keys(a).map((e=>yx(e)[0])).map((t=>e.nodes[t])),o=e.initNodes;i.forEach((e=>{r.has(e.name)&&s.push(e)})),e.weights.forEach((e=>{r.has(e.name)&&s.push(e)})),null!=o&&o.forEach((e=>{r.has(e.name)&&s.push(e)}));const l=new Set,u=[];for(;s.length>0;){const e=s.pop();l.add(e.name),t[e.name]||u.push(e),e.children.forEach((e=>{!l.has(e.name)&&r.has(e.name)&&e.inputs.every((e=>l.has(e.name)))&&s.push(e)}))}return u}(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);const n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const r=n.map((e=>this.graph.nodes[yx(e)[0]])),a=t.map((e=>yx(e)[0]));let s=a.map((e=>this.graph.nodes[e]));0===s.length&&(s=this._outputs);const i=this.getCompilationKey(r,s);let o=this.compiledMap.get(i);null==o&&(o=this.compile(e,s),this.compiledMap.set(i,o));const l={},u={};return uo((()=>{const n=new uk(this.weightMap,l,u,this.functionExecutorMap),r=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,a]=yx(t),s=[];s[a]=e[t],r[n]=s}));const s=this.getFrozenTensorIds(r),i={};for(let e=0;epx(e,r,n)))}))}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map((t=>e[t])).map((e=>e.map((e=>e.id)))));return new Set(t)}checkTensorForDisposal(e,t,n,r,a,s,i){"control"!==t.category&&-1===s.indexOf(e)&&(n[e].forEach((e=>{null!=e&&(i[e.id]=(i[e.id]||0)+t.children.length)})),t.inputs.forEach((e=>{if("control"!==e.category){const t=function(e,t,n){return t[gx(e,n.currentContextId)]}(e.name,n,r);null!=t&&t.forEach((e=>{if(e&&!a.has(e.id)){const t=i[e.id];1===t?(e.dispose(),delete i[e.id]):null!=t&&i[e.id]--}}))}})))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,r={},a={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const s=new uk(this.weightMap,r,a,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map((e=>px(e,i,s))),l=o.map((e=>e.id)),u=Object.keys(e).map((t=>e[t].id)),c=new Set([...l,...u,...this.weightIds]);return Object.keys(i).forEach((e=>{i[e].forEach((e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()}))})),null==this.parent&&s.dispose(c),o}async executeFunctionAsync(e,t,n){const r=e.reduce(((e,t,n)=>(e[this.inputs[n].name]=t,e)),{});return this._executeAsync(r,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,r){const a=Object.keys(e),s=a.map((e=>this.graph.nodes[yx(e)[0]])),i=n.map((e=>yx(e)[0]));let o=i.map((e=>this.graph.nodes[e]));0===o.length&&(o=this._outputs);const{usedNodes:l,missingInputs:u,dynamicNode:c,syncInputs:h}=ck(e,o,this.weightMap,this._initNodes),f=[...s,...this.graph.weights,...this._initNodes||[]].map((e=>({node:e,contexts:t.currentContext}))),d=Object.assign({},this.weightMap);Object.keys(e).forEach((t=>{const[n,r]=yx(t),a=[];a[r]=e[t],d[n]=a}));const p={},m=this.getFrozenTensorIds(d),g={};for(;f.length>0;){const e=this.processStack(s,f,t,d,g,m,i,p,l);await Promise.all(e)}null!=c||r||console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=o.filter((e=>!pk(e)&&!px(e.name,d,t))).map((e=>e.name));if(y.length>0){let e="";throw null!=c&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${h}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${a}]. Consider providing the following inputs: [${u}]. ${e}`)}return d}processStack(e,t,n,r,a,s,i,o,l){const u=[];for(;t.length>0;){const e=t.pop();n.currentContext=e.contexts;let c="";if("Enter"===e.node.op&&dx("isConstant",e.node,r,n)&&([c]=mx(e.node.name,n)),null==r[e.node.name]){const h=lk(e.node,r,n,this._resourceManager);c||([c]=mx(e.node.name,n));const f=n.currentContext;Pe(h)?u.push(h.then((u=>(r[c]=u,n.currentContext=f,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l),u)))):(r[c]=h,this.checkTensorForDisposal(c,e.node,r,n,s,i,o),this.processChildNodes(e.node,t,n,r,a,l))}else this.processChildNodes(e.node,t,n,r,a,l)}return u}processChildNodes(e,t,n,r,a,s){e.children.forEach((e=>{const[i]=mx(e.name,n);!a[i]&&s.has(e.name)&&("Merge"===e.op?e.inputNames.some((e=>!!px(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})):e.inputNames.every((e=>!!px(e,r,n)))&&(a[i]=!0,t.push({contexts:n.currentContext,node:e})))}))}dispose(){Object.keys(this.weightMap).forEach((e=>this.weightMap[e].forEach((e=>e.dispose()))))}checkInputShapeAndType(e){Object.keys(e).forEach((t=>{const n=e[t],[r]=yx(t),a=this.graph.nodes[r];if(a.attrParams.shape&&a.attrParams.shape.value){const e=a.attrParams.shape.value;Q(e.length===n.shape.length&&n.shape.every(((t,n)=>-1===e[n]||e[n]===t)),(()=>`The shape of dict['${a.name}'] provided in model.execute(dict) must be [${e}], but was [${n.shape}]`))}a.attrParams.dtype&&a.attrParams.dtype.value&&Q(n.dtype===a.attrParams.dtype.value,(()=>`The dtype of dict['${a.name}'] provided in model.execute(dict) must be ${a.attrParams.dtype.value}, but was ${n.dtype}`))}))}mapInputs(e){const t={};for(const n in e)null!=this._signature&&null!=this._signature.inputs&&null!=this._signature.inputs[n]?t[this._signature.inputs[n].name]=e[n]:t[n]=e[n];return t}checkInputs(e){const t=Object.keys(e).filter((e=>{const[t]=yx(e);return null==this.graph.nodes[t]}));if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map((e=>null!=this._signature&&null!=this._signature.outputs&&null!=this._signature.outputs[e]?this._signature.outputs[e].name:e),{})}checkOutputs(e){e.forEach((e=>{const[t]=yx(e);if(!this.graph.nodes[t])throw new Error(`The output '${e}' is not found in the graph`)}))}}class bk{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(const e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(const e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}}class vk{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",null==t&&(this.loadOptions={}),this.resourceManager=new bk}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){const e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=si(e,this.loadOptions);else{const t=fs(e,this.loadOptions);if(0===t.length)t.push(si(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),null==this.handler.load)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let n;n=null!=this.artifacts.userDefinedMetadata&&null!=this.artifacts.userDefinedMetadata.signature?this.artifacts.userDefinedMetadata.signature:this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const r=es(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new yk($x.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(r),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){const t=$x.Instance.transformGraph(e.modelInitializer);this.initializer=new yk(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if("string"==typeof e){const t=hs(e);if(0===t.length)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw new Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof ya||Array.isArray(e)))return e;if((e=Array.isArray(e)?e:[e]).length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce(((t,n,r)=>(t[n]=e[r],t)),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce(((t,n)=>(t[n]=[e[n]],t)),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}}async function wk(e,t={}){if(null==e)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&null==e.load&&(e.endsWith("/")||(e+="/"),e=`${e}model.json?tfjs-format=file`);const n=new vk(e,t);return await n.load(),n}const _k="3.3.0";function xk(e,t,n=new Map,r=new Set){if(null==e)return null;if(r.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep map function may not return both a value and recurse=true.");if(a.recurse){if(Nk(e)){const a=Array.isArray(e)?[]:{};r.add(e);for(const s in e){const i=xk(e[s],t,n,r);a[s]=i}return r.delete(e),a}throw new Error(`Can't recurse into non-iterable type: ${e}`)}return n.set(e,a.value),a.value}function kk(e,t=Ck){return Ek(e,t)}function Ek(e,t,n=new Set){const r=e[0];if(n.has(r))throw new Error("Circular references are not supported.");const a=t(e);if(a.recurse&&null!==a.value)throw new Error("A deep zip function may not return both a value and recurse=true.");if(a.recurse){if(Nk(r)){const a=Array.isArray(r)?[]:{};n.add(r);for(const s in r){const r=Ek(e.map((e=>e[s])),t,n);a[s]=r}return n.delete(r),a}throw new Error(`Can't recurse into non-iterable type: ${r}`)}return a.value}function Ck(e){return null===e?null:Nk(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Sk(e,t){const n=new Map;xk(e,t,n);for(const e of Array.from(n.keys())){const t=n.get(e);if(Pe(t)){const r=await t;n.set(e,r)}}return xk(e,t,n)}function Nk(e){return null!=e&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||"object"==typeof e&&!(e instanceof ya))}function Ik(e){return e instanceof ya?{value:e.clone(),recurse:!1}:Nk(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Ak{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,null==e)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return 0===this.length()}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}}class Dk extends Ak{constructor(){super(Dk.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=2*this.capacity,t=new Array(e),n=this.length();for(let e=0;e!0===e))}rowMajorBatch(e,t=!0){return new Lk(this,e,t)}columnMajorBatch(e,t=!0,n=Ck){return this.rowMajorBatch(e,t).map((e=>kk(e,n)))}concatenate(e,t){return new Gk(Tk([this,e]),t)}take(e){return e<0||null==e?this:new Pk(this,e)}skip(e){return e<0||null==e?this:new $k(this,e)}prefetch(e){return new qk(this,e)}shuffle(e,t){return new Yk(this,e,t)}serial(){return new Mk(this)}}class Ok extends Rk{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:(t=e,function(e,t){return xk(e,t)}(t,Ik)),done:!1};var t}}class Bk extends Rk{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class Mk extends Rk{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){return this.upstream.next()}}class $k extends Rk{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class Lk extends Rk{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class zk extends Rk{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;co(e.value)}}}class Wk extends Rk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Ta(e.value),n=this.transform(e.value),r=Ta(n);for(const e of t)Da(e,r)||e.dispose();return{value:n,done:!1}}}class Uk extends Rk{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class Vk extends Rk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=Ta(e.value),n=await this.transform(e.value),r=Ta(n);for(const e of t)Da(e,r)||e.dispose();return{value:n,done:!1}}}class jk extends Rk{constructor(){super(),this.outputQueue=new Dk,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}async serialNext(){for(;0===this.outputQueue.length();)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class Hk extends jk{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=Ta(e.value),n=this.transform(e.value),r=Ta(n);this.outputQueue.pushAll(n);for(const e of t)Da(e,r)||e.dispose();return!0}}class Gk extends Rk{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,null==this.iterator){const e=await this.moreIterators.next();if(e.done)return{value:null,done:!0};this.iterator=e.value,null!=this.baseErrorHandler&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var Xk;!function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"}(Xk||(Xk={}));class Kk extends Rk{constructor(e,t=Xk.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;const r=await Sk(this.iterators,(function(e){return e instanceof Rk?{value:e.next().then((e=>(t++,e.done&&n++,e.value))),recurse:!1}:{value:null,recurse:!0}}));if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Xk.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Xk.SHORTEST:return{value:null,done:!0};case Xk.LONGEST:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class qk extends Rk{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new Ak(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class Yk extends qk{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=Ec.alea(n||ta().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then((()=>this.serialNext())),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(!t.done)return this.refill(),t;this.upstreamExhausted=!0}return{value:null,done:!0}}}class Jk{constructor(){this.size=null}batch(e,t=!0){const n=this;let r;return Q(e>0,(()=>`batchSize needs to be positive, but it is\n ${e}`)),r=this.size===1/0||null==this.size?this.size:t?Math.ceil(this.size/e):Math.floor(this.size/e),Zk((async()=>(await n.iterator()).columnMajorBatch(e,t,tE)),r)}concatenate(e){const t=this;let n;return n=this.size===1/0||e.size===1/0?1/0:null!=this.size&&null!=e.size?this.size+e.size:null,Zk((async()=>(await t.iterator()).concatenate(await e.iterator())),n)}filter(e){const t=this;let n;return n=this.size===1/0?1/0:null,Zk((async()=>(await t.iterator()).filter((t=>uo((()=>e(t)))))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return Zk((async()=>(await t.iterator()).map((t=>uo((()=>e(t)))))),this.size)}mapAsync(e){const t=this;return Zk((async()=>(await t.iterator()).mapAsync(e)),this.size)}prefetch(e){if(null==e)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return Zk((async()=>(await t.iterator()).prefetch(e)),this.size)}repeat(e){const t=this;let n;return n=null!=this.size&&e>0?this.size*e:0===e?0:null!=this.size&&(void 0===e||e<0)?1/0:null,Zk((async()=>{return n=Fk((async()=>({value:await t.iterator(),done:!1}))).take(e),new Gk(n,r);var n,r}),n)}skip(e){const t=this;let n;return n=null!=this.size&&e>=0&&this.size>=e?this.size-e:null!=this.size&&(this.size(await t.iterator()).skip(e)),n)}shuffle(e,t,n=!0){if(null==e||e<0)throw null==this.size?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const r=this,a=Ec.alea(t||ta().toString());return Zk((async()=>{let t=a.int32();return n&&(t+=a.int32()),(await r.iterator()).shuffle(e,t.toString())}),this.size)}take(e){const t=this;let n;return n=null!=this.size&&this.size>e?e:null!=this.size&&this.size<=e?this.size:null,Zk((async()=>(await t.iterator()).take(e)),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}function Zk(e,t=null){return new class extends Jk{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Qk(e){return Zk((async()=>Tk(e)),e.length)}function eE(e){if(!Nk(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;nfunction(e,t=Xk.FAIL){return new Kk(e,t)}(await Sk(e,(e=>{if(e instanceof Jk)return{value:e.iterator(),recurse:!1};if(Nk(e))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")})),Xk.SHORTEST)),t)}function tE(e){if(null===e)return null;return null==(t=e[0])||null===(n=t)||"object"!=typeof n&&"function"!=typeof n||Array.isArray(t)||"object"==typeof t&&t instanceof ya||we(t)?{value:function(e){if(0===e.length)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof ya?oh(e):Ja(e)}(e),recurse:!1}:{value:null,recurse:!0};var t,n}Jk.MAX_BUFFER_SIZE=1e4;class nE extends Jk{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split("\n").map((e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e)))}}const rE='"',aE=Symbol("out"),sE=Symbol("field"),iE=Symbol("quote"),oE=Symbol("quoteafterquote"),lE=Symbol("quoteinquote");class uE extends Jk{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new nE(e),t||(t={}),this.hasHeader=!1!==t.hasHeader,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(Q(null==t.delimiter,(()=>"Delimiter should not be provided when delimWhitespace is true.")),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&Q(e.length===this.fullColumnNames.length,(()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+").")),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce(((e,t)=>(e[t]=e[t]+1||1,e)),{}),n=Object.keys(t).filter((e=>t[e]>1));if(Q(0===n.length,(()=>"Duplicate column names found: "+n.toString())),this.columnConfigs)for(const e of Object.keys(this.columnConfigs))if(-1===this.fullColumnNames.indexOf(e))throw new Error('The key "'+e+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").");this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const n=t.value;return this.parseRow(n,!1)}return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map((e=>this.makeDataElement(e)))}makeDataElement(e){const t=this.parseRow(e),n={},r={};for(let a=0;a14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!1!==e.includeSpectrogram,this.includeWaveform=!0===e.includeWaveform,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ze().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new cE(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:null==this.audioTrackConstraints||this.audioTrackConstraints,video:!1})}catch(e){throw new Error(`Error thrown while initializing video stream: ${e.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,this.sampleRateHz){if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`)}else this.sampleRateHz=this.audioContext.sampleRate;const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2*this.fftSize,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const n=await this.getAudioData();if(this.includeSpectrogram){const t=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(t,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const e=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(e,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let n=0;return new Promise((r=>{const a=setInterval((()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&r({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(a),r({freqDataQueue:e,timeDataQueue:t}))}),this.fftSize/this.sampleRateHz*1e3)}))}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),null!=this.stream&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,n=new Float32Array(e.length*t);return e.forEach(((e,r)=>n.set(e,r*t))),n}getTensorFromAudioDataArray(e,t){const n=new Float32Array(re(t));return n.set(e,n.length-e.length),Ja(n,t)}}class hE extends Rk{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=hh([0],"int32"),this.webcamConfig.centerCrop){const e=1*this.webcamConfig.resizeWidth/this.webcamVideoElement.width,t=1*this.webcamConfig.resizeHeight/this.webcamVideoElement.height,n=(1-e)/2,r=(1-t)/2,a=n+e,s=t+r;this.cropBox=fh([r,n,s,a],[1,4])}else this.cropBox=fh([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ze().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const n=new hE(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&Q("user"===this.webcamConfig.facingMode||"environment"===this.webcamConfig.facingMode,(()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`));try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise((e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}}))}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=vi(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(!this.resize)return{value:e,done:!1};try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{e.dispose()}}needToResize(){return!(!this.webcamConfig.resizeWidth||!this.webcamConfig.resizeHeight||this.webcamVideoElement.width===this.webcamConfig.resizeWidth&&this.webcamVideoElement.height===this.webcamConfig.resizeHeight)}cropAndResizeFrame(e){return uo((()=>{const t=pu(js(e,"float32"),0);let n;n=Tf.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const r=n.shape;return Cl(n,r.slice(1))}))}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach((e=>e.stop()));try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class fE{}class dE extends Rk{split(e){return new pE(this,e)}}class pE extends dE{constructor(e,t){super(),this.upstream=e,this.impl=new mE(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class mE extends jk{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return""!==this.carryover&&(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const e of t.slice(0,-1))this.outputQueue.push(e);return this.carryover=t[t.length-1],!0}}class gE extends Rk{decodeUTF8(){return new yE(this)}}class yE extends dE{constructor(e){super(),this.upstream=e,this.impl=new bE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class bE extends jk{constructor(e){if(super(),this.upstream=e,ze().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:e}=n(4589);this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t,n;return!e.done&&(t=e.value,n=ze().get("IS_BROWSER")?this.decoder.decode(t,{stream:!0}):this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0)}}class vE extends gE{constructor(e,t={}){super(),this.file=e,this.options=t,Q(e instanceof Uint8Array||!!ze().get("IS_BROWSER")&&(e instanceof File||e instanceof Blob),(()=>"FileChunkIterator only supports File, Blob and Uint8Array right now.")),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1048576}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise(((e,t)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{const r=new FileReader;r.onload=n=>{let a=r.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(a)},r.onabort=e=>t(new Error("Aborted")),r.onerror=e=>t(new Error(e.type));const a=this.file.slice(this.offset,n);r.readAsArrayBuffer(a)}this.offset=n}));return{value:await e,done:!1}}}function wE(e){return"string"==typeof e&&"file://"===e.substr(0,7)}class _E extends fE{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(wE(this.input)&&ze().get("IS_NODE")){const e=n(2993);this.input=e.readFileSync(this.input.substr(7))}return new vE(this.input,this.options)}}class xE extends fE{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return wE(this.url)?new _E(this.url,this.fileOptions).iterator():async function(e,t={}){let n,r;var a;"string"==typeof e?n=e:(n=e.url,r={method:(a=e).method,headers:a.headers,body:a.body,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,referrer:a.referrer,integrity:a.integrity});const s=await na(n,r);if(s.ok){const e=new Uint8Array(await s.arrayBuffer());return new vE(e,t)}throw new Error(s.statusText)}(this.url,this.fileOptions)}}function kE(e,t={}){return new uE(new xE(e),t)}function EE(e){const t=Fk(e);return Zk((async()=>t))}function CE(e){return Zk((async()=>{const t=await e();return Fk((()=>t.next()))}))}async function SE(e,t){return hE.create(e,t)}async function NE(e){return cE.create(e)}const IE="3.3.0";function AE(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Q("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the CPU backend.`))}))}const DE=xh;class TE extends j{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new V(this,io())}nextDataId(){return TE.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,ze().get("IS_NODE")&&nd("\n============================\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\n============================"));const r={id:this.nextDataId()};return this.data.set(r,{values:e,dtype:n,refCount:1}),r}makeTensorInfo(e,t,n){let r;if("string"===t&&null!=n&&n.length>0&&ke(n[0])){const a=n.map((e=>ra(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return{dataId:r,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){this.data.get(e).refCount++}decRef(e){this.data.has(e)&&this.data.get(e).refCount--}move(e,t,n,r,a){this.data.set(e,{values:t,dtype:r,refCount:a})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:n}=this.data.get(e);return"complex64"===t?ad(this.readSync(n.real.dataId),this.readSync(n.imag.dataId)):this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>aa(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Vs(e.shape,e.dtype,n)}makeOutput(e,t,n){const r=this.write(e,t,n);return io().makeTensorFromDataId(r,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;const{complexTensorInfos:n}=this.data.get(e);null!=n&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){const t=ta();return e(),{kernelMs:ta()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){AE([e],"where");const t=this.readSync(e.dataId);return DE(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}function FE(e,t,n){return({inputs:r,attrs:a,backend:s})=>{const{x:i}=r;if(AE(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=re(i.shape),c=n||i.dtype,h=ge(c,u);for(let e=0;e{const{x:i}=r;if(AE(i,e),"string"===i.dtype||"string"===n)throw new Error("unaryKernelFunc does not support string input/output");const o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,c=t(l,u,a);return o.makeTensorInfo(i.shape,u,c)}}TE.nextDataId=0,wo("cpu",(()=>new TE),1);const OE=FE(Lt,(e=>e>=0?e:Math.exp(e)-1)),BE={kernelName:Lt,backendName:"cpu",kernelFunc:OE};function ME(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const $E={kernelName:nn,backendName:"cpu",kernelFunc:ME};function PE(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r;AE([a],"leakyRelu");const i=re(a.shape),o=n.data.get(a.dataId).values,l=me("float32",i);for(let e=0;e{const i=Ko(t,n),o=i.length,l=Ae(i),u=me(s,re(i)),c=t.length,h=n.length,f=Ae(t),d=Ae(n),p=Go(t,i),m=Go(n,i);if(p.length+m.length===0)for(let t=0;ts[e]=0));const i=Me(s,c,f),g=n.slice(-h);m.forEach((e=>g[e]=0));const y=Me(g,h,d);u[t]=e(r[i],a[y])}return[u,i]}}const WE=zE(((e,t)=>e<0?t*e:e));function UE(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t;AE([r,a],"prelu");const s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,[o,l]=WE(r.shape,a.shape,s,i,r.dtype);return n.makeTensorInfo(l,r.dtype,o)}const VE={kernelName:Gn,backendName:"cpu",kernelFunc:UE},jE=FE(Jn,(e=>Math.max(0,e))),HE={kernelName:Jn,backendName:"cpu",kernelFunc:jE},GE=FE(rr,(e=>Math.min(Math.max(0,e),6))),XE={kernelName:rr,backendName:"cpu",kernelFunc:GE};function KE(e,t,n,r,a){if("linear"===n)return ME({inputs:{x:t},backend:e});if("relu"===n)return jE({inputs:{x:t},backend:e});if("elu"===n)return OE({inputs:{x:t},backend:e});if("relu6"===n)return GE({inputs:{x:t},backend:e});if("prelu"===n)return UE({inputs:{x:t,alpha:r},backend:e});if("leakyrelu"===n)return PE({inputs:{x:t},backend:e,attrs:{alpha:a}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function qE(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.data.get(r.dataId).values,i=n.data.get(a.dataId).values,o=n.makeTensorInfo(r.shape,"complex64");return n.data.get(o.dataId).complexTensorInfos={real:n.makeTensorInfo(r.shape,"float32",s),imag:n.makeTensorInfo(a.shape,"float32",i)},o}const YE={kernelName:gt,backendName:"cpu",kernelFunc:qE};function JE(e,t,n="float32"){if("complex64"===n)return qE({inputs:{real:JE(e,t,"float32"),imag:JE(e,t,"float32")},backend:e});const r=Re(re(t),n);return e.makeTensorInfo(t,n,r)}function ZE(e){const{inputs:t,backend:n}=e,{input:r}=t,a=n.data.get(r.dataId).complexTensorInfos.real,s=n.data.get(a.dataId).values;return n.makeTensorInfo(a.shape,a.dtype,s)}const QE={kernelName:qn,backendName:"cpu",kernelFunc:ZE};function eC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dtype:s}=r;if("complex64"===s){if("complex64"===a.dtype)return ME({inputs:{x:a},backend:n});const e=JE(n,a.shape,a.dtype),t=eC({inputs:{x:a},backend:n,attrs:{dtype:"float32"}}),r=qE({inputs:{real:t,imag:e},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),r}if("complex64"===a.dtype){const e=ZE({inputs:{input:a},backend:n}),t=eC({inputs:{x:e},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(e),t}if(!ve(a.dtype,s)){const e=ME({inputs:{x:a},backend:n});return{dataId:e.dataId,shape:e.shape,dtype:s}}if("int32"===s){const e=n.data.get(a.dataId).values,t=Int32Array.from(e);return n.makeTensorInfo(a.shape,"int32",t)}if("bool"===s){const e=n.data.get(a.dataId).values,t=ea([0],a.dtype),[r,s]=zE(((e,t)=>e!==t?1:0))(a.shape,[],e,t,"bool");return n.makeTensorInfo(s,"bool",r)}throw new Error(`Error in Cast: failed to cast ${a.dtype} to ${s}`)}const tC={kernelName:dt,backendName:"cpu",kernelFunc:eC};function nC(e,t,n,r){return null==n?({inputs:n,backend:a})=>{const{a:s,b:i}=n,o=a;AE([s,i],e);const l=o.data.get(s.dataId).values,u=o.data.get(i.dataId).values,c=r||s.dtype,[h,f]=t(s.shape,i.shape,l,u,c);return o.makeTensorInfo(f,c,h)}:({inputs:e,backend:a})=>{const{a:s,b:i}=e,o=a;if("complex64"===s.dtype||"complex64"===i.dtype){const e=eC({inputs:{x:s},backend:o,attrs:{dtype:"complex64"}}),t=o.data.get(e.dataId),r=t.complexTensorInfos.real,a=t.complexTensorInfos.imag,l=o.data.get(r.dataId).values,u=o.data.get(a.dataId).values,c=eC({inputs:{x:i},backend:o,attrs:{dtype:"complex64"}}),h=o.data.get(c.dataId),f=h.complexTensorInfos.real,d=h.complexTensorInfos.imag,p=o.data.get(f.dataId).values,m=o.data.get(d.dataId).values,[g,y,b]=n(s.shape,i.shape,l,u,p,m),v=o.makeTensorInfo(b,"float32",g),w=o.makeTensorInfo(b,"float32",y),_=qE({inputs:{real:v,imag:w},backend:o});return o.disposeIntermediateTensorInfo(e),o.disposeIntermediateTensorInfo(c),o.disposeIntermediateTensorInfo(v),o.disposeIntermediateTensorInfo(w),_}{const e=o.data.get(s.dataId).values,n=o.data.get(i.dataId).values,a=r||s.dtype,[l,u]=t(s.shape,i.shape,e,n,a);return o.makeTensorInfo(u,a,l)}}}function rC(e){return(t,n,r,a,s,i)=>{const o=Ko(t,n),l=re(o),u=o.length,c=Ae(o),h=me("float32",l),f=me("float32",l),d=Go(t,o),p=Go(n,o),m=ad(r,a),g=ad(s,i),y=t.length,b=Ae(t),v=n.length,w=Ae(n);if(d.length+p.length===0)for(let t=0;tr[e]=0));const a=Me(r,y,b),s=n.slice(-v);p.forEach((e=>s[e]=0));const i=Me(s,v,w),o=e(m[2*a],m[2*a+1],g[2*i],g[2*i+1]);h[t]=o.real,f[t]=o.imag}return[h,f,o]}}const aC=zE(((e,t)=>e+t)),sC=rC(((e,t,n,r)=>({real:e+n,imag:t+r}))),iC=nC(Ke,aC,sC),oC={kernelName:Ke,backendName:"cpu",kernelFunc:iC};function lC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{shape:s}=r,i=re(a.shape),o=fe(s,i),l=re(o);Q(i===l,(()=>`The new shape (${o}) has ${l} elements and the old shape (${a.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`)),n.incRef(a.dataId);const u=n.data.get(a.dataId);if(null!=u.complexTensorInfos){const e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=o,t.shape=o}return{dataId:a.dataId,shape:o,dtype:a.dtype}}const uC={kernelName:Zn,backendName:"cpu",kernelFunc:lC};function cC(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;AE([a,s],"matMul");const l=a.shape.length,u=s.shape.length,c=i?a.shape[l-2]:a.shape[l-1],h=o?s.shape[u-1]:s.shape[u-2],f=i?a.shape[l-1]:a.shape[l-2],d=o?s.shape[u-2]:s.shape[u-1],p=a.shape.slice(0,-2),m=s.shape.slice(0,-2),g=re(p),y=re(m);Q(l>=2&&u>=2&&(g===y||1===g||1===y),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${p}) and (${m}).`));const b=(g>y?a.shape.slice(0,-2):s.shape.slice(0,-2)).concat([f,d]);Q(c===h,(()=>`Error in matMul: inner shapes (${c}) and (${h}) of Tensors with shapes ${a.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`));const v=o?[y,d,h]:[y,h,d],w=lC({inputs:{x:a},backend:n,attrs:{shape:i?[g,c,f]:[g,f,c]}}),_=lC({inputs:{x:s},backend:n,attrs:{shape:v}}),x=i?w.shape[1]:w.shape[2],k=i?w.shape[2]:w.shape[1],E=o?_.shape[1]:_.shape[2],C=Math.max(g,y),S=n.data.get(w.dataId).values,N=n.data.get(_.dataId).values,I=Ae(w.shape),A=Ae(_.shape),[D,T,F]=i?[I[0],1,I[1]]:[I[0],I[1],1],[R,O,B]=o?[1,A[1],A[0]]:[A[1],1,A[0]],M=k*E,$=Vs([C,k,E],w.dtype),P=$.values,L=n.blockSize;for(let e=0;e{const{x:t}=e.inputs,n=e.backend;AE(t,"abs");let r=new Float32Array(re(t.shape));return r=dC(n.data.get(t.dataId).values),n.makeOutput(r,t.shape,"float32")}},mC=FE(Ge,(e=>Math.acos(e))),gC={kernelName:Ge,backendName:"cpu",kernelFunc:mC},yC=FE(Xe,(e=>Math.acosh(e))),bC={kernelName:Xe,backendName:"cpu",kernelFunc:yC},vC={kernelName:qe,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,r=t;AE(t,"addN");const a=r.map((e=>n.data.get(e.dataId).values)),s=Vs(r[0].shape,r[0].dtype),i=s.values;for(let e=0;en&&(n=a,r=e)}f[e]=r}return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},SC={kernelName:Qe,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;AE(a,"argMin");let i=de(s,a.shape);const o=ju(i,a.shape.length);let l=a;const u=[];null!=o&&(l=_C({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Gu(i.length,l.shape.length)),i=[i[0]],Vu("argMin",i,l.shape.length);const[c,h]=Wu(l.shape,i),f=Re(re(c),"int32"),d=re(h),p=n.data.get(l.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(c,"int32",f)}},NC=FE(et,(e=>Math.asin(e))),IC={kernelName:et,backendName:"cpu",kernelFunc:NC},AC=FE(tt,(e=>Math.asinh(e))),DC={kernelName:tt,backendName:"cpu",kernelFunc:AC},TC=FE(nt,(e=>Math.atan(e))),FC={kernelName:nt,backendName:"cpu",kernelFunc:TC},RC=zE(((e,t)=>Math.atan2(e,t))),OC=nC(at,RC),BC={kernelName:at,backendName:"cpu",kernelFunc:OC},MC=FE(rt,(e=>Math.atanh(e))),$C={kernelName:rt,backendName:"cpu",kernelFunc:MC};function PC(e,t,n,r,a,s){const i=a.strideHeight,o=a.strideWidth,l=a.dilationHeight,u=a.dilationWidth,c=a.effectiveFilterHeight,h=a.effectiveFilterWidth,f=a.padInfo.top,d=a.padInfo.left,p="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,m=Vs(a.outShape,n),g=m.values,y=a.outShape[1]*a.outShape[2]*a.outShape[3],b=a.outShape[2]*a.outShape[3],v=a.outShape[3];for(let t=0;ty?y=i:"avg"===s&&(b+=i,w++)}if(isNaN(y))break}g[k+n*v+t]="avg"===s?b/w:y}}}return m}function LC(e,t,n,r,a=!1,s=!1){const i=Vs(r.outShape,"int32"),o=r.strideHeight,l=r.strideWidth,u=r.dilationHeight,c=r.dilationWidth,h=r.effectiveFilterHeight,f=r.effectiveFilterWidth,d=r.padInfo.top,p=r.padInfo.left,m=Vs(t,n,e);for(let e=0;ew&&(w=u,_=a?s?((e*r.inHeight+n)*r.inWidth+o)*r.inChannels+t:(n*r.inWidth+o)*r.inChannels+t:i*f+l)}}i.set(_,e,n,o,t)}}return i}function zC(e,t,n,r,a,s){const i=a.strideDepth,o=a.strideHeight,l=a.strideWidth,u=a.dilationDepth,c=a.dilationHeight,h=a.dilationWidth,f=a.effectiveFilterDepth,d=a.effectiveFilterHeight,p=a.effectiveFilterWidth,m=a.padInfo.front,g=a.padInfo.top,y=a.padInfo.left,b="max"===s?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Vs(a.outShape,n),w=v.values,_=a.outShape[1]*a.outShape[2]*a.outShape[3]*a.outShape[4],x=a.outShape[2]*a.outShape[3]*a.outShape[4],k=a.outShape[3]*a.outShape[4],E=a.outShape[4];for(let t=0;tx?x=a:"avg"===s&&(k+=a,C++),isNaN(x))break}if(isNaN(x))break}if(isNaN(x))break}w[g+t]="avg"===s?k/C:x}}}}return v}const WC={kernelName:st,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;AE(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(kl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=dl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=ME({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=PC(e,a.shape,a.dtype,t,u,"avg");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},UC={kernelName:ot,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r;AE(a,"avgPool3d");const c=pl(a.shape,s,i,1,o,l,u),h=zC(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"avg");return n.makeTensorInfo(h.shape,"float32",h.values)}},VC={kernelName:lt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=r;AE([a,s],"avgPool3DGrad");const c=pl(s.shape,i,o,1,l,u),h=c.strideDepth,f=c.strideHeight,d=c.strideWidth,p=c.filterDepth,m=c.filterHeight,g=c.filterWidth,y=c.dilationDepth,b=c.dilationHeight,v=c.dilationWidth,w=c.effectiveFilterDepth,_=c.effectiveFilterHeight,x=c.effectiveFilterWidth,k=w-1-c.padInfo.front,E=x-1-c.padInfo.left,C=_-1-c.padInfo.top,S=Vs(s.shape,"float32"),N=1/(p*m*g),I=n.bufferSync(a);for(let e=0;e=c.outDepth||Math.floor(r)!==r))for(let n=0;n<_;n+=b){const a=(i+n)/f;if(!(a<0||a>=c.outHeight||Math.floor(a)!==a))for(let n=0;n=c.outWidth||Math.floor(s)!==s||(l+=I.get(e,r,a,s,t))}}}S.set(l*N,e,n,r,a,t)}return n.makeTensorInfo(S.shape,S.dtype,S.values)}},jC={kernelName:it,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;AE([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=dl(i.shape,o,l,1,u),h=c.strideHeight,f=c.strideWidth,d=c.filterHeight,p=c.filterWidth,m=c.dilationHeight,g=c.dilationWidth,y=c.effectiveFilterHeight,b=c.effectiveFilterWidth,v=b-1-c.padInfo.left,w=y-1-c.padInfo.top,_=Vs(i.shape,"float32"),x=1/(d*p),k=n.data.get(a.dataId).values,E=Vs(a.shape,"float32",k);for(let e=0;e=c.outHeight||Math.floor(r)!==r))for(let n=0;n=c.outWidth||Math.floor(a)!==a||(i+=E.get(e,r,a,t))}}_.set(i*x,e,n,r,t)}return n.makeTensorInfo(_.shape,_.dtype,_.values)}},HC={kernelName:Jt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,scale:s,offset:i,mean:o,variance:l}=t;Q(o.shape.length===l.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Q(null==i||o.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Q(null==s||o.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks.")),AE([a,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=r;null==u&&(u=.001);const c=n.data.get(a.dataId).values,h=n.data.get(o.dataId).values,f=n.data.get(l.dataId).values,d=s?n.data.get(s.dataId).values:new Float32Array([1]),p=i?n.data.get(i.dataId).values:new Float32Array([0]),m=new Float32Array(c.length),g=p.length,y=d.length,b=f.length,v=h.length;let w=0,_=0,x=0,k=0;for(let e=0;e=g&&(w=0),_>=v&&(_=0),x>=y&&(x=0),k>=b&&(k=0);return n.makeTensorInfo(a.shape,a.dtype,m)}};function GC(e,t,n,r,a){const s=Mi(r,t,n),i=re(n),o=Ae(r);if(s){const n=$i(t,o);return"string"===a?e.slice(n,n+i):e.subarray(n,n+i)}const l=Vs(r,a,"string"===a?gd(e):e),u=Vs(n,a);for(let e=0;ee+t[n]));u.set(l.get(...r),...n)}return"string"===a?yd(u.values):u.values}function XC(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r;AE(a,"slice");const[o,l]=Pi(a,s,i);Ei(a,o,l);const u=GC(n.data.get(a.dataId).values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,u)}const KC={kernelName:cr,backendName:"cpu",kernelFunc:XC},qC={kernelName:ct,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;AE([a],"batchToSpaceND");const o=s.reduce(((e,t)=>e*t)),l=Vf(a.shape,s,o),u=jf(l.length,s.length),c=Hf(a.shape,s,o),h=Gf(i,s.length),f=Xf(c,i,s.length),d=lC({inputs:{x:a},backend:n,attrs:{shape:l}}),p=_C({inputs:{x:d},backend:n,attrs:{perm:u}}),m=lC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=XC({inputs:{x:m},backend:n,attrs:{begin:h,size:f}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}};function YC(e,t,n,r,a){const s=re(r),i=Re(a,n);for(let n=0;n=a||(i[r]+=s>0?t[n]:1)}return i}function JC(e,t,n,r=!1){const a=e.shape[0],s=e.shape[1],i=Vs([a,n],t.dtype);for(let o=0;o=n||(r?i.set(1,o,s):t.size>0?i.set(i.get(o,s)+t.get(o,a),o,s):i.set(i.get(o,s)+1,o,s))}return i}const ZC={kernelName:ht,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=YC(n.data.get(a.dataId).values,n.data.get(s.dataId).values,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,o)}};function QC(e){return(t,n,r)=>{const a=me(n,t.length);for(let n=0;nMath.ceil(e))),tS=RE(pt,eS),nS={kernelName:pt,backendName:"cpu",kernelFunc:tS},rS=FE(mt,((e,t)=>{const n=t;return e>n.clipValueMax?n.clipValueMax:e{const{x:t}=e.inputs,n=e.backend,r=new Float32Array(re(t.shape)),a=n.data.get(t.dataId),s=a.complexTensorInfos.real,i=a.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let e=0;e{const n=re(e.shape);a.set(e.vals,t),t+=n}))}else{let r=0;e.forEach((e=>{const s="string"===n?gd(e.vals):e.vals;let i=0;for(let n=0;ne.shape)),s);if(0===re(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>re(e.shape)>0));if(1===o.length)return ME({inputs:{x:o[0]},backend:n});if(Pf(o.map((e=>e.shape)),s),"complex64"===o[0].dtype){const e=o.map((e=>ZE({inputs:{input:e},backend:n}))),t=o.map((e=>oS({inputs:{input:e},backend:n}))),r=uS({inputs:e,backend:n,attrs:{axis:s}}),a=uS({inputs:t,backend:n,attrs:{axis:s}}),i=qE({inputs:{real:r,imag:a},backend:n});return e.forEach((e=>n.disposeIntermediateTensorInfo(e))),t.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(a),i}const l=o.map((e=>{const t=re(e.shape.slice(s));return lC({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})})),u=l.map((e=>({vals:n.data.get(e.dataId).values,shape:e.shape})));i=Lf(l.map((e=>e.shape)),1);const c=1===l[0].shape[0],h=iS(u,i,t[0].dtype,c),f=Lf(o.map((e=>e.shape)),s),d=n.makeTensorInfo(f,t[0].dtype,h);return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),d}const cS={kernelName:bt,backendName:"cpu",kernelFunc:uS};function hS(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r;AE([a,s],"conv2d");const h=El(l),f=ml(a.shape,s.shape,i,u,o,c,!1,h),d=f.filterHeight,p=f.filterWidth,m=f.dilationHeight,g=f.dilationWidth,y=f.padInfo.left,b=f.padInfo.top,v="channelsLast"===f.dataFormat,w=new da(f.outShape,a.dtype),_=Ae(a.shape),x=Ae(s.shape),k=_[0],E=v?_[1]:_[2],C=v?_[2]:1,S=v?1:_[1],N=w.strides[0],I=v?w.strides[1]:w.strides[2],A=v?w.strides[2]:1,D=v?1:w.strides[1],T=n.data.get(a.dataId).values,F=n.data.get(s.dataId).values,R=w.values;for(let e=0;e=f.inHeight)continue;const s=e*x[0],i=t+n*E;for(let e=0;e=f.inWidth)continue;const a=i+r*C;let o=s+e*x[1];for(let e=0;e=u.inDepth)continue;const s=e*C[0],i=t+n*E[1];for(let e=0;e=u.inHeight)continue;const a=s+e*C[1],o=i+r*E[2];for(let e=0;e=u.inWidth)continue;const s=a+e*C[2],i=o+t*u.inChannels;let l=s;for(let e=0;eMath.cos(e))),vS={kernelName:Ct,backendName:"cpu",kernelFunc:bS},wS=FE(St,(e=>Math.cosh(e))),_S={kernelName:St,backendName:"cpu",kernelFunc:wS},xS={kernelName:It,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,[c,h,f,d]=a.shape,p=s.shape[0],[m,g]=o,y=Vs([p,m,g,d],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,w=n.data.get(a.dataId).values,_=Ae(a.shape),x=Ae(y.shape);for(let e=0;e=c)continue;const o=m>1?(a-n)*(h-1)/(m-1):0,p=g>1?(s-r)*(f-1)/(g-1):0;for(let t=0;t1?n*(h-1)+t*o:.5*(n+a)*(h-1);if(c<0||c>h-1)for(let n=0;n1?r*(f-1)+l*p:.5*(r+s)*(f-1);if(c<0||c>f-1){for(let n=0;n1?r*(f-1)+n*p:.5*(r+s)*(f-1);if(a<0||a>f-1){for(let r=0;re+p-t-1:(e,t)=>e+t;for(let e=0;e`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`)),Q(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l=a.shape[1],u=a.shape[2],c=a.shape[3],h=l*s,f=u*s,d=c/(s*s),p=n.data.get(a.dataId).values,m=new Float32Array(o*h*f*d);let g=0;for(let e=0;e`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${f}'`));const d=ml(a.shape,s.shape,i,f,o,u,!0),{filterHeight:p,filterWidth:m,dilationHeight:g,dilationWidth:y,padInfo:b}=d,v=b.left,w=b.top,_=d.outChannels/d.inChannels,x=new da(d.outShape,a.dtype),k=n.data.get(a.dataId).values,E=n.data.get(s.dataId).values,C=x.values;for(let e=0;e=d.inHeight)continue;const s=e*h[0],i=t+n*c[1];for(let e=0;e=d.inWidth)continue;const a=s+e*h[1],o=i+r*d.inChannels;let l=t,u=a;for(let e=0;e{const{x:r,filter:a}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(r.dataId).values,c=r.shape.length,h=l.data.get(a.dataId).values,f=a.shape.length,{batchSize:d,inHeight:p,inWidth:m,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:w,strideWidth:_,filterHeight:x,filterWidth:k,dilationHeight:E,dilationWidth:C,outShape:S}=fl(r.shape,a.shape,s,i,"NHWC",o),N=re(S),I=S.length,A=ge(r.dtype,N);for(let e=0;e=0&&s=0&&dl&&(l=m)}}}A[Me([e,t,s,o],I,Ae(S))]=l}}}return{dataId:l.write(ea(A,r.dtype),S,r.dtype),shape:S,dtype:r.dtype}}},FS={kernelName:$t,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Te(r.shape,u.data.get(r.dataId).values),h=Te(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=fl(r.shape,a.shape,i,o,"NHWC",l);Q(s.rank===C.length,(()=>`Error in ${$t}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Te(C,u.data.get(s.dataId).values),N=Oe(a.shape,a.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=t,l=n)}}}N[o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(ea(N,r.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}},RS={kernelName:Mt,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,filter:a,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,c=Te(r.shape,u.data.get(r.dataId).values),h=Te(a.shape,u.data.get(a.dataId).values),{batchSize:f,inHeight:d,inWidth:p,inChannels:m,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:w,filterHeight:_,filterWidth:x,dilationHeight:k,dilationWidth:E,outShape:C}=fl(r.shape,a.shape,i,o,"NHWC",l);Q(s.rank===C.length,(()=>`Error in ${Mt}, dy must have the same rank as output ${C.length}, but got ${s.rank}`));const S=Te(C,u.data.get(s.dataId).values),N=Oe(r.shape,r.dtype);for(let e=0;e=0&&r=0&&ui&&(i=a,o=r,l=u)}}}N[e][o][l][s]+=S[e][t][r][s]}}}return{dataId:u.write(ea(N,r.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},OS={kernelName:zt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{dy:r,y:a}=t;AE([r,a],"eluGrad");const s=new Float32Array(re(a.shape)),i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values;for(let e=0;e=1?o[e]:o[e]*(t+1)}return n.makeTensorInfo(a.shape,"float32",s)}},BS=zE(((e,t)=>e===t?1:0)),MS=nC(Ut,BS,null,"bool"),$S={kernelName:Ut,backendName:"cpu",kernelFunc:MS},PS=Yf,LS=Jf,zS=Zf,WS=Qf,US=ed,VS=td,jS=FE(Wt,(e=>{const t=Math.sign(e),n=Math.abs(e),r=1/(1+PS*n);return t*(1-((((VS*r+US)*r+WS)*r+zS)*r+LS)*r*Math.exp(-n*n))})),HS={kernelName:Wt,backendName:"cpu",kernelFunc:jS},GS=QC((e=>Math.exp(e))),XS=RE(Vt,GS),KS={kernelName:Vt,backendName:"cpu",kernelFunc:XS};function qS(e){const{inputs:t,backend:n,attrs:r}=e,{input:a}=t,{dim:s}=r,i=a.shape.length,o=a.shape.slice();let l=s;return s<0&&(Q(-(i+1)<=s,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+s+1),o.splice(l,0,1),lC({inputs:{x:a},backend:n,attrs:{shape:o}})}const YS={kernelName:jt,backendName:"cpu",kernelFunc:qS},JS=QC((e=>Math.expm1(e))),ZS=RE(Ht,JS),QS={kernelName:Ht,backendName:"cpu",kernelFunc:ZS},eN=zE(((e,t)=>e*t)),tN=rC(((e,t,n,r)=>({real:e*n-t*r,imag:e*r+t*n}))),nN=nC(On,eN,tN),rN={kernelName:On,backendName:"cpu",kernelFunc:nN},aN=zE(((e,t)=>e/t)),sN=nC(Pt,aN),iN={kernelName:Pt,backendName:"cpu",kernelFunc:sN},oN=zE(((e,t)=>e-t)),lN=rC(((e,t,n,r)=>({real:e-n,imag:t-r}))),uN=nC(kr,oN,lN),cN={kernelName:kr,backendName:"cpu",kernelFunc:uN};function hN(e,t,n){const r=e.shape,a=r[0],s=r[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[a,s],c=re(u),h=me("float32",c),f=me("float32",c);for(let e=0;e{const{image:r}=e,a=n,s=me(r.dtype,re(r.shape)),[i,o,l,u]=r.shape,c=a.data.get(r.dataId).values;for(let e=0;e=0&&fMath.floor(e))),vN=RE(qt,bN),wN={kernelName:qt,backendName:"cpu",kernelFunc:vN},_N=zE(((e,t)=>Math.floor(e/t))),xN=nC(Yt,_N,null,"int32"),kN={kernelName:Yt,backendName:"cpu",kernelFunc:xN},EN={kernelName:zr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=hS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=iC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=KE(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},CN={kernelName:Wr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r;let m=SS({inputs:{x:a,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f}});if(i){const e=m;m=iC({inputs:{a:m,b:i},backend:n}),n.disposeIntermediateTensorInfo(e)}if(d){const e=m;m=KE(n,m,d,o,p),n.disposeIntermediateTensorInfo(e)}return m}},SN={kernelName:Qt,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=re(r.shape),i=a.shape,o=i[i.length-1],[l,u,c,h]=wi(r,a);if(0===u)return n.makeTensorInfo(l,r.dtype,[]);const f=Vs([u,c],r.dtype),d=n.data.get(a.dataId).values,p=n.data.get(r.dataId).values;for(let e=0;e=s/c)throw new Error(`Invalid indices: ${t} does not index into ${r.shape}`);for(let t=0;te>t?1:0)),DN=nC(en,AN,null,"bool"),TN={kernelName:en,backendName:"cpu",kernelFunc:DN},FN=zE(((e,t)=>e>=t?1:0)),RN=nC(tn,FN,null,"bool"),ON={kernelName:tn,backendName:"cpu",kernelFunc:RN},BN={kernelName:rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t,a=re(r.shape),s=r.shape[r.shape.length-1],i=lC({inputs:{x:r},backend:n,attrs:{shape:[a/s,s]}}),o=hN(i,!0,n),l=lC({inputs:{x:o},backend:n,attrs:{shape:r.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}},MN=FE(sn,(e=>Number.isFinite(e)?1:0),"bool"),$N={kernelName:sn,backendName:"cpu",kernelFunc:MN},PN=FE(on,(e=>Math.abs(e)===1/0?1:0),"bool"),LN={kernelName:on,backendName:"cpu",kernelFunc:PN},zN=FE(ln,(e=>Number.isNaN(e)?1:0),"bool"),WN={kernelName:ln,backendName:"cpu",kernelFunc:zN},UN=zE(((e,t)=>ee<=t?1:0)),GN=nC(hn,HN,null,"bool"),XN={kernelName:hn,backendName:"cpu",kernelFunc:GN};function KN(e,t,n){const r=(t-e)/(n-1),a=Re(n,"float32");a[0]=e;for(let e=1;eMath.log(e))),JN=RE(dn,YN),ZN={kernelName:dn,backendName:"cpu",kernelFunc:JN},QN=FE(pn,(e=>Math.log1p(e))),eI={kernelName:pn,backendName:"cpu",kernelFunc:QN},tI=zE(((e,t)=>e&&t)),nI=nC(mn,tI,null,"bool"),rI={kernelName:mn,backendName:"cpu",kernelFunc:nI},aI=FE(gn,(e=>e?0:1),"bool"),sI={kernelName:gn,backendName:"cpu",kernelFunc:aI},iI=zE(((e,t)=>e||t)),oI=nC(yn,iI,null,"bool"),lI={kernelName:yn,backendName:"cpu",kernelFunc:oI},uI={kernelName:vn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r;AE(a,"LRN");const u=a.shape[3],c=u-1,h=n.data.get(a.dataId).values,f=re(a.shape),d=new Float32Array(f);function p(e){const t=e%u;let n=e-t+Math.max(0,t-s);const r=e-t+Math.min(t+s,c);let a=0;for(;n<=r;n++){const e=h[n];a+=e*e}return a}for(let e=0;es&&(s=t)}a[n]=s}return a}function fI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=n;let l=a.shape;const u=l.length,c=de(s,l);let h=c;const f=ju(h,u);let d=o.data.get(a.dataId).values;if(null!=f){const e=new Array(u);for(let t=0;tMath.max(e,t))),mI=nC(xn,pI),gI={kernelName:xn,backendName:"cpu",kernelFunc:mI},yI={kernelName:kn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;AE(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(kl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=dl(a.shape,s,i,1,o,l);let c;if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))c=ME({inputs:{x:a},backend:n});else{const e=n.data.get(a.dataId).values,t=Ae(a.shape),r=PC(e,a.shape,a.dtype,t,u,"max");c=n.makeTensorInfo(u.outShape,a.dtype,r.values)}return c}},bI={kernelName:Cn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r;AE(a,"maxPool3d");const c=pl(a.shape,s,i,1,o,l,u),h=zC(n.data.get(a.dataId).values,a.shape,a.dtype,Ae(a.shape),c,"max");return n.makeTensorInfo(h.shape,"float32",h.values)}},vI={kernelName:Sn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=r;AE([a,s],"maxPool3DGrad");const c=pl(s.shape,i,o,1,l,u),h=function(e,t){const n=Vs(t.outShape,"int32"),r=t.strideDepth,a=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,h=t.effectiveFilterWidth,f=t.padInfo.front,d=t.padInfo.top,p=t.padInfo.left;for(let m=0;m=E&&(E=o,C=n*c*h+a*c+i)}}}n.set(C,m,y,r,a,g)}}}return n}(n.bufferSync(s),c),f=c.strideDepth,d=c.strideHeight,p=c.strideWidth,m=c.dilationDepth,g=c.dilationHeight,y=c.dilationWidth,b=c.effectiveFilterDepth,v=c.effectiveFilterHeight,w=c.effectiveFilterWidth,_=b-1-c.padInfo.front,x=w-1-c.padInfo.left,k=v-1-c.padInfo.top,E=Vs(s.shape,"float32"),C=n.bufferSync(a);for(let e=0;e=c.outDepth||Math.floor(r)!==r))for(let a=0;a=c.outHeight||Math.floor(s)!==s))for(let i=0;i=c.outWidth||Math.floor(u)!==u)continue;const f=b*v*w-1-h.get(e,r,s,u,t)===n*v*w+a*w+i?1:0;0!==f&&(l+=C.get(e,r,s,u,t)*f)}}}E.set(l,e,n,r,a,t)}return n.makeTensorInfo(E.shape,E.dtype,E.values)}},wI={kernelName:En,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;AE([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=dl(o.shape,l,u,1,c,h),d=n.data.get(o.dataId).values,p=Vs(f.outShape,o.dtype,LC(d,o.shape,o.dtype,f).values),m=f.strideHeight,g=f.strideWidth,y=f.dilationHeight,b=f.dilationWidth,v=f.effectiveFilterHeight,w=f.effectiveFilterWidth,_=w-1-f.padInfo.left,x=v-1-f.padInfo.top,k=Vs(o.shape,"float32"),E=n.data.get(a.dataId).values,C=Vs(a.shape,"float32",E);for(let e=0;e=f.outHeight||Math.floor(r)!==r))for(let a=0;a=f.outWidth||Math.floor(o)!==o)continue;const l=v*w-1-p.get(e,r,o,t)===n*w+a?1:0;0!==l&&(i+=C.get(e,r,o,t)*l)}}k.set(i,e,n,r,t)}return n.makeTensorInfo(k.shape,k.dtype,k.values)}},_I={kernelName:Nn,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;AE(r,"MaxPoolWithArgmax");const u=l.data.get(r.dataId).values,c=dl(r.shape,a,s,[1,1],i),[h,f]=function(e,t,n,r,a){const s=PC(e,0,n,Ae(t),a,"max"),i=LC(e,t,n,a,!0,r);return[s.values,i.values]}(u,r.shape,r.dtype,o,c),d=l.write(h,c.outShape,r.dtype),p=l.write(f,c.outShape,r.dtype);return[{dataId:d,shape:c.outShape,dtype:r.dtype},{dataId:p,shape:c.outShape,dtype:"int32"}]}};function xI(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;let o;AE(a,"sum"),o="bool"===a.dtype?eC({inputs:{x:a},backend:n,attrs:{dtype:"int32"}}):ME({inputs:{x:a},backend:n});const l=o.shape.length,u=de(s,o.shape),c=ju(u,l);let h=u,f=o;null!=c&&(f=_C({inputs:{x:o},backend:n,attrs:{perm:c}}),h=Gu(h.length,l)),Vu("sum",h,f.shape.length);const[d,p]=Wu(f.shape,h);let m=JE(n,d,Sa(f.dtype,"int32"));const g=re(p),y=n.data.get(m.dataId).values,b=n.data.get(f.dataId).values;for(let e=0;en.disposeIntermediateTensorInfo(e))),d}},CI={kernelName:An,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r;AE(a,"min");const o=de(s,a.shape);let l=o;const u=ju(l,a.shape.length);let c=a;null!=u&&(c=_C({inputs:{x:a},backend:n,attrs:{perm:u}}),l=Gu(l.length,a.shape.length)),Vu("min",l,c.shape.length);const[h,f]=Wu(c.shape,l),d=re(f),p=Re(re(h),c.dtype),m=n.data.get(c.dataId).values;for(let e=0;eMath.min(e,t))),NI=nC(Dn,SI),II={kernelName:Dn,backendName:"cpu",kernelFunc:NI},AI={kernelName:Tn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,mode:i}=r;AE(a,"mirrorPad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=s.map(((e,t)=>e[0]+a.shape[t])),c="reflect"===i?0:1,h=n.data.get(a.dataId).values,f=a.shape.length,d=Ae(a.shape),p=re(o),m=o.length,g=Ae(o),y=me(a.dtype,p);for(let e=0;e=u[e]&&(t[e]=2*(u[e]-1)-t[e]+c);t=t.map(((e,t)=>e-l[t]));const n=Me(t,f,d);y[e]=h[n]}return{dataId:n.write(y,o,a.dtype),shape:o,dtype:a.dtype}}},DI=zE(((e,t)=>{const n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t})),TI=nC(Fn,DI),FI={kernelName:Fn,backendName:"cpu",kernelFunc:TI};function RI(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=a.shape.length;let o=s;if(-1===o&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);const l=de([o],a.shape),u=fI({inputs:{x:a},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),c=Uu(u.shape,l),h=lC({inputs:{x:u},backend:n,attrs:{shape:c}}),f=uN({inputs:{a,b:h},backend:n}),d=XS({inputs:{x:f},backend:n}),p=xI({inputs:{x:d},backend:n,attrs:{axis:l,keepDims:!1}}),m=lC({inputs:{x:p},backend:n,attrs:{shape:c}}),g=sN({inputs:{a:d,b:m},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),g}const OI={kernelName:wr,backendName:"cpu",kernelFunc:RI},BI={kernelName:Rn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r;AE(a,"multinomial");const l=o?a:RI({inputs:{logits:a},backend:n,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],h=n.data.get(l.dataId).values,f=[u,s],d=Re(re(f),"int32");for(let e=0;ee!==t?1:0)),HI=nC(Mn,jI,null,"bool"),GI={kernelName:Mn,backendName:"cpu",kernelFunc:HI},XI={kernelName:Wn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r;AE(a,"oneHot");const l=re(a.shape),u=new Float32Array(l*s);u.fill(o);const c=n.data.get(a.dataId).values;for(let e=0;e=0&&c[e]{ee(s,e.shape,"All tensors passed to stack must have matching shapes"),Q(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=uS({inputs:t.map((e=>{const t=qS({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}const ZI={kernelName:Un,backendName:"cpu",kernelFunc:JI},QI={kernelName:Vn,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r;AE(a,"pad");const o=s.map(((e,t)=>e[0]+a.shape[t]+e[1])),l=s.map((e=>e[0])),u=n.data.get(a.dataId).values,c=re(a.shape),h=a.shape.length,f=Ae(a.shape),d=re(o),p=o.length,m=Ae(o),g=me(a.dtype,d);0!==i&&g.fill(i);for(let e=0;ee+l[t])),p,m)]=u[e];return{dataId:n.write(g,o,a.dtype),shape:o,dtype:a.dtype}}},eA=zE(((e,t)=>Math.pow(e,t))),tA=nC(Hn,eA),nA={kernelName:Hn,backendName:"cpu",kernelFunc:tA};function rA(e,t,n,r){const[a,s]=Wu(e,r),i=Sa(t,"int32"),o=Re(re(a),i),l=re(s);for(let e=0;en.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(y,g,p)}};function sA(e,t,n,r){if(e===t||e1)return Re(0,r);const a=Re(Math.abs(Math.ceil((t-e)/n)),r);t1/e)),lA={kernelName:Yn,backendName:"cpu",kernelFunc:oA},uA={kernelName:tr,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r;AE(a,"resizeBilinear");const l=Ae(a.shape),[u,c]=o,[h,f,d,p]=a.shape,m=n.data.get(a.dataId).values,g=new Float32Array(re([h,u,c,p])),y=[s&&u>1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c];let v=0;const w=y[0]/b[0],_=y[1]/b[1];for(let e=0;e1?u-1:u,i&&d>1?c-1:c],g=[i&&f>1?f-1:f,i&&d>1?d-1:d],y=m[0]/g[0],b=m[1]/g[1],v=n.data.get(s.dataId).values;let w=0;for(let e=0;e1?f-1:f,s&&c>1?d-1:d],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],v=y[0]/b[0],w=y[1]/b[1];let _=0;for(let e=0;e1?c-1:c,i&&p>1?h-1:h],b=[i&&d>1?d-1:d,i&&p>1?p-1:p],v=y[0]/b[0],w=y[1]/b[1],_=1/v,x=1/w,k=2*Math.ceil(_)+2,E=2*Math.ceil(x)+2;for(let e=0;e=d)continue;const f=t+u*l[1],m=u*v;if(e===Math.min(c-1,i?Math.round(m):Math.floor(m)))for(let e=0;e=p)continue;const a=f+t*l[2],s=t*w;r===Math.min(h-1,i?Math.round(s):Math.floor(s))&&(o+=g[a+n])}}m[s+n]=o}}}}return n.makeTensorInfo(a.shape,a.dtype,m)}},dA={kernelName:ar,backendName:"cpu",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r;AE(a,"reverse");const i=a.shape.length,o=de(s,a.shape);if(0===i)return ME({inputs:{x:a},backend:n});const l=new da(a.shape,a.dtype),u=n.bufferSync(a);for(let e=0;en[e]=a.shape[e]-1-n[e])),l.set(u.get(...n),...t)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}},pA={kernelName:Pr,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=me(r.dtype,re(r.shape)),[u,c,h,f]=r.shape,[d,p]=Uf(i,c,h),m=Math.sin(a),g=Math.cos(a),y=o.data.get(r.dataId).values;for(let e=0;e=0&&w=0&&_{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1})),gA={kernelName:sr,backendName:"cpu",kernelFunc:mA},yA=QC((e=>1/Math.sqrt(e))),bA=RE(ir,yA),vA={kernelName:ir,backendName:"cpu",kernelFunc:bA};function wA(e,t,n,r,a,s,i,o,l,u){const c=[r/a,a],h=e.values,f=t.values;if(0===r)return Vs(n,t.dtype);const d=Vs(c,t.dtype);d.values.fill(l);for(let e=0;e=r/a)throw new Error(`Invalid indices: ${s} does not index into ${n}`);for(let n=0;n1||1===a.shape.length?1:re(a.shape.slice(1));for(let e=0;ee>=0?EA*e:kA*(Math.exp(e)-1))),SA={kernelName:ur,backendName:"cpu",kernelFunc:CA},NA=FE(pr,(e=>1/(1+Math.exp(-e)))),IA={kernelName:pr,backendName:"cpu",kernelFunc:NA},AA=FE(dr,(e=>e<0?-1:e>0?1:0)),DA={kernelName:dr,backendName:"cpu",kernelFunc:AA},TA=FE(hr,(e=>Math.sin(e))),FA={kernelName:hr,backendName:"cpu",kernelFunc:TA},RA=FE(fr,(e=>Math.sinh(e))),OA={kernelName:fr,backendName:"cpu",kernelFunc:RA},BA=Math.log(1.1920928955078125e-7)+2,MA=FE(mr,(e=>{const t=e>-BA,n=e{const t=[...c];t[o]=e;const r=XC({inputs:{x:a},backend:n,attrs:{begin:u,size:t}});return u[o]+=e,r}))}},WA=FE(gr,(e=>Math.sqrt(e))),UA={kernelName:gr,backendName:"cpu",kernelFunc:WA},VA={kernelName:xr,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:n}=e,r=t;AE(n,"square");const a=r.data.get(n.dataId).values,s=new Float32Array(a.length);for(let e=0;e{const n=e-t;return n*n})),HA=nC(_r,jA),GA={kernelName:_r,backendName:"cpu",kernelFunc:HA},XA=FE(Mr,((e,t)=>{const n=t;return isNaN(e)?NaN:e>0?1:n.alpha})),KA={kernelName:Mr,backendName:"cpu",kernelFunc:XA};function qA(e,t,n,r){const a=Vs(e,t.dtype);for(let e=0;e0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else{const e=qA(b,n.bufferSync(v),m,p);w=n.makeTensorInfo(e.shape,e.dtype,e.values)}const _=lC({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},JA=FE(Sr,(e=>Math.tan(e))),ZA={kernelName:Sr,backendName:"cpu",kernelFunc:JA},QA=FE(Nr,(e=>Math.tanh(e)));function eD(e,t){const n=new Array(e.rank);for(let r=0;rt.value-e.value));const i=t*r,c=l.subarray(i,i+r),h=u.subarray(i,i+r);for(let e=0;et-1)if(t<=1)n=0;else{const e=2*t;n-=e*Math.trunc(n/e),n>=t&&(n=e-n-1)}return K(0,n,t-1)}(e,t);case"wrap":return function(e,t){let n=e;if(n<0)if(t<=1)n=0;else{const e=t-1;n+=t*(Math.trunc(-n/e)+1)}else if(n>t-1)if(t<=1)n=0;else{const e=t-1;n-=t*Math.trunc(n/e)}return K(0,n,t-1)}(e,t);case"nearest":return function(e,t){return K(0,e,t-1)}(e,t);case"constant":default:return function(e,t){return e}(e)}}function rD(e,t,n,r,a,s,i,o,l,u,c){return 0<=o&&o{for(let n=0;nn.disposeIntermediateTensorInfo(e))),h}},qI];for(const e of oD)Xr(e);const lD={},uD={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function cD(e){if(!(e in lD)){const t=function(e){if(1!==e&&2!==e)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=function(e){if("undefined"!=typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("undefined"!=typeof document)return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}(e);return t.addEventListener("webglcontextlost",(t=>{t.preventDefault(),delete lD[e]}),!1),1===e?t.getContext("webgl",uD)||t.getContext("experimental-webgl",uD):t.getContext("webgl2",uD)}(e);if(null===t)return console.log("Could not get context for WebGL version",e),null;lD[e]=t}const t=lD[e];return t.isContextLost()?(delete lD[e],cD(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),lD[e])}var hD,fD,dD;function pD(e,t){return[t,e]}function mD(e){const t=re(e);return le(Math.ceil(t/4))}function gD(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function yD(e,t){const n=e;let r,a,s,i,o,l,u,c,h,f;return 2===ze().getNumber("WEBGL_VERSION")?(r=n.R32F,a=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,c=1,h=n.HALF_FLOAT,f=n.FLOAT):(r=e.RGBA,a=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,c=4,h=null!=t?t.HALF_FLOAT_OES:null,f=e.FLOAT),l=e.RGBA,{internalFormatFloat:r,internalFormatHalfFloat:a,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:h,textureTypeFloat:f}}function bD(e,t){const n=t();return ze().getBool("DEBUG")&&function(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+function(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}(e,t))}(e),n}function vD(e){return!!(ze().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||5.96e-8e.getExtension(t)),'Extension "'+t+'" not supported on this browser.')}!function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"}(hD||(hD={})),function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"}(fD||(fD={})),function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"}(dD||(dD={}));const _D=/ERROR: [0-9]+:([0-9]+):/g;function xD(e,t){if(bD(e,(()=>e.validateProgram(t))),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function kD(e,t,n,r,a,s,i){const o=e.getAttribLocation(t,n);return-1!==o&&(bD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,r))),bD(e,(()=>e.vertexAttribPointer(o,a,e.FLOAT,!1,s,i))),bD(e,(()=>e.enableVertexAttribArray(o))),!0)}function ED(e,t,n,r){bD(e,(()=>function(e,t,n){(function(e,t){const n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(rn)throw new Error(`textureUnit must be in [gl.TEXTURE0, gl.TEXTURE${n}].`)})(e,n),bD(e,(()=>e.activeTexture(e.TEXTURE0+n))),bD(e,(()=>e.bindTexture(e.TEXTURE_2D,t)))}(e,t,r))),bD(e,(()=>e.uniform1i(n,r)))}function CD(e,t,n){bD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,n))),bD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)))}function SD(e,t){bD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,t))),bD(e,(()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)))}function ND(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+function(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}(e,t))}function ID(e,t,n){const r=bD(e,(()=>t()));if(null==r)throw new Error(n);return r}function AD(e,t=2){return re(e.slice(0,e.length-t))}function DD(e){if(0===e.length)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function TD(e){let t=[1,1,1];return 0===e.length||1===e.length&&1===e[0]||(t=[AD(e),...DD(e)]),t}function FD(e){return e%2==0}function RD(e,t){if(se(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){const n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(FD(n)&&FD(r)&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&FD(e[0])&&FD(t[0])}let OD,BD;function MD(e,t){return null!=e.getExtension(t)}function $D(e){try{if(null!=cD(e))return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function PD(e){const t=yD(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(r),a}function LD(e,t){Array.isArray(e)||(e=[e]),e.forEach((e=>{null!=e&&Q("complex64"!==e.dtype,(()=>`${t} does not support complex64 tensors in the WebGL backend.`))}))}const zD=ze();function WD(){let e,t,n,r,a,s,i,o,l,u;return 2===ze().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",n="out",r="in",a="texture",s="outputColor",i="out vec4 outputColor;",o="\n bool isnan_custom(float val) {\n return (val > 0.0 || val < 0.0) ? false : val != 0.0;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n ",l="",u="\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "):(e="",t="attribute",n="varying",r="varying",a="texture2D",s="gl_FragColor",i="",o="\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n ",l="\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n ",u="\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n "),{version:e,attribute:t,varyingVs:n,varyingFs:r,texture2D:a,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function UD(e,t,n="index"){const r=Ae(t);return r.map(((t,a)=>`int ${e[a]} = ${n} / ${t}; ${a===r.length-1?`int ${e[a+1]} = ${n} - ${e[a]} * ${t}`:`index -= ${e[a]} * ${t}`};`)).join("")}function VD(e){const t=Ae(e).map((e=>e.toString()));return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}zD.registerFlag("HAS_WEBGL",(()=>zD.getNumber("WEBGL_VERSION")>0)),zD.registerFlag("WEBGL_VERSION",(()=>$D(2)?2:$D(1)?1:0)),zD.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",(()=>!1)),zD.registerFlag("WEBGL_BUFFER_SUPPORTED",(()=>2===zD.get("WEBGL_VERSION"))),zD.registerFlag("WEBGL_CPU_FORWARD",(()=>!0)),zD.registerFlag("WEBGL_FORCE_F16_TEXTURES",(()=>!1)),zD.registerFlag("WEBGL_PACK",(()=>zD.getBool("HAS_WEBGL"))),zD.registerFlag("WEBGL_PACK_NORMALIZATION",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_PACK_CLIP",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_PACK_DEPTHWISECONV",(()=>!1)),zD.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_PACK_REDUCE",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_LAZILY_UNPACK",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_CONV_IM2COL",(()=>zD.getBool("WEBGL_PACK"))),zD.registerFlag("WEBGL_MAX_TEXTURE_SIZE",(()=>function(e){if(null==OD){const t=cD(e);OD=t.getParameter(t.MAX_TEXTURE_SIZE)}return OD}(zD.getNumber("WEBGL_VERSION")))),zD.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",(()=>function(e){if(null==BD){const t=cD(e);BD=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,BD)}(zD.getNumber("WEBGL_VERSION")))),zD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",(()=>{const e=zD.getNumber("WEBGL_VERSION");return 0===e?0:function(e){if(0===e)return 0;let t;const n=cD(e);return t=MD(n,"EXT_disjoint_timer_query_webgl2")&&2===e?2:MD(n,"EXT_disjoint_timer_query")?1:0,t}(e)})),zD.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",(()=>zD.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!La())),zD.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",(()=>function(e){if(0===e)return!1;const t=cD(e);if(1===e){if(!MD(t,"OES_texture_float"))return!1}else if(!MD(t,"EXT_color_buffer_float"))return!1;return PD(t)}(zD.getNumber("WEBGL_VERSION")))),zD.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",(()=>!zD.getBool("WEBGL_FORCE_F16_TEXTURES")&&zD.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))),zD.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",(()=>function(e){if(0===e)return!1;const t=cD(e);if(1!==e){if(MD(t,"EXT_color_buffer_float"))return PD(t);const e="EXT_color_buffer_half_float";if(MD(t,e)){const n=t.getExtension(e);return function(e,t){const n=yD(e,t),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,1,1,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);const a=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);const s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(a),s}(t,n)}return!1}return!!MD(t,"OES_texture_float")&&!!MD(t,"WEBGL_color_buffer_float")&&PD(t)}(zD.getNumber("WEBGL_VERSION")))),zD.registerFlag("WEBGL_FENCE_API_ENABLED",(()=>{return 2===(e=zD.getNumber("WEBGL_VERSION"))&&null!=cD(e).fenceSync;var e})),zD.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",(()=>zD.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0)),zD.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",(()=>-1),(e=>{if(e<0&&-1!==e)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)})),zD.registerFlag("WEBGL_FLUSH_THRESHOLD",(()=>La()&&zD.getBool("IS_CHROME")?1:-1),(e=>{if(e<0&&-1!==e)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)}));const jD="\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n";class HD{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=hD.DENSE;const t=mD(e),n=WD();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${UD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${n.output} = result;\n }\n `}}class GD{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=hD.DENSE;const t=mD(e),n=WD();this.outputShape=e,this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${UD(["r","c","d"],e)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${n.output} = result;\n }\n `}}class XD{constructor(e){this.variableNames=["A"],this.outTexUsage=fD.DOWNLOAD;const t=WD();this.outputShape=e,this.userCode=`\n ${jD}\n\n void main() {\n float x = getAAtOutCoords();\n ${t.output} = encode_float(x);\n }\n `}}class KD{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=fD.DOWNLOAD;const t=WD();this.outputShape=e,this.userCode=`\n ${jD}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${t.output} = encode_float(x);\n }\n `}}class qD{constructor(e,t,n=!1){this.variableNames=["A"];const r=WD(),[a,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=`\n ${VD(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n int flatIndex = getFlatIndex(coords);\n int offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n int r = flatIndex / ${s};\n int c = imod(flatIndex, ${s});\n vec2 uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n vec4 values = ${r.texture2D}(A, uv);\n\n float result;\n\n if(offset == 0) {\n result = values[0];\n } else if(offset == 1) {\n result = values[1];\n } else if(offset == 2) {\n result = values[2];\n } else {\n result = values[3];\n }\n\n ${r.output} = vec4(${i}, 0., 0., 0.);\n }\n `}}class YD{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const r=WD(),[a,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let n=0;n<=1;n++){const o=2*t+n;i+=`\n localCoords = coords;\n if(localCoords[2] + ${n} < ${e[2]}) {\n localCoords[2] += ${n};\n if(localCoords[1] + ${t} < ${e[1]}) {\n localCoords[1] += ${t};\n\n flatIndex = getFlatIndex(localCoords);\n offset = imod(flatIndex, 4);\n\n flatIndex = idiv(flatIndex, 4, 1.);\n\n r = flatIndex / ${s};\n c = imod(flatIndex, ${s});\n uv = (vec2(c, r) + halfCR) / vec2(${s}.0, ${a}.0);\n values = ${r.texture2D}(A, uv);\n\n if(offset == 0) {\n result[${o}] = values[0];\n } else if(offset == 1) {\n result[${o}] = values[1];\n } else if(offset == 2) {\n result[${o}] = values[2];\n } else {\n result[${o}] = values[3];\n }\n }\n }\n `}this.userCode=`\n ${VD(e)}\n\n void main() {\n ivec3 coords = getOutputCoords();\n\n vec4 result = vec4(0.);\n int flatIndex, r, c, offset;\n ivec3 localCoords;\n vec2 uv;\n vec4 values;\n\n ${i}\n\n ${r.output} = ${o};\n }\n `}}function JD(e,t,n,r,a,s){!function(e,t){const n=ze().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw new Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>n||t>n)throw new Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${n}x${n}].`)}(t,n);const i=function(e){return ID(e,(()=>e.createTexture()),"Unable to create WebGLTexture.")}(e),o=e.TEXTURE_2D;return bD(e,(()=>e.bindTexture(o,i))),bD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE))),bD(e,(()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE))),bD(e,(()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST))),bD(e,(()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST))),bD(e,(()=>e.texImage2D(o,0,r,t,n,0,a,s,null))),bD(e,(()=>e.bindTexture(e.TEXTURE_2D,null))),i}function ZD(e){return e.internalFormatFloat}function QD(e){return e.internalFormatHalfFloat}function eT(e){return e.downloadTextureFormat}function tT(e){return e.internalFormatPackedFloat}function nT(e){return e.internalFormatPackedHalfFloat}class rT{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=ze().getNumber("WEBGL_VERSION");null!=e?(this.gl=e,function(e,t){lD[e]=t}(t,e)):this.gl=cD(t);let n="WEBGL_color_buffer_float";const r="EXT_color_buffer_half_float";if(1===ze().getNumber("WEBGL_VERSION")){const e="OES_texture_float",t="OES_texture_half_float";if(this.textureFloatExtension=wD(this.gl,e),MD(this.gl,t))this.textureHalfFloatExtension=wD(this.gl,t);else if(ze().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),MD(this.gl,r))this.colorBufferHalfFloatExtension=wD(this.gl,r);else if(ze().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",MD(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else{if(!MD(this.gl,r))throw new Error("GL context does not support color renderable floats");this.colorBufferHalfFloatExtension=this.gl.getExtension(r)}this.vertexBuffer=function(e){return function(e,t){const n=ID(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return bD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),bD(e,(()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}(this.gl),this.indexBuffer=function(e){return function(e,t){const n=ID(e,(()=>e.createBuffer()),"Unable to create WebGLBuffer");return bD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n))),bD(e,(()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW))),n}(e,new Uint16Array([0,1,2,2,1,3]))}(this.gl),this.framebuffer=function(e){return ID(e,(()=>e.createFramebuffer()),"Unable to create WebGLFramebuffer.")}(this.gl),this.textureConfig=yD(this.gl,this.textureHalfFloatExtension)}get debug(){return ze().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),null!=this.outputTexture&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;bD(e,(()=>e.finish())),bD(e,(()=>e.bindFramebuffer(e.FRAMEBUFFER,null))),bD(e,(()=>e.deleteFramebuffer(this.framebuffer))),bD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,null))),bD(e,(()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null))),bD(e,(()=>e.deleteBuffer(this.indexBuffer))),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=pD(t,n);return JD(e,a,s,ZD(r),r.textureFormatFloat,e.FLOAT)}(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=pD(t,n);return JD(e,a,s,QD(r),r.textureFormatFloat,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=pD(t,n);return JD(e,a,s,eT(r),e.RGBA,e.UNSIGNED_BYTE)}(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),function(e,t,n){bD(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),n.data instanceof Uint8Array?bD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data))):bD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n))),bD(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,r){this.throwIfDisposed(),function(e,t,n,r,a,s){let i,o,l;bD(e,(()=>e.bindTexture(e.TEXTURE_2D,t))),a instanceof Uint8Array?(i=new Uint8Array(n*r*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*r*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(a),bD(e,(()=>e.texImage2D(e.TEXTURE_2D,0,l,n,r,0,e.RGBA,o,i))),bD(e,(()=>e.bindTexture(e.TEXTURE_2D,null)))}(this.gl,e,t,n,r,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=gD(t,n);return JD(e,a,s,nT(r),e.RGBA,r.textureTypeHalfFloat)}(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),function(e,t,n,r){const[a,s]=gD(t,n);return JD(e,a,s,tT(r),e.RGBA,e.FLOAT)}(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(SD(this.gl,this.framebuffer),this.outputTexture=null),bD(this.gl,(()=>this.gl.deleteTexture(e)))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n,r){const[a,s]=pD(t,n),i=new Uint8Array(t*n*4);return bD(e,(()=>e.readPixels(0,0,a,s,r.downloadTextureFormat,e.UNSIGNED_BYTE,i))),new Float32Array(i.buffer)}(this.gl,t,n,this.textureConfig)))}downloadPackedMatrixFromBuffer(e,t,n,r,a,s){return function(e,t,n,r,a,s,i,o){const l=e,u=new Float32Array(function(e,t){const[n,r]=gD(e,t);return n*r*4}(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}(this.gl,e,0,0,0,a,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return function(e,t,n){const r=e,a=new Float32Array(n);return r.bindBuffer(r.PIXEL_PACK_BUFFER,t),r.getBufferSubData(r.PIXEL_PACK_BUFFER,0,a),r.bindBuffer(r.PIXEL_PACK_BUFFER,null),a}(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);const r=function(e,t,n,r){const a=e.createBuffer();bD(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,a)));const s=16*t*n;return bD(e,(()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ))),bD(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0))),bD(e,(()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null))),a}(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ze().getBool("WEBGL_FENCE_API_ENABLED")){const r=e,a=r.fenceSync(r.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{const e=r.clientWaitSync(a,0,0);return e===r.ALREADY_SIGNALED||e===r.CONDITION_SATISFIED},t=a}else ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,(()=>function(e,t,n){const r=new Float32Array(t*n*4);return bD(e,(()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,r))),r}(this.gl,t,n)))}createProgram(e){this.throwIfDisposed();const t=this.gl,n=function(e,t){const n=ID(e,(()=>e.createShader(e.FRAGMENT_SHADER)),"Unable to create fragment WebGLShader.");if(bD(e,(()=>e.shaderSource(n,t))),bD(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw function(e,t){const n=_D.exec(t);if(null==n)return console.log(`Couldn't parse line number in error: ${t}`),void console.log(e);const r=+n[1],a=e.split("\n"),s=a.length.toString().length+2,i=a.map(((e,t)=>ce((t+1).toString(),s)+e));let o=0;for(let e=0;ee.createShader(e.VERTEX_SHADER)),"Unable to create vertex WebGLShader.");if(bD(e,(()=>e.shaderSource(n,t))),bD(e,(()=>e.compileShader(n))),!1===e.getShaderParameter(n,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}(e,`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`)}(t),a=function(e){return ID(e,(()=>e.createProgram()),"Unable to create WebGLProgram.")}(t);return bD(t,(()=>t.attachShader(a,r))),bD(t,(()=>t.attachShader(a,n))),function(e,t){if(bD(e,(()=>e.linkProgram(t))),!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}(t,a),this.debug&&xD(t,a),this.vertexAttrsAreBound||(this.setProgram(a),this.vertexAttrsAreBound=function(e,t,n){return bD(e,(()=>e.bindBuffer(e.ARRAY_BUFFER,n))),kD(e,t,"clipSpacePos",n,3,20,0)&&kD(e,t,"uv",n,2,20,12)}(t,this.program,this.vertexBuffer)),a}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&bD(this.gl,(()=>this.gl.deleteProgram(e)))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&xD(this.gl,this.program),bD(this.gl,(()=>this.gl.useProgram(e)))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?function(e,t,n){return ID(e,(()=>e.getUniformLocation(t,n)),'uniform "'+n+'" not present in program.')}(this.gl,e,t):function(e,t,n){return e.getUniformLocation(t,n)}(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),bD(this.gl,(()=>this.gl.getAttribLocation(e,t)))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),ED(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();const[r,a]=gD(t,n);this.setOutputMatrixTextureDriver(e,r,a)}setOutputMatrixWriteRegion(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)}setOutputPackedMatrixWriteRegion(e,t,n,r){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&xD(this.gl,this.program),ND(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),bD(e,(()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),bD(this.gl,(()=>this.gl.finish()))}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=wD(this.gl,2===ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){const e=this.gl,t=this.getQueryTimerExtensionWebGL2();return void e.endQuery(t.TIME_ELAPSED_EXT)}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await he((()=>this.disposed||this.isQueryAvailable(e,ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")))),this.getQueryTime(e,ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){const t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{const t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){const t=this.gl,n=this.getQueryTimerExtensionWebGL2(),r=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),r&&!this.disjoint}{const t=this.getQueryTimerExtensionWebGL1(),n=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise((t=>{this.addItemToPoll((()=>e.isFencePassed()),(()=>t()))}))}pollItems(){const e=function(e){let t=0;for(;te.isDoneFn)));for(let t=0;t<=e;++t){const{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||he((()=>(this.pollItems(),0===this.itemsToPoll.length)))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),CD(this.gl,e,this.framebuffer),this.debug&&ND(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(CD(this.gl,this.outputTexture,this.framebuffer),this.debug&&ND(this.gl)):SD(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();const r=this.gl;CD(r,e,this.framebuffer),this.debug&&ND(r),this.outputTexture=e,bD(r,(()=>r.viewport(0,0,t,n))),bD(r,(()=>r.scissor(0,0,t,n)))}setOutputMatrixWriteRegionDriver(e,t,n,r){this.throwIfDisposed(),bD(this.gl,(()=>this.gl.scissor(e,t,n,r)))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw new Error("No GPU program is currently set.")}}const{getBroadcastDims:aT}=g;function sT(e,t,n,r){const a=[];e.forEach((e=>{const t=re(e.shapeInfo.logicalShape);e.shapeInfo.isUniform?a.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(a.push(`uniform sampler2D ${e.name};`),a.push(`uniform int offset${e.name};`))}));const s=a.join("\n"),i=e.map((e=>function(e,t,n=!1){let r="";r+=n?oT(e):iT(e);const a=e.shapeInfo.logicalShape,s=t.logicalShape;return a.length<=s.length&&(r+=n?function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=aT(e.shapeInfo.logicalShape,t.logicalShape),l=pT(i),u=i-s;let c;const h=["x","y","z","w","u","v"];c=0===s?"":i<2&&o.length>=1?"coords = 0;":o.map((e=>`coords.${h[e+u]} = 0;`)).join("\n");let f="";f=i<2&&s>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${h[t+u]}`)).join(", ");let d="return outputValue;";const p=1===re(e.shapeInfo.logicalShape),m=1===re(t.logicalShape);if(1!==s||p||m){if(p&&!m)d=1===i?"\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n ":"\n return vec4(outputValue.x);\n ";else if(o.length){const e=s-2,t=s-1;o.indexOf(e)>-1&&o.indexOf(t)>-1?d="return vec4(outputValue.x);":o.indexOf(e)>-1?d="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":o.indexOf(t)>-1&&(d="return vec4(outputValue.xx, outputValue.zz);")}}else d="\n return vec4(outputValue.xy, outputValue.xy);\n ";return`\n vec4 ${a}() {\n ${l} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${r}(${f});\n ${d}\n }\n `}(e,t):function(e,t){const n=e.name,r=n.charAt(0).toUpperCase()+n.slice(1),a="get"+r+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&null==e.shapeInfo.flatOffset&&se(i,s))return`\n float ${a}() {\n return sampleTexture(${n}, resultUV);\n }\n `;const u=pT(l),c=aT(e.shapeInfo.logicalShape,t.logicalShape),h=l-o;let f;const d=["x","y","z","w","u","v"];f=0===o?"":l<2&&c.length>=1?"coords = 0;":c.map((e=>`coords.${d[e+h]} = 0;`)).join("\n");let p="";return p=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map(((e,t)=>`coords.${d[t+h]}`)).join(", "),`\n float ${a}() {\n ${u} coords = getOutputCoords();\n ${f}\n return get${r}(${p});\n }\n `}(e,t)),r}(e,t,r))).join("\n"),o=t.texShape,l=WD(),u=function(e){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${e.texture2D}(textureSampler, uv).r;\n }\n `}(l);let c,h,f=function(e){return`${e.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${e.varyingFs} vec2 resultUV;\n ${e.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${e.defineSpecialNaN}\n ${e.defineSpecialInf}\n ${e.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${lT}\n ${uT}\n ${cT}\n `}(l);return t.isPacked?(c=function(e,t){switch(e.length){case 0:return"\n int getOutputCoords() {\n return 0;\n }\n ";case 1:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===n[0]?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:1===n[1]?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}(0,t);case 2:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(se(e,t))return`\n ivec2 getOutputCoords() {\n return 2 * ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]}));\n }\n `;const r=Math.ceil(e[1]/2);return`\n ivec2 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec2(r, c);\n }\n `}(e,t);case 3:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),a=r*Math.ceil(e[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${a};\n index -= b * ${a};\n\n int r = 2 * (index / ${r});\n int c = imod(index, ${r}) * 2;\n\n return ivec3(b, r, c);\n }\n `}(e,t);default:return function(e,t){const n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[e.length-1]/2),a=r*Math.ceil(e[e.length-2]/2);let s=a,i="",o="b, r, c";for(let t=2;te[t])).join(", ")}function yT(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach(((e,n)=>{const r=e.logicalShape,a=t[n],s=a.shape;if(!se(r,s))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${s} must match`);if(e.isUniform&&a.isUniform)return;const i=e.texShape,o=a.isUniform?null:a.texData.texShape;if(!se(i,o))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${o} must match`)}))}const{addImpl:bT,bincountImpl:vT,bincountReduceImpl:wT,ceilImpl:_T,concatImpl:xT,expImpl:kT,expm1Impl:ET,floorImpl:CT,gatherV2Impl:ST,greaterImpl:NT,lessImpl:IT,linSpaceImpl:AT,logImpl:DT,maxImpl:TT,maximumImpl:FT,minimumImpl:RT,multiplyImpl:OT,negImpl:BT,prodImpl:MT,rangeImpl:$T,rsqrtImpl:PT,simpleAbsImpl:LT,sliceImpl:zT,stridedSliceImpl:WT,subImpl:UT,tileImpl:VT,topKImpl:jT,transposeImpl:HT,uniqueImpl:GT}=U;function XT(e,t){return["x","y","z","w","u","v"].slice(0,t).map((t=>`${e}.${t}`))}function KT(e,t){return 1===t?[e]:XT(e,t)}class qT{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(0===t)this.userCode="\n void main() {\n setOutput(vec4(getA(), 0., 0., 0.));\n }\n ";else{const n=KT("rc",t),r=pT(t),a=function(e,t,n){if(1===e)return`rc > ${t[0]}`;let r="";for(let a=e-2;a= ${t[a]}`,a= ${t};\n bool rEdge = rp1 >= ${n};\n `}(t,e[e.length-1],e[e.length-2],n),i=function(e,t){const n=e.length,r=function(e,t){const n=[];for(let r=0;r<=1;r++)for(let a=0;a<=1;a++){let s=`${0===r?"r":"rp1"}, ${0===a?"c":"cp1"}`;for(let n=2;n= ${e[0]} ? 0. : getA(rc + 1),\n 0, 0`:`getA(${r[0]}),\n cEdge ? 0. : getA(${r[1]}),\n rEdge ? 0. : getA(${r[2]}),\n rEdge || cEdge ? 0. : getA(${r[3]})`}(e,n);this.userCode=`\n void main() {\n ${r} rc = getOutputCoords();\n\n if(${a}) {\n setOutput(vec4(0));\n } else {\n ${s}\n\n setOutput(vec4(${i}));\n }\n }\n `}}}class YT{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),n+=`\n ${t}\n ${e>0?"if(thisRC.y < rows && thisRC.z < cols){":""}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${e}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${e>0?"}":""}\n `}var r;this.userCode=`\n ${r=t,`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${UD(["r","c","d"],r)}\n return ivec3(r, c, d);\n }\n `}\n ${VD(e)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${e[1]};\n int cols = ${e[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}}class JT{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){const r=QT(t,n),a=eF(e,r,n);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);const s=ZT(e,r,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();const e=this.freeTextures[a].shift();return this.usedTextures[a].push(e),e}let i;return r===dD.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):r===dD.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):r===dD.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):r===dD.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):r===dD.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,r){if(null==this.freeTextures)return;const a=QT(n,r),s=eF(t,a,r);s in this.freeTextures||(this.freeTextures[s]=[]);const i=ZT(t,a,this.gpgpu.gl,this.gpgpu.textureConfig,r),o=ze().get("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==o&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;const l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(null!=this.freeTextures){for(const e in this.freeTextures)this.freeTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));for(const e in this.usedTextures)this.usedTextures[e].forEach((e=>{this.gpgpu.deleteMatrixTexture(e)}));this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function ZT(e,t,n,r,a){const s=function(e,t){switch(e){case dD.PACKED_2X2_FLOAT32:return tT(t);case dD.PACKED_2X2_FLOAT16:return nT(t);case dD.UNPACKED_FLOAT32:return ZD(t);case dD.UNPACKED_FLOAT16:return QD(t);case dD.PACKED_4X1_UNSIGNED_BYTE:return eT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}(t,r);let i;if(a){const[t,n]=gD(e[0],e[1]);i=t*n}else{const[t,n]=pD(e[0],e[1]);i=t*n}return i*function(e,t){const n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}(n,s)}function QT(e,t){if(e===fD.UPLOAD)return dD.PACKED_2X2_FLOAT32;if(e===fD.RENDER||null==e)return function(e){return ze().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?dD.PACKED_2X2_FLOAT32:dD.UNPACKED_FLOAT32:e?dD.PACKED_2X2_FLOAT16:dD.UNPACKED_FLOAT16}(t);if(e===fD.DOWNLOAD||e===fD.PIXELS)return dD.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function eF(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}class tF{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=`\n float unaryOperation(float x) {\n ${t}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}const nF="return abs(x);",rF="return x;";class aF{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${t}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}}class sF{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,n=KT("rc",t),r=pT(t),a=function(e,t){if(1===e)return"rc";let n="";for(let r=0;rt.push(e)))}const t=this.texData.get(e),{values:n,shape:r,slice:a,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(null!=a){let t;t=o?new aF(r,rF):new tF(r,rF);const n=this.runWebGLProgram(t,[{dataId:e,shape:r,dtype:s}],s),a=this.read(n.dataId);return this.disposeIntermediateTensorInfo(n),a}if(null!=n)return this.convertAndCacheOnCPU(e);if(!ze().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===ze().getNumber("WEBGL_VERSION"))throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l,u,c=null;if("complex64"!==s&&ze().get("WEBGL_BUFFER_SUPPORTED")){l=this.decode(e);const t=this.texData.get(l.dataId);c=this.gpgpu.createBufferFromTexture(t.texture,...mD(r))}if(this.pendingRead.set(e,[]),"complex64"!==s&&await this.gpgpu.createAndWaitForFence(),"complex64"===s){const e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]);u=ad(e[0],e[1])}else if(null==c)u=this.getValuesFromTexture(e);else{const e=re(r);u=this.gpgpu.downloadFloat32MatrixFromBuffer(c,e)}null!=l&&this.disposeIntermediateTensorInfo(l);const h=this.convertAndCacheOnCPU(e,u),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach((e=>e(h))),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&io().removeDataId(e,this),this.pendingDeletes--),h}bufferSync(e){const t=this.readSync(e.dataId);let n=t;if("string"===e.dtype)try{n=t.map((e=>aa(e)))}catch(e){throw new Error("Failed to decode encoded string bytes into utf-8")}return Vs(e.shape,e.dtype,n)}checkNumericalProblems(e){if(null!=e)for(let t=0;t0}async time(e){const t=this.activeTimers,n=[];let r=!1;null==this.programTimersStack?(this.programTimersStack=n,r=!0):this.activeTimers.push(n),this.activeTimers=n,e();const a=ne(this.activeTimers.map((e=>e.query))).filter((e=>null!=e)),s=ne(this.activeTimers.map((e=>e.name))).filter((e=>null!=e));this.activeTimers=t,r&&(this.programTimersStack=null);const i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const e=await Promise.all(a);i.kernelMs=Y(e),i.getExtraProfileInfo=()=>e.map(((e,t)=>({name:s[t],ms:e}))).map((e=>`${e.name}: ${e.ms}`)).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:ta(),endMs:null}}endTimer(e){return ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=ta(),e)}async getQueryTime(e){if(ze().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);const{complexTensorInfos:n}=this.texData.get(e);return null!=n&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){const{texture:t,dtype:n,texShape:r,usage:a,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),null!=t&&(this.numBytesInGPU-=this.computeBytes(r,n),this.textureManager.releaseTexture(t,r,a,s)));const u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ze().getBool("WEBGL_CPU_FORWARD")?(null==this.cpuBackend&&(this.cpuBackend=io().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=128){const n=this.getCPUBackend();return ze().getBool("IS_TEST")||this.warnedAboutCPUBackend||null!=n||(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),null!=n&&e.every((e=>null==this.texData.get(e.dataId).texture&&re(e.shape)0&&ke(n[0])){const a=n.map((e=>ra(e)));r=this.write(a,e,t)}else r=this.write(n,e,t);return this.texData.get(r).usage=null,{dataId:r,shape:e,dtype:t}}makeOutput(e,t,n){const{dataId:r}=this.makeTensorInfo(e,t,n);return io().makeTensorFromDataId(r,e,t,this)}unpackTensor(e){const t=new sF(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new qT(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){const n=[AD(e.shape),...DD(e.shape)],r={dtype:e.dtype,shape:n,dataId:e.dataId},a=[AD(t),...DD(t)],s=new YT(a,n),i=this.runWebGLProgram(s,[r],e.dtype,null,!0);return{dataId:i.dataId,shape:t,dtype:i.dtype}}decode(e){const t=this.texData.get(e),{isPacked:n,shape:r,dtype:a}=t,s=TD(r);let i;return i=n?new GD(s):new HD(s),{dtype:a,shape:r,dataId:this.runWebGLProgram(i,[{shape:s,dtype:a,dataId:e}],a,null,!0).dataId}}runWebGLProgram(e,t,n,r,a=!1){const s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===hD.DENSE){const t=mD(e.outputShape);i.texShape=t.map((e=>2*e))}if(null!=e.outTexUsage&&(i.usage=e.outTexUsage),0===re(s.shape))return i.values=me(s.dtype,0),s;const o=[],l=t.map((t=>{if("complex64"===t.dtype)throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let n=this.texData.get(t.dataId);if(null==n.texture){if(!e.packedInputs&&re(t.shape)<=ze().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:n.values};e.packedInputs&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.packedInputs)t=n.isPacked?this.unpackTensor(t):this.packTensor(t),o.push(t),n=this.texData.get(t.dataId);else if(n.isPacked&&!RD(n.shape,t.shape)){const e=t,r=t.shape;t.shape=n.shape,t=this.packedReshape(t,r),o.push(t),n=this.texData.get(t.dataId),e.shape=r}return this.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}}));this.uploadToGPU(s.dataId);const u={shape:s.shape,texData:i,isUniform:!1},c=function(e,t,n){let r="";t.concat(n).forEach((e=>{const t=null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0,n=e.isUniform?"uniform":e.texData.texShape;r+=`${e.shape}_${n}_${t}`}));const a=e.userCode;let s=e.constructor.name;return s+="_"+r+"_"+a,s}(e,l,u),h=this.getAndSaveBinary(c,(()=>function(e,t,n,r){const a=t.userCode,s=n.map(((e,n)=>{const r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(r.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[n],shapeInfo:r}})),i=s.map((e=>e.shapeInfo)),o={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked,flatOffset:null},l=sT(s,o,a,t.packedInputs),u=e.createProgram(l);let c=null;const h=e.getUniformLocation(u,"NAN",!1);1===ze().getNumber("WEBGL_VERSION")&&(c=e.getUniformLocation(u,"INFINITY",!1));const f={};for(let n=0;n{const a=t.program.variableNames[r],s=t.uniformLocations[a],i=t.uniformLocations[`offset${a}`];if(null!=s)if(n.isUniform)if(re(n.shape)<2)e.gl.uniform1f(s,n.uniformValues[0]);else{let t=n.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(s,t)}else null!=n.texData.slice&&null!=i&&e.gl.uniform1i(i,n.texData.slice.flatOffset),e.setInputMatrixTexture(n.texData.texture,s,r)})),null!=a&&a(e,t.webGLProgram),e.executeProgram()}(this.gpgpu,h,l,u,r),o.forEach((e=>this.disposeIntermediateTensorInfo(e))),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)}));const p=ze().get("WEBGL_FLUSH_THRESHOLD");if(p>0){const e=ta();e-this.lastGlFlushTime>p&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!ze().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&!1===a){const e=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),e}return s}compileAndRun(e,t,n,r,a=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,r,a)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ze().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach((e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]})),this.textureManager.dispose(),null!=this.canvas&&"undefined"!=typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=uo((()=>{if(!ze().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=ze().getBool("DEBUG");ze().set("DEBUG",!1);const t=this.abs($o(1e-8)).dataSync()[0];if(ze().set("DEBUG",e),t>0)return 32}return 16}))),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?1e-7:1e-4}uploadToGPU(e){const t=this.texData.get(e),{shape:n,dtype:r,values:a,texture:s,usage:i,isPacked:o}=t;if(null!=s)return;const l=null!=this.activeTimers;let u;l&&(u=ta());let c=t.texShape;if(null==c&&(c=function(e,t=!1){let n=ze().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(n*=2,1===(e=e.map(((t,n)=>n>=e.length-2?q(e[n]):e[n]))).length&&(e=[2,e[0]])),2!==e.length){const t=pe(e);e=t.newShape}let r=re(e);if(e.length<=1&&r<=n)return[1,r];if(2===e.length&&e[0]<=n&&e[1]<=n)return e;if(3===e.length&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(3===e.length&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){const t=AD(e);let n=2,a=2;return e.length&&([n,a]=DD(e)),r=t*(n/2)*(a/2),le(r).map((e=>2*e))}return le(r)}(n,o),t.texShape=c),null!=a){const e=TD(n);let s,i=c[1],h=c[0];const f=a instanceof Uint8Array;o?([i,h]=gD(c[0],c[1]),s=new YD(e,[h,i],f)):s=new qD(e,[h,i],f);const d=this.makeTensorInfo([h,i],r);this.texData.get(d.dataId).usage=f?fD.PIXELS:fD.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(d.dataId),i,h,a);const p=!0,m=this.runWebGLProgram(s,[d],r,null,p),g=this.texData.get(m.dataId);t.texture=g.texture,t.texShape=g.texShape,t.isPacked=g.isPacked,t.usage=g.usage,this.disposeIntermediateTensorInfo(d),this.texData.delete(m.dataId),t.values=null,l&&(this.uploadWaitMs+=ta()-u)}else{const e=this.acquireTexture(c,i,r,o);t.texture=e}}convertAndCacheOnCPU(e,t){const n=this.texData.get(e),{dtype:r}=n;return this.releaseGPUData(e),null!=t&&(n.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){const n="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t1024*this.numMBBeforeWarning*1024){const e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,r)}computeBytes(e,t){return e[0]*e[1]*_e(t)}}lF.nextDataId=0,za()&&wo("webgl",(()=>new lF),2);class uF{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=Ko(t,n),this.userCode=`\n float binaryOperation(float a, float b) {\n ${e}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}}class cF{constructor(e,t,n,r=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=Ko(t,n);const a=this.outputShape.length;let s="";if(r)if(0===a||1===re(this.outputShape))s="\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n ";else if(s=`\n ${pT(a)} coords = getOutputCoords();\n `,1===a)s+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{const e=KT("coords",a);s+=`\n bool nextRowOutOfBounds =\n (${e[a-2]} + 1) >= ${this.outputShape[a-2]};\n bool nextColOutOfBounds =\n (${e[a-1]} + 1) >= ${this.outputShape[a-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${e}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${s}\n\n setOutput(result);\n }\n `}}function hF(e){const{inputs:t,backend:n}=e,{x:r}=t;return n.incRef(r.dataId),{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}const fF={kernelName:nn,backendName:"webgl",kernelFunc:hF};function dF(e){const{inputs:t,backend:n}=e,{real:r,imag:a}=t,s=n.makeTensorInfo(r.shape,"complex64"),i=n.texData.get(s.dataId),o=hF({inputs:{x:r},backend:n}),l=hF({inputs:{x:a},backend:n});return i.complexTensorInfos={real:o,imag:l},s}const pF={kernelName:gt,backendName:"webgl",kernelFunc:dF},mF="return (a < 0.) ? b * a : a;",gF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",yF={kernelName:un,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{alpha:s}=r,i=n.makeTensorInfo([],"float32",Qr(s,"float32")),o=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new cF(gF,a.shape,i.shape):new uF(mF,a.shape,i.shape),l=n.runWebGLProgram(o,[a,i],a.dtype);return n.disposeIntermediateTensorInfo(i),l}},bF="return (a < 0.) ? b * a : a;",vF="\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n",wF={kernelName:Gn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r,alpha:a}=t,s=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new cF(vF,r.shape,a.shape):new uF(bF,r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}};function _F({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:r}){return({inputs:a,backend:s})=>{const{x:i}=a,o=s,l=r||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=n){const e=o.texData.get(i.dataId),t=n(e.values,l);return o.makeTensorInfo(i.shape,l,t)}let u;return u=ze().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new aF(i.shape,t):new tF(i.shape,e),o.runWebGLProgram(u,[i],l)}}function xF({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:r=!1,cpuKernelImpl:a,dtype:s}){return({inputs:i,backend:o})=>{const{a:l,b:u}=i,c=o;if(r&&"complex64"===l.dtype){const t=c.texData.get(l.dataId),n=c.texData.get(u.dataId),[r,a]=[[t.complexTensorInfos.real,n.complexTensorInfos.real],[t.complexTensorInfos.imag,n.complexTensorInfos.imag]].map((t=>{const[n,r]=t,a={dataId:n.dataId,dtype:n.dtype,shape:l.shape},s={dataId:r.dataId,dtype:r.dtype,shape:u.shape},i=new uF(e,l.shape,u.shape);return c.runWebGLProgram(i,[a,s],Sa(n.dtype,r.dtype))})),s=dF({inputs:{real:r,imag:a},backend:c});return c.disposeIntermediateTensorInfo(r),c.disposeIntermediateTensorInfo(a),s}const h=s||Sa(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&null!=a){const e=c.texData.get(l.dataId),t=c.texData.get(u.dataId),[n,r]=a(l.shape,u.shape,e.values,t.values,h),s=c.makeTensorInfo(r,h);return c.texData.get(s.dataId).values=n,s}let f;return f=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new cF(t,l.shape,u.shape,n):new uF(e,l.shape,u.shape),c.runWebGLProgram(f,[l,u],h)}}function kF(e,t=!1){if("linear"===e)return"return x;";if("relu"===e)return t?"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n";if("elu"===e)return t?"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n":"return (x >= 0.0) ? x : (exp(x) - 1.0);";if("relu6"===e)return t?"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n":"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n";if("prelu"===e)return t?vF:bF;if("leakyrelu"===e)return t?gF:mF;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}class EF{constructor(e,t,n,r=!1,a=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;const u=r?e[1]:e[2],c=Math.ceil(u/2),h=r?"i * 2, rc.y":"rc.y, i * 2",f=a?"rc.z, i * 2":"i * 2, rc.z",d=r?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],p=a?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let m="",g="";i&&(m=o?`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${i}\n }`:l?`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${i}\n }`:`vec4 activation(vec4 x) {\n ${i}\n }`,g="result = activation(result);");const y=s?"result += getBiasAtOutCoords();":"";s&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),l&&this.variableNames.push("leakyreluAlpha");let b="rc.x",v="rc.x";e[0]`The new shape (${l}) has ${u} elements and the old shape (${a.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`));const c=i.texData.get(a.dataId);return!c.isPacked||RD(a.shape,l)||null!==c.texture&&RD(c.shape,l)?(i.incRef(a.dataId),{dataId:a.dataId,shape:l,dtype:a.dtype}):function(e,t,n){const r=[AD(e.shape),...DD(e.shape)],a={dtype:e.dtype,shape:r,dataId:e.dataId},s=[AD(t),...DD(t)],i=new YT(s,r),o=n.runWebGLProgram(i,[a],e.dtype,null,!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}(a,l,i)}const DF={kernelName:Zn,backendName:"webgl",kernelFunc:AF};class TF{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];const i=4*Math.floor(n/4),o=n%4;let l="sumValue += dot(values, ones);";if(null!=t){const e=1/t;l=`sumValue += dot(values * ${ie(e)?e.toPrecision(2):e}, ones);`}let u="";a%n>0&&(u=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${u}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${i}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${i};\n if (${1===o}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${2===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${3===o}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}}class FF{constructor(e,t){this.variableNames=["x"];const{windowSize:n,batchSize:r,inSize:a,outSize:s}=e;this.outputShape=[r,s];let i="0.0",o="";"prod"===t?i="1.0":"min"===t?(i="1.0 / 1e-20",o="min"):"max"===t&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?l="sumValue":"prod"===t?l="prodValue":"all"===t?l="allValue":"any"===t&&(l="anyValue");const u=4*Math.floor(n/4),c=n%4;let h=`\n if (${"sum"===t}) {\n sumValue += dot(values, ones);\n } else if (${"prod"===t}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${o}(values, minMaxValue);\n }\n `,f="vec4";"all"===t?(i="1.0",h="\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n ",f="bvec4"):"any"===t&&(i="0.0",h="\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n ",f="bvec4");let d="";a%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${i};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${i});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${u}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${h}\n }\n\n int inIdx = inOffset + ${u};\n if (${1===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${2===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${h}\n } else if (${3===c}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${h}\n }\n setOutput(${l});\n }\n `}}function RF(e,t,n,r){const a=function(e){const t=[];for(;0===t.length||1!==t[t.length-1].outSize;){const n=t.length?t[t.length-1].outSize:e[1],r=Wf(n);t.push({inSize:n,windowSize:r,outSize:Math.ceil(n/r)})}return t}(e.shape);let s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],r=new Array(t);for(let t=0;t6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const r=pT(this.rank),a=XT("rc",this.rank),s=new Array(this.rank);for(let e=0;e=2&&c>=2&&(y===b||1===y||1===b),(()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${m}) and (${g}).`));const v=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([d,p]);Q(h===f,(()=>`Error in matMul: inner shapes (${h}) and (${f}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${r} must match.`));const w=n?[y,h,d]:[y,d,h],_=r?[b,p,f]:[b,f,p],x=AF({inputs:{x:e},backend:a,attrs:{shape:w}}),k=AF({inputs:{x:t},backend:a,attrs:{shape:_}}),E=[x,k],C=Math.max(y,b),S=n?x.shape[1]:x.shape[2],N=null!=s,I=null!=i,A="leakyrelu"===l,D=null!=l?kF(l,!0):null;let T;if((1===d||1===p)&&S>1e3&&!1===(N||I||A||null!=D)){let e=x,t=k;n&&(e=LF({inputs:{x},backend:a,attrs:{perm:[0,2,1]}}),E.push(e)),r&&(t=LF({inputs:{x:k},backend:a,attrs:{perm:[0,2,1]}}),E.push(t));const s=1===p;let i=e;1!==p&&(i=AF({inputs:{x:e},backend:a,attrs:{shape:[C,S,1]}}),E.push(i));const o=1===p?2:1;let l=t;s&&(l=AF({inputs:{x:t},backend:a,attrs:{shape:[C,1,S]}}),E.push(l));const u=NF({inputs:{a:i,b:l},backend:a});T=$F({inputs:{x:u},backend:a,attrs:{axis:o,keepDims:!0}}),E.push(u)}else{const l=Sa(e.dtype,t.dtype),u=new EF(w,_,[C,d,p],n,r,N,D,I,A),c=[x,k];if(null!=s&&c.push(s),I&&c.push(i),A){const e=a.makeTensorInfo([],"float32",Qr(o,"float32"));c.push(e),E.push(e)}T=a.runWebGLProgram(u,c,l)}const F=AF({inputs:{x:T},backend:a,attrs:{shape:v}});E.push(T);for(const e of E)a.disposeIntermediateTensorInfo(e);return F}const UF={kernelName:Lr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:h}=r;return WF({a,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:h,activation:c})}},VF="return abs(x);",jF={kernelName:He,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])&&"complex64"!==r.dtype){const e=n.texData.get(r.dataId),t=LT(e.values);return n.makeTensorInfo(r.shape,r.dtype,t)}let a;return a=ze().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new aF(r.shape,VF):new tF(r.shape,VF),n.runWebGLProgram(a,[r],r.dtype)}},HF=_F({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n"}),GF={kernelName:Ge,backendName:"webgl",kernelFunc:HF},XF=_F({opSnippet:"if (isnan(x)) return x;\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));"}),KF={kernelName:Xe,backendName:"webgl",kernelFunc:XF},qF="return a + b;",YF=xF({opSnippet:qF,packedOpSnippet:qF,supportsComplex:!0,cpuKernelImpl:bT}),JF={kernelName:Ke,backendName:"webgl",kernelFunc:YF};class ZF{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`float v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n float result = ${r};\n setOutput(result);\n }\n `}}class QF{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map(((e,t)=>`T${t}`));const n=[];this.variableNames.forEach((e=>{n.push(`vec4 v${e} = get${e}AtOutCoords();`)}));const r=this.variableNames.map((e=>`v${e}`)).join(" + ");this.userCode=`\n void main() {\n ${n.join("\n ")}\n\n vec4 result = ${r};\n setOutput(result);\n }\n `}}const eR={kernelName:qe,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,a=n;if(1===a.length)return hF({inputs:{x:a[0]},backend:r});if(a.length>ze().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const t=Math.floor(a.length/2),n=e({inputs:a.slice(0,t),backend:r}),s=e({inputs:a.slice(t),backend:r});return e({inputs:[n,s],backend:r})}const s=a.map((e=>e.dtype)).reduce(((e,t)=>Sa(e,t))),i=a.map((e=>e.shape)),o=ze().getBool("WEBGL_PACK")?new QF(a[0].shape,i):new ZF(a[0].shape,i);return r.runWebGLProgram(o,a,s)}},tR={kernelName:Ye,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=de(s,a.shape);let u=l;const c=ju(u,o);let h=a;null!=c&&(h=LF({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Gu(u.length,o)),Vu("all",u,o);const[f,d]=Wu(h.shape,u),p=AF({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=RF(p,p.dtype,"all",n);let g;return g=AF(i?{inputs:{x:m},backend:n,attrs:{shape:Uu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}},nR={kernelName:Je,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=de(s,a.shape);let u=l;const c=ju(u,o);let h=a;null!=c&&(h=LF({inputs:{x:a},backend:n,attrs:{perm:c}}),u=Gu(u.length,o)),Vu("any",u,o);const[f,d]=Wu(h.shape,u),p=AF({inputs:{x:h},backend:n,attrs:{shape:[-1,re(d)]}}),m=RF(p,p.dtype,"any",n);let g;return g=AF(i?{inputs:{x:m},backend:n,attrs:{shape:Uu(f,l)}}:{inputs:{x:m},backend:n,attrs:{shape:f}}),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(m),null!=c&&n.disposeIntermediateTensorInfo(h),g}};class rR{constructor(e,t,n){this.variableNames=["A"];const{windowSize:r,batchSize:a,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[a,s];const i="max"===t?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${r};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${r}; i++) {\n int inIdx = ${o};\n float candidate = getA(batch, inIdx);\n if (candidate ${i} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}}class aR{constructor(e,t,n,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,Q(e.length>2,(()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`));const a=e[e.length-1],s=Math.ceil(a/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),r||this.variableNames.push("bestIndicesA");const i=this.outputShape,o=i.length,l=pT(o),u=KT("coords",o);let c,h;if(1===s){h=o+1;const e=pT(h);c=`\n ${e} sourceLocR = ${e}(${u.join()}, 0);\n ++${u[o-1]};\n ${e} sourceLocG = ${e}(${u.join()}, 0);\n ++${u[o-2]};\n ${e} sourceLocA = ${e}(${u.join()}, 0);\n --${u[o-1]};\n ${e} sourceLocB = ${e}(${u.join()}, 0);\n --${u[o-2]};`}else h=o,c=`\n ${l} sourceLocR = coords;\n ++${u[o-1]};\n ${l} sourceLocG = coords;\n ++${u[o-2]};\n ${l} sourceLocA = coords;\n --${u[o-1]};\n ${l} sourceLocB = coords;\n --${u[o-2]};`;const f=["x","y","z","w","u","v"].slice(0,h),d="."+f[h-1],p=f.map((e=>"int "+e)),m=KT("sourceLocR",h-1).concat("inIdx.r"),g=KT("sourceLocG",h-1).concat("inIdx.g"),y=KT("sourceLocB",h-1).concat("inIdx.b"),b=KT("sourceLocA",h-1).concat("inIdx.a"),v="max"===n?"greaterThan":"lessThan",w=r?"":`\n inIdx = round(vec4(getBestIndicesAChannel(${m.join()}),\n getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${y.join()}),\n getBestIndicesAChannel(${b.join()})));`,_=`vec4(\n getAChannel(${m.join()}),\n hasNextCol ? getAChannel(${g.join()}) : 0.,\n hasNextRow ? getAChannel(${y.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,x=r?"":`\n float getBestIndicesAChannel(${p.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${p.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${x}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${u[o-1]} < ${i[o-1]-1};\n bool hasNextRow = ${u[o-2]} < ${i[o-2]-1};\n ${c}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${t};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${t}; i++) {\n inIdx = srcIdx;\n ${w}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${v}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}}function sR(e,t,n,r=null){let a=t.shape[0],s=t.shape[1];null!=r&&(a=r.shape[0],s=r.shape[1]);const i=Wf(s),o={windowSize:i,inSize:s,batchSize:a,outSize:Math.ceil(s/i)},l=new rR(o,n,null==r),u=[t];null!=r&&u.push(r);const c=e.runWebGLProgram(l,u,"int32");if(1===c.shape[1])return c;const h=sR(e,t,n,c);return e.disposeIntermediateTensorInfo(c),h}function iR(e,t,n,r=null){const a=null!=r?r.shape:t.shape,s=Wf(a[a.length-1]),i=new aR(a,s,n,null==r),o=null==r?[t]:[t,r],l=e.runWebGLProgram(i,o,"int32");if(l.shape.length===t.shape.length){const r=iR(e,t,n,l);return e.disposeIntermediateTensorInfo(l),r}return l}function oR(e,t,n,r){const a=[n];if(Vu("arg"+r.charAt(0).toUpperCase()+r.slice(1),a,t.shape.length),!ze().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){const n=[],[s,i]=Wu(t.shape,a),o=re(i),l=AF({inputs:{x:t},backend:e,attrs:{shape:[-1,o]}});n.push(l);const u=sR(e,l,r);n.push(u);const c=AF({inputs:{x:u},backend:e,attrs:{shape:s}});return n.forEach((t=>e.disposeIntermediateTensorInfo(t))),c}return iR(e,t,r)}const lR={kernelName:Ze,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=de(s,a.shape);const o=ju(i,a.shape.length);let l=a;const u=[];null!=o&&(l=LF({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Gu(i.length,l.shape.length)),Vu("argMax",[i[0]],l.shape.length);const c=oR(n,l,i[0],"max");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},uR={kernelName:Qe,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s}=r;let i=de(s,a.shape);const o=ju(i,a.shape.length);let l=a;const u=[];null!=o&&(l=LF({inputs:{x:a},backend:n,attrs:{perm:o}}),u.push(l),i=Gu(i.length,l.shape.length)),Vu("argMin",[i[0]],l.shape.length);const c=oR(n,l,i[0],"min");return u.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}},cR=_F({opSnippet:"if (isnan(x)) return x;\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n"}),hR={kernelName:et,backendName:"webgl",kernelFunc:cR},fR=_F({opSnippet:"if (isnan(x)) return x;return log(x + sqrt(x * x + 1.0));"}),dR={kernelName:tt,backendName:"webgl",kernelFunc:fR},pR=_F({opSnippet:"if (isnan(x)) return x;\n return atan(x);\n"}),mR={kernelName:nt,backendName:"webgl",kernelFunc:pR},gR=xF({opSnippet:"\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n\n return atan(a, b);\n",packedOpSnippet:"\n vec4 result = atan(a, b);\n vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),yR={kernelName:at,backendName:"webgl",kernelFunc:gR},bR=_F({opSnippet:"if (isnan(x)) return x;\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;"}),vR={kernelName:rt,backendName:"webgl",kernelFunc:bR};class wR{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterHeight,h=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;const p="avg"===t,m=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let y="0.0";if(p||(y="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${u}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?m:g:`wR * ${h} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / count");const v=4*Math.floor(s/4),w=s%4,_=`\n if (${p}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${i}, ${o});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${y};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${y});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${c};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${v}; wC += 4) {\n int xC = xCCorner + wC * ${u};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n getValue(batch, xR, xC + 3 * ${u}, d)\n );\n\n ${_}\n }\n\n int xC = xCCorner + ${v};\n if (${1===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${_}\n } else if (${2===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n initializationValue,\n initializationValue\n );\n\n ${_}\n } else if (${3===w}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${u}, d),\n getValue(batch, xR, xC + 2 * ${u}, d),\n initializationValue\n );\n\n ${_}\n }\n }\n setOutput(${b});\n }\n `}}class _R{constructor(e,t,n,r=!1,a=!1){if(this.variableNames=["x"],"avg"===t&&n)throw new Error("Cannot compute positions for average pool.");const s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,c=e.dilationHeight,h=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const b="avg"===t;let v="0.0";if(b||(v="-1.0 / 1e-20"),n){const t=">=";return void(this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p};\n wC += ${h}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${t} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${r?a?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${p} +\n wR * ${p} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `)}let w=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(w="avgValue / count");const _=4*Math.floor(s/4),x=s%4,k=`\n if (${b}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = max(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${i}, ${o}, ${l});\n const ivec3 pads = ivec3(${m}, ${g}, ${y});\n const float initializationValue = ${v};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${e.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${v});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${u}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${c}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${_}; wC += 4) {\n int xC = xCCorner + wC * ${h};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n getValue(batch, xD, xR, xC + 3 * ${h}, ch)\n );\n\n ${k}\n }\n\n int xC = xCCorner + ${_};\n if (${1===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${2===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n initializationValue,\n initializationValue\n );\n\n ${k}\n } else if (${3===x}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${h}, ch),\n getValue(batch, xD, xR, xC + 2 * ${h}, ch),\n initializationValue\n );\n\n ${k}\n }\n }\n setOutput(${w});\n }\n }\n `}}const xR={kernelName:st,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;LD(a,"avgPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(kl(i,1),(()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=dl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return hF({inputs:{x:a},backend:n});const c=new wR(u,"avg",!1);return n.runWebGLProgram(c,[a],"float32")}},kR={kernelName:ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=r,c=pl(a.shape,s,i,[1,1,1],o,l,u),h=new _R(c,"avg",!1);return n.runWebGLProgram(h,[a],"float32")}};class ER{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,c=l-1-e.padInfo.left,h=1/(t*n);this.userCode=`\n const ivec2 pads = ivec2(${u}, ${c});\n const float avgMultiplier = float(${h});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${o};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${i}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}}class CR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=c-1-e.padInfo.front,p=h-1-e.padInfo.top,m=f-1-e.padInfo.left,g=1/(t*n*r);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${p}, ${m});\n const float avgMultiplier = float(${g});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${c};\n wD += ${o}) {\n float dyD = float(dyDCorner + wD) / ${a}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${h};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${u}) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const SR={kernelName:lt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=pl(i.shape,o,l,[1,1,1],u,c),f=new CR(h);return n.runWebGLProgram(f,[a],i.dtype)}},NR={kernelName:it,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s;LD([a,s],"avgPoolGrad");const{filterSize:o,strides:l,pad:u}=r,c=dl(i.shape,o,l,1,u),h=new ER(c);return n.runWebGLProgram(h,[a],i.dtype)}},IR={kernelName:ut,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{a,b:s}=t,{transposeA:i,transposeB:o}=r;return WF({a,b:s,transposeA:i,transposeB:o,backend:n})}};class AR{constructor(e,t,n,r,a,s){this.outputShape=[],this.variableNames=["x","mean","variance"],Ko(e,t),Ko(e,n);let i="0.0";null!=r&&(Ko(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";null!=a&&(Ko(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${i};\n float scale = ${o};\n float inv = scale * inversesqrt(variance + float(${s}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}}class DR{constructor(e,t,n,r,a,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],Ko(e,t),Ko(e,n);let i="vec4(0.0)";null!=r&&(Ko(e,r),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";null!=a&&(Ko(e,a),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=`\n void main() {\n vec4 offset = ${i};\n vec4 scale = ${o};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${s}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}}const TR={kernelName:Jt,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r,mean:a,variance:s,offset:i,scale:o}=e;Q(a.shape.length===s.shape.length,(()=>"Batch normalization gradient requires mean and variance to have equal ranks.")),Q(null==i||a.shape.length===i.shape.length,(()=>"Batch normalization gradient requires mean and offset to have equal ranks.")),Q(null==o||a.shape.length===o.shape.length,(()=>"Batch normalization gradient requires mean and scale to have equal ranks."));let{varianceEpsilon:l}=n;null==l&&(l=.001);const u=[r,a,s];let c=null;null!=i&&(c=i.shape,u.push(i));let h=null;null!=o&&(h=o.shape,u.push(o));const f=ze().getBool("WEBGL_PACK_NORMALIZATION")?new DR(r.shape,a.shape,s.shape,c,h,l):new AR(r.shape,a.shape,s.shape,c,h,l);return t.runWebGLProgram(f,u,u[0].dtype)}};class FR{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=pT(this.rank),n=`uniform int start[${this.rank}];`,r=function(e){if(1===e)return"sourceLoc";if(e<=6)return RR.slice(0,e).map((e=>"sourceLoc."+e)).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank);let a;a=`\n ${t} sourceLoc;\n ${t} coords = getOutputCoords();\n ${e.map(((e,t)=>`sourceLoc.${RR[t]} = start[${t}] + coords.${RR[t]};`)).join("\n")}\n `,this.userCode=`\n ${n}\n void main() {\n ${a}\n setOutput(getSource(${r}));\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}const RR=["x","y","z","w","u","v"];class OR{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=pT(this.rank),n=KT("coords",this.rank),r=KT("sourceLoc",this.rank),a=1===this.rank?"sourceLoc":`vec2(${r.slice(-2).join()})`,s=`getChannel(getSource(${r.join()}), ${a})`,i=`\n result.x = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.y = ${s};\n --${r[this.rank-1]};\n }\n `,o=1===this.rank?"":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${e[this.rank-2]}) {\n ++${r[this.rank-2]};\n result.z = ${s};\n if (++${n[this.rank-1]} < ${e[this.rank-1]}) {\n ++${r[this.rank-1]};\n result.w = ${s};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${t}(${e.map(((e,t)=>`start[${t}]`)).join()});`:e.map(((e,t)=>`${r[t]} = ${n[t]} + start[${t}];`)).join("\n");this.userCode=`\n uniform int start[${this.rank}];\n void main() {\n ${t} coords = getOutputCoords();\n ${t} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${i}\n ${o}\n setOutput(result);\n }\n `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{null==this.startLoc&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),null==this.startLoc)||t.gl.uniform1iv(this.startLoc,e)}}}function BR(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,size:i}=r,[o,l]=Pi(a,s,i);if(Ei(a,o,l),0===re(l))return n.makeTensorInfo(l,a.dtype,[]);if(n.shouldExecuteOnCPU([a])||"string"===a.dtype){const e=n.texData.get(a.dataId),t=zT(e.values,o,l,a.shape,a.dtype);return n.makeTensorInfo(l,a.dtype,t)}const{isPacked:u}=n.texData.get(a.dataId),c=Mi(a.shape,o,l);if(u||!c){const e=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new OR(l):new FR(l),t=e.getCustomSetupFunc(o);return n.runWebGLProgram(e,[a],a.dtype,t)}return n.uploadToGPU(a.dataId),function(e,t,n,r){const a=r.texData.get(e.dataId),s=r.makeTensorInfo(n,e.dtype),i=r.texData.get(s.dataId);Object.assign(i,a),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=$i(t,Ae(e.shape));a.slice&&(o+=a.slice.flatOffset),i.slice={flatOffset:o,origDataId:a.slice&&a.slice.origDataId||e.dataId};const l=r.dataRefCount.get(i.slice.origDataId)||1;return r.dataRefCount.set(i.slice.origDataId,l+1),s}(a,o,l,n)}const MR={kernelName:cr,backendName:"webgl",kernelFunc:BR},$R={kernelName:ct,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,crops:i}=r;Q(a.shape.length<=4,(()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=Vf(a.shape,s,o),u=jf(l.length,s.length),c=Hf(a.shape,s,o),h=Gf(i,s.length),f=Xf(c,i,s.length),d=[],p=AF({inputs:{x:a},backend:n,attrs:{shape:l}}),m=LF({inputs:{x:p},backend:n,attrs:{perm:u}}),g=AF({inputs:{x:m},backend:n,attrs:{shape:c}}),y=BR({inputs:{x:g},backend:n,attrs:{begin:h,size:f}});return d.push(p),d.push(m),d.push(g),d.forEach((e=>n.disposeIntermediateTensorInfo(e))),y}},PR={kernelName:ht,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i}=r,o=n.readSync(a.dataId),l=n.readSync(s.dataId),u=vT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}},LR=xF({opSnippet:"return float(a != b);",dtype:"bool"}),zR={kernelName:Mn,backendName:"webgl",kernelFunc:LR};function WR(e){const{inputs:t,backend:n}=e,{input:r}=t;return hF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.real},backend:n})}const UR={kernelName:qn,backendName:"webgl",kernelFunc:WR},VR={kernelName:dt,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r,attrs:a}=t,{x:s}=n,{dtype:i}=a;if("complex64"===i){if("complex64"===s.dtype)return hF({inputs:{x:s},backend:r});const t=cc(s.shape),n=e({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),a=dF({inputs:{real:n,imag:t},backend:r});return t.dispose(),r.disposeIntermediateTensorInfo(n),a}if("complex64"===s.dtype){const t=WR({inputs:{input:s},backend:r}),n=e({inputs:{x:t},backend:r,attrs:{dtype:i}});return r.disposeIntermediateTensorInfo(t),n}if(!ve(s.dtype,i)){const e=hF({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:i}}if("int32"===i)return function(e,t){const n=new tF(e.shape,"return float(int(x));"),r=t.runWebGLProgram(n,[e],"int32");return{dataId:r.dataId,shape:r.shape,dtype:r.dtype}}(s,r);if("bool"===i){const e=r.makeTensorInfo([],"bool",me("bool",1)),t=LR({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw new Error(`Error in Cast: failed to cast ${s.dtype} to ${i}`)}},jR="return ceil(x);",HR=_F({opSnippet:jR,packedOpSnippet:jR,cpuKernelImpl:_T}),GR={kernelName:pt,backendName:"webgl",kernelFunc:HR};class XR{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}class KR{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode="\n uniform float minVal;\n uniform float maxVal;\n\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n "}getCustomSetupFunc(e,t){return(n,r)=>{null==this.minLoc&&(this.minLoc=n.getUniformLocationNoThrow(r,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(r,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}}const qR={kernelName:mt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{clipValueMin:s,clipValueMax:i}=r;let o;o=ze().getBool("WEBGL_PACK_CLIP")?new KR(a.shape):new XR(a.shape);const l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[a],a.dtype,l)}};class YR{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode="\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n "}}function JR(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}const ZR={kernelName:yt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=n.texData.get(r.dataId),s=new YR(r.shape),i=[JR(r,a.complexTensorInfos.real),JR(r,a.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}};class QR{constructor(e){this.outputShape=[],this.outputShape=Lf(e,1),this.variableNames=e.map(((e,t)=>`T${t}`));const t=new Array(e.length-1);t[0]=e[0][1];for(let n=1;n`T${t}`));const o=new Array(e.length-1);o[0]=e[0][t];for(let n=1;n= ${o[e-1]}) {\n return getChannel(\n getT${e}(${tO(i,l,t)}),\n vec2(${tO(u,l,t)}));\n }`}const f=o.length,d=o[o.length-1];h+=`\n return getChannel(\n getT${f}(${tO(i,l,d)}),\n vec2(${tO(u,l,d)}));`,this.userCode=`\n float getValue(${i.map((e=>"int "+e))}) {\n ${h}\n }\n\n void main() {\n ${a} coords = getOutputCoords();\n vec4 result = vec4(getValue(${s}), 0., 0., 0.);\n\n ${s[r-1]} = ${s[r-1]} + 1;\n if (${s[r-1]} < ${n[r-1]}) {\n result.g = getValue(${s});\n }\n\n ${s[r-2]} = ${s[r-2]} + 1;\n if (${s[r-2]} < ${n[r-2]}) {\n result.a = getValue(${s});\n }\n\n ${s[r-1]} = ${s[r-1]} - 1;\n if (${s[r-2]} < ${n[r-2]} &&\n ${s[r-1]} < ${n[r-1]}) {\n result.b = getValue(${s});\n }\n setOutput(result);\n }\n `}}function tO(e,t,n){const r=e.indexOf(t);return e.map(((e,t)=>t===r?`${e} - ${n}`:e)).join()}function nO(e){const{inputs:t,backend:n}=e,{input:r}=t;return hF({inputs:{x:n.texData.get(r.dataId).complexTensorInfos.imag},backend:n})}const rO={kernelName:an,backendName:"webgl",kernelFunc:nO};function aO(e,t,n){const r=e[0].dtype;if("complex64"===r){const r=e.map((e=>WR({inputs:{input:e},backend:n}))),a=e.map((e=>nO({inputs:{input:e},backend:n}))),s=aO(r,t,n),i=aO(a,t,n),o=dF({inputs:{real:s,imag:i},backend:n});return r.forEach((e=>n.disposeIntermediateTensorInfo(e))),a.forEach((e=>n.disposeIntermediateTensorInfo(e))),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),o}if("string"===r){const{tensors2D:a,outShape:s}=sO(e,t,n),i=a.map((e=>({vals:n.readSync(e.dataId),shape:e.shape}))),o=1===a[0].shape[0],l=xT(i,s,r,o),u=Lf(e.map((e=>e.shape)),t),c=n.makeTensorInfo(u,r,l);return a.forEach((e=>n.disposeIntermediateTensorInfo(e))),c}if(e.length>ze().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),a=aO(e.slice(0,r),t,n),s=aO(e.slice(r),t,n),i=aO([a,s],t,n);return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}if(ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){const a=new eO(e.map((e=>e.shape)),t);return n.runWebGLProgram(a,e,r)}const{tensors2D:a,outShape:s}=sO(e,t,n),i=new QR(a.map((e=>e.shape))),o=n.runWebGLProgram(i,a,r);a.forEach((e=>n.disposeIntermediateTensorInfo(e)));const l=AF({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function sO(e,t,n){const r=Lf(e.map((e=>e.shape)),t);return{tensors2D:e.map((e=>AF({inputs:{x:e},attrs:{shape:[-1,re(e.shape.slice(t))]},backend:n}))),outShape:r}}function iO(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r,s=de(a,t[0].shape)[0],i=Lf(t.map((e=>e.shape)),s);if(0===re(i))return n.makeTensorInfo(i,t[0].dtype,[]);const o=t.filter((e=>re(e.shape)>0));return 1===o.length?hF({inputs:{x:o[0]},backend:n}):(Pf(o.map((e=>e.shape)),s),aO(o,s,n))}const oO={kernelName:bt,backendName:"webgl",kernelFunc:iO};class lO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4,m="channelsLast"===e.dataFormat,g=m?1:2,y=m?2:3,b=m?3:1;let v="",w="";n&&(v=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,w="result = activation(result);");const _=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${v}\n\n const ivec2 strides = ivec2(${o}, ${l});\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${b}];\n\n ivec2 xRCCorner =\n ivec2(coords[${g}], coords[${y}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${u};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${m}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${1===p}) {\n\n if (${m}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${2===p}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${m}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${3===p}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${m}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${_}\n ${w}\n setOutput(result);\n }\n `}}class uO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,c=e.filterDepth,h=e.filterHeight,f=e.filterWidth,d=4*Math.floor(e.inChannels/4),p=e.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${a}, ${s}, ${i});\n const ivec3 pads = ivec3(${t}, ${n}, ${r});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${c}; wF++) {\n int xF = xFCorner + wF * ${o};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${h}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${u};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${1===p}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${2===p}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${3===p}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class cO{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:r,inChannels:a,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:u,dilationHeight:c,dataFormat:h}=n,{left:f,top:d}=o,p=a*r,m=WD(),g="channelsLast"===h,y=g?0:1,b=g?1:2;let v="";for(let n=0;n<=1;n++)for(let r=0;r<=1;r++)v+=`\n blockIndex = rc.y + ${r};\n pos = rc.x + ${n};\n\n if(blockIndex < ${e[1]} && pos < ${e[0]}) {\n offsetY = int(blockIndex / (${l})) * ${i} - ${d};\n d0 = offsetY + ${c} * (pos / ${p});\n\n if(d0 < ${t[y]} && d0 >= 0) {\n\n offsetX = int(mod(float(blockIndex), ${l}.) * ${s}. - ${f}.);\n d1 = offsetX + ${u} * (int(mod(float(pos), ${p}.) / ${a}.));\n\n if(d1 < ${t[b]} && d1 >= 0) {\n\n ch = int(mod(float(pos), ${a}.));\n\n if (${g}) {\n innerDims = vec2(d1, ch);\n result[${2*n+r}] = getChannel(\n getA(d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${2*n+r}] = getChannel(\n getA(ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec2 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${v}\n\n ${m.output} = result;\n }\n `}}function hO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const l=e.shape,u=r.texData.get(e.dataId),c=n.inChannels,h=l[0]*l[1]*l[2],f=n.outChannels,d="channelsLast"===n.dataFormat;let p;const m=[],g=(1===h||1===f)&&c>1e3,y=l[2]%2!=0&&!!u.isPacked;if(!g&&ze().getBool("WEBGL_LAZILY_UNPACK")&&ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&y){const c=d?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),h={dataId:e.dataId,shape:[1,c,n.inChannels],dtype:e.dtype},f=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,Q(RD(u.shape,h.shape),(()=>`packed reshape ${u.shape} to ${h.shape} isn't free`));const g=AF({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}});m.push(g);const y=WF({a:h,b:g,backend:r,transposeA:!1,transposeB:!1,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),b=r.texData.get(y.dataId);Q(b.isPacked,(()=>"batchMatMul result is expected to be packed")),u.shape=f,b.shape=n.outShape,p=hF({inputs:{x:y},backend:r}),p.shape=n.outShape,m.push(y)}else{const u=AF({inputs:{x:e},backend:r,attrs:{shape:[1,d?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],n.inChannels]}}),c=AF({inputs:{x:t},backend:r,attrs:{shape:[1,n.inChannels,n.outChannels]}}),h=WF({a:u,b:c,transposeA:!1,transposeB:!1,backend:r,bias:a,activation:o,preluActivationWeights:s,leakyreluAlpha:i});p=AF({inputs:{x:h},backend:r,attrs:{shape:n.outShape}}),m.push(u),m.push(c),m.push(h)}for(const e of m)r.disposeIntermediateTensorInfo(e);return p}function fO({x:e,filter:t,convInfo:n,backend:r,bias:a=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){const{filterWidth:l,filterHeight:u,inChannels:c,outWidth:h,outHeight:f,dataFormat:d}=n,p="channelsLast"===d,m=l*u*c,g=f*h,y=[m,g],b=[],v=AF({inputs:{x:e},backend:r,attrs:{shape:e.shape.slice(1)}}),w=AF({inputs:{x:t},backend:r,attrs:{shape:[1,m,re(t.shape)/m]}});b.push(v),b.push(w);const _=new cO(y,v.shape,n),x=r.runWebGLProgram(_,[v],"float32"),k=AF({inputs:{x},backend:r,attrs:{shape:[1,y[0],y[1]]}});b.push(x),b.push(k);const E=null!=a,C=null!=s,S="leakyrelu"===o,N=o?kF(o,!0):null,I=new EF(k.shape,w.shape,[1,g,n.outChannels],!0,!1,E,N,C,S),A=[k,w];if(a&&A.push(a),C&&A.push(s),S){const e=r.makeTensorInfo([],"float32",Qr(i,"float32"));A.push(e),b.push(e)}const D=r.runWebGLProgram(I,A,"float32"),T=AF({inputs:{x:D},backend:r,attrs:{shape:p?[1,f,h,n.outChannels]:[1,n.outChannels,f,h]}});b.push(D);for(const e of b)r.disposeIntermediateTensorInfo(e);return T}const dO={kernelName:vt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:c}=r,h=El(l),f=ml(a.shape,s.shape,i,u,o,c,!1,h);let d;if(1!==f.filterHeight||1!==f.filterWidth||1!==f.dilationHeight||1!==f.dilationWidth||1!==f.strideHeight||1!==f.strideWidth||"SAME"!==f.padInfo.type&&"VALID"!==f.padInfo.type)if(ze().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])d=fO({x:a,filter:s,convInfo:f,backend:n});else{const e=new lO(f);d=n.runWebGLProgram(e,[a,s],"float32")}else d=hO({x:a,filter:s,convInfo:f,backend:n});const p=AF({inputs:{x:d},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(d),p}};class pO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s="channelsLast"===e.dataFormat;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n if (${s}) {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class mO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s="channelsLast"===e.dataFormat,i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,c=s?3:1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${c}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${u}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n\n if (${s}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class gO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yF = 0; yF < ${e.outDepth}; yF++) {\n int xF = wF + yF * ${t} - ${a};\n\n if (xF < 0 || xF >= ${e.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${s};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${r} - ${i};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class yO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,a=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=r-1-e.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${o}, ${l}, ${u});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${t}; wF++) {\n float dyF = float(dyFCorner + wF) / ${a}.0;\n\n if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${t} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${s}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${r}; wC++) {\n float dyC = float(dyCCorner + wC) / ${i}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${r} - 1 - wC;\n\n for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const bO={kernelName:wt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:c}=r,h=El(l),f=ml(a.shape,c,i,1,o,u,!1,h),d=new pO(f);return n.runWebGLProgram(d,[a,s],"float32")}},vO={kernelName:_t,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:c}=r,h=El(u),f=ml(i,s.shape,o,1,l,c,!1,h),d=new mO(f);return n.runWebGLProgram(d,[a,s],"float32")}},wO={kernelName:xt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=gl(a.shape,s.shape,i,l,o),c=new uO(u);return n.runWebGLProgram(c,[a,s],"float32")}},_O={kernelName:kt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,pad:o,filterShape:l}=r,u=gl(a.shape,l,i,1,o),c=new gO(u);return n.runWebGLProgram(c,[a,s],"float32")}},xO={kernelName:Et,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{pad:i,strides:o,inputShape:l}=r,u=gl(l,s.shape,o,1,i),c=new yO(u);return n.runWebGLProgram(c,[a,s],"float32")}},kO=_F({opSnippet:"if (isnan(x)) return x;\n return cos(x);\n"}),EO={kernelName:Ct,backendName:"webgl",kernelFunc:kO},CO=_F({opSnippet:"\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n"}),SO={kernelName:St,backendName:"webgl",kernelFunc:CO};class NO{constructor(e,t,n,r,a){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[s,i,o,l]=e,[u]=t,[c,h]=n;this.outputShape=[u,c,h,l];const f="bilinear"===r?1:0,[d,p]=[i-1+".0",o-1+".0"],[m,g,y]=c>1?[""+(i-1)/(c-1),"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[b,v,w]=h>1?[""+(o-1)/(h-1),"(x2-x1) * width_ratio",`x1*${p} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${p}`];this.userCode=`\n const float height_ratio = float(${m});\n const float width_ratio = float(${b});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${s}) {\n return;\n }\n\n float height_scale = ${g};\n float width_scale = ${v};\n\n float in_y = ${y};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${a}));\n return;\n }\n float in_x = ${w};\n if( in_x < 0.0 || in_x > ${p} ) {\n setOutput(float(${a}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}}const IO={kernelName:It,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{image:a,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=r,c=new NO(a.shape,s.shape,o,l,u);return n.runWebGLProgram(c,[a,s,i],"float32")}};class AO{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;const r=e.length,a=t?"0.0":`getX(${DO(r,"coords")})`,s=e[e.length-1];let i="",o="";t?(i=n?"end != "+(s-1):"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=`\n uniform float index;\n void main() {\n ${pT(r)} coords = getOutputCoords();\n int end = ${TO(r,"coords")};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${i}) {\n int idx = ${o};\n ${TO(r,"coords")} = idx;\n val += getX(${DO(r,"coords")});\n }\n setOutput(val);\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.index&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}}function DO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function TO(e,t){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}const FO={kernelName:Nt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,exclusive:i,reverse:o}=r,l=a.shape.length,u=ju([s],l);let c=a;null!=u&&(c=LF({inputs:{x:a},backend:n,attrs:{perm:u}}));const h=Gu(1,l)[0];if(h!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${a.shape.length-1} but got axis=${s}`);const f=c.shape[h];let d=hF({inputs:{x:c},backend:n});for(let e=0;e<=Math.ceil(Math.log2(f))-1;e++){const t=new AO(c.shape,!1,o),r=t.getCustomSetupFunc(e),a=d;d=n.runWebGLProgram(t,[d],d.dtype,r),n.disposeIntermediateTensorInfo(a)}if(i){const e=new AO(c.shape,i,o),t=d;d=n.runWebGLProgram(e,[d],d.dtype),n.disposeIntermediateTensorInfo(t)}if(null!=u){const e=LF({inputs:{x:d},backend:n,attrs:{perm:Hu(u)}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),e}return d}},RO={kernelName:At,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,weights:s}=t,{size:i,binaryOutput:o}=r;if(1===a.shape.length){const e=n.readSync(a.dataId),t=n.readSync(s.dataId),r=vT(e,t,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,r)}if(2===a.shape.length){const e=n.bufferSync(a),t=n.bufferSync(s),r=wT(e,t,i,o);return n.makeTensorInfo(r.shape,s.dtype,r.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${a.shape.length}.`)}};class OO{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${t};\n int offset_h = imod(h, ${t});\n int in_w = w / ${t};\n int offset_w = imod(w, ${t});\n int offset_d = (offset_h * ${t} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}const BO={kernelName:Dt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockSize:s,dataFormat:i}=r;Q(s>1,(()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`));const o=a.shape[0],l="NHWC"===i?a.shape[1]:a.shape[2],u="NHWC"===i?a.shape[2]:a.shape[3],c="NHWC"===i?a.shape[3]:a.shape[1],h=l*s,f=u*s,d=c/(s*s),p=new OO("NHWC"===i?[o,h,f,d]:[o,d,h,f],s,i);return n.runWebGLProgram(p,[a],a.dtype)}};class MO{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=e.outChannels/e.inChannels;let g="",y="";n&&(g=r?`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:a?`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:`\n float activation(float x) {\n ${n}\n }\n `,y="result = activation(result);");const b=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),r&&this.variableNames.push("preluActivationWeights"),a&&this.variableNames.push("leakyreluAlpha"),this.userCode=`\n ${g}\n\n const ivec2 strides = ivec2(${u}, ${c});\n const ivec2 pads = ivec2(${o}, ${l});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${m};\n int q = d2 - d1 * ${m};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${d}; wR++) {\n int xR = xRCorner + wR * ${h};\n\n if (xR < 0 || xR >= ${s}) {\n continue;\n }\n\n for (int wC = 0; wC < ${p}; wC++) {\n int xC = xCCorner + wC * ${f};\n\n if (xC < 0 || xC >= ${i}) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${b}\n ${y}\n setOutput(result);\n }\n `}}class $O{constructor(e,t=!1,n=null,r=!1,a=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;const s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,u=e.strideHeight,c=e.strideWidth,h=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,p=e.filterWidth,m=p;let g="int xR; int xC; int xCOffset;";for(let e=0;e= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n xTexelR${e}C${n}.zw = vec2(0.);\n }\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + 1 - 2;\n if(xR >= 0 && xR < ${s} && xCOffset >= 0 && xCOffset < ${i}) {\n vec4 previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if(xCOffset + 1 >= ${i}) {\n previous.zw = vec2(0.);\n }\n\n xR${e}C${n} = vec4(previous.zw, xTexelR${e}C${n}.xy);\n } else {\n xR${e}C${n} = vec4(0, 0, xTexelR${e}C${n}.xy);\n }\n `:`\n if(xR >= 0 && xR < ${s} && xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xR${e}C${n} = xTexelR${e}C${n};\n `,n+1= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n `,f>1&&(g+=`\n xCOffset -= 2;\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n `),g+=`\n xR${e}C${n+1} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.xy);\n `):g+=`\n xCOffset = xC + ${t};\n\n if(xR >= 0 && xR < ${s} &&\n xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n }\n\n xR${e}C${n+1} = xTexelR${e}C${n+2};\n `}}else n= 0 && xR < ${s}) {\n `,l%2==1?(g+=`\n xCOffset = xC + 1 - ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n if(xC + 1 >= 0 && xC + 1 < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xC + 1, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.zw, xTexelR${e}C${n+2}.zw);\n `,n+1= 0 && xCOffset < ${i}) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xR${e}C${n+1} = vec4(xTexelR${e}C${n+2}.xy, final.xy);\n `)):(g+=`\n if(xC >= 0 && xC < ${i}) {\n xTexelR${e}C${n} = getX(batch, xR, xC, d1);\n } else {\n xTexelR${e}C${n} = vec4(0.);\n }\n\n xCOffset = xC + ${c};\n if(xCOffset >= 0 && xCOffset < ${i}) {\n xTexelR${e}C${n+2} = getX(batch, xR, xCOffset, d1);\n } else {\n xTexelR${e}C${n+2} = vec4(0.);\n }\n\n xR${e}C${n} = vec4(\n xTexelR${e}C${n}.xy, xTexelR${e}C${n+2}.xy);\n `,n+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`));const h=ml(a.shape,s.shape,i,c,o,u,!0);let f;return f=ze().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new $O(h):new MO(h),n.runWebGLProgram(f,[a,s],"float32")}};class LO{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,a=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${s} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${e.batchSize}; b++) {\n for (int yR = 0; yR < ${e.outHeight}; yR++) {\n int xR = wR + yR * ${t} - ${r};\n\n if (xR < 0 || xR >= ${e.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${e.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${a};\n\n if (xC < 0 || xC >= ${e.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}}class zO{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,a=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${s}, ${i});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${t}; wR++) {\n float dyR = float(dyRCorner + wR) / ${r}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${t} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${o}; dm++) {\n int d2 = d1 * ${o} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const WO={kernelName:Ft,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:c}=r,h=ml(a.shape,c,i,o,l,u,!0),f=new LO(h);return n.runWebGLProgram(f,[a,s],"float32")}},UO={kernelName:Rt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:c}=r,h=ml(c,s.shape,i,o,l,u,!0),f=new zO(h);return n.runWebGLProgram(f,[a,s],"float32")}};class VO{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode="\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n "}}const jO={kernelName:Ot,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t,a=[...r.shape,...r.shape],s=re(r.shape),i=AF({inputs:{x:r},backend:n,attrs:{shape:[s]}}),o=new VO(s),l=n.runWebGLProgram(o,[i],i.dtype),u=AF({inputs:{x:l},backend:n,attrs:{shape:a}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}};class HO{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:n,padInfo:r,strideHeight:a,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:c,left:h}=r;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${s});\n const ivec2 pads = ivec2(${c}, ${h});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${i}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${t}) {\n for (int w = 0; w < ${o}; w++) {\n int wIn = wBeg + w * ${u};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}}const GO={kernelName:Bt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s}=t,{strides:i,pad:o,dilations:l}=r,u=fl(a.shape,s.shape,i,o,"NHWC",l);let c;const h=new HO(u);c=n.runWebGLProgram(h,[a,s],"float32");const f=AF({inputs:{x:c},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(c),f}},XO=_F({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:"\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n"}),KO={kernelName:Lt,backendName:"webgl",kernelFunc:XO},qO={kernelName:zt,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n}=e,{dy:r,y:a}=t,s=ze().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new cF("\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n",r.shape,a.shape):new uF("return (b >= 1.0) ? a : a * (b + 1.0);",r.shape,a.shape);return n.runWebGLProgram(s,[r,a],r.dtype)}},YO=xF({opSnippet:"return float(a == b);",packedOpSnippet:"\n return vec4(equal(a, b));\n",dtype:"bool"}),JO={kernelName:Ut,backendName:"webgl",kernelFunc:YO},ZO=_F({opSnippet:`\n // Error function is calculated approximately with elementary function.\n // See "Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables", Abramowitz and Stegun.\n float p = ${Yf};\n float a1 = ${Jf};\n float a2 = ${Zf};\n float a3 = ${Qf};\n float a4 = ${ed};\n float a5 = ${td};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`}),QO={kernelName:Wt,backendName:"webgl",kernelFunc:ZO},eB="return exp(x);",tB=_F({opSnippet:eB,packedOpSnippet:eB,cpuKernelImpl:kT}),nB={kernelName:Vt,backendName:"webgl",kernelFunc:tB};function rB(e){const{inputs:t,attrs:n,backend:r}=e,{dim:a}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice();let l=a;return a<0&&(Q(-(i+1)<=a,(()=>`Axis must be in the interval [${-(i+1)}, ${i}]`)),l=i+a+1),o.splice(l,0,1),AF({inputs:{x:s},backend:r,attrs:{shape:o}})}const aB={kernelName:jt,backendName:"webgl",kernelFunc:rB},sB="return exp(x) - 1.0;",iB=_F({opSnippet:sB,packedOpSnippet:sB,cpuKernelImpl:ET}),oB={kernelName:Ht,backendName:"webgl",kernelFunc:iB};class lB{constructor(e,t,n){this.variableNames=["real","imag"];const r=t[1];this.outputShape=t;const a=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${r}.0`:"1.0";let i;if("real"===e)i="return real * expR - imag * expI;";else{if("imag"!==e)throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);i="return real * expI + imag * expR;"}this.userCode=`\n const float exponentMultiplier = ${a};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${i}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${r});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${r}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${s};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}}function uB(e,t,n){const r=n.texData.get(e.dataId),a=re(e.shape),s=e.shape[e.shape.length-1],i=AF({inputs:{x:e},backend:n,attrs:{shape:[a/s,s]}}),o=i.shape,l=new lB("real",o,t),u=new lB("imag",o,t),c=[{dataId:r.complexTensorInfos.real.dataId,dtype:r.complexTensorInfos.real.dtype,shape:o},{dataId:r.complexTensorInfos.imag.dataId,dtype:r.complexTensorInfos.imag.dtype,shape:o}],h=n.runWebGLProgram(l,c,"float32"),f=n.runWebGLProgram(u,c,"float32"),d=dF({inputs:{real:h,imag:f},backend:n});n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f);const p=AF({inputs:{x:d},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(d),p}const cB={kernelName:Gt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return uB(r,!1,n)}};class hB{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode="\n uniform float value;\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n "}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}function fB(e){const{backend:t,attrs:n}=e,{shape:r,value:a}=n;let{dtype:s}=n;if(s=s||Se(a),"string"===s){const e=ge(s,re(r));return e.fill(a),t.makeTensorInfo(r,s,e)}{const e=new hB(r,a),n=e.getCustomSetupFunc(a);return t.runWebGLProgram(e,[],s,n)}}const dB={kernelName:Xt,backendName:"webgl",kernelFunc:fB};class pB{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${t} - x;\n float outputValue;\n if(coordX >= 0 && coordX < ${t}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}}const mB={kernelName:Kt,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:n}=e,r=t,a=new pB(n.shape);return r.runWebGLProgram(a,[n],n.dtype)}},gB="return floor(x);",yB=_F({opSnippet:gB,packedOpSnippet:gB,cpuKernelImpl:CT}),bB={kernelName:qt,backendName:"webgl",kernelFunc:yB},vB=xF({opSnippet:"\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n",packedOpSnippet:"\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n",dtype:"int32"}),wB={kernelName:Yt,backendName:"webgl",kernelFunc:vB};class _B{constructor(e){this.variableNames=["A"];const t=WD(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${r}.0, ${n}.0);\n\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}}class xB{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=WD(),[n,r]=e;this.outputShape=e,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${r}.0, ${n}.0);\n vec4 values = ${t.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${t.output} = result;\n }\n `}}const kB={kernelName:$r,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e;let{pixels:a}=t;const{numChannels:s}=r,i="undefined"!=typeof HTMLVideoElement&&a instanceof HTMLVideoElement,o="undefined"!=typeof HTMLImageElement&&a instanceof HTMLImageElement,[l,u]=i?[a.videoWidth,a.videoHeight]:[a.width,a.height],c=[u,l],h=[u,l,s];(o||i)&&(null==EB&&(EB=document.createElement("canvas").getContext("2d")),EB.canvas.width=l,EB.canvas.height=u,EB.drawImage(a,0,0,l,u),a=EB.canvas);const f=n.makeTensorInfo(c,"int32");n.texData.get(f.dataId).usage=fD.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(f.dataId),a);const d=ze().getBool("WEBGL_PACK")?new xB(h):new _B(h),p=n.runWebGLProgram(d,[f],"int32");return n.disposeData(f.dataId),p}};let EB;const CB={kernelName:zr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:c,dilations:h,dimRoundingMode:f,activation:d,leakyreluAlpha:p}=r,m=El(c),g=ml(a.shape,s.shape,l,h,u,f,!1,m);let y;const b=[];if(1!==g.filterHeight||1!==g.filterWidth||1!==g.dilationHeight||1!==g.dilationWidth||1!==g.strideHeight||1!==g.strideWidth||"SAME"!==g.padInfo.type&&"VALID"!==g.padInfo.type)if(ze().getBool("WEBGL_CONV_IM2COL")&&1===a.shape[0])y=fO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});else{const e=null!=i,t=null!=o,r="leakyrelu"===d,l=d?kF(d,!1):null,u=new lO(g,e,l,t,r),c=[a,s];if(i&&c.push(i),o&&c.push(o),r){const e=n.makeTensorInfo([],"float32",Qr(p,"float32"));c.push(e),b.push(e)}y=n.runWebGLProgram(u,c,"float32")}else y=hO({x:a,filter:s,convInfo:g,backend:n,bias:i,activation:d,preluActivationWeights:o,leakyreluAlpha:p});const v=AF({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach((e=>n.disposeIntermediateTensorInfo(e))),v}},SB={kernelName:Wr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:c,dimRoundingMode:h,activation:f,leakyreluAlpha:d}=r,p=[];let m=c;null==m&&(m=[1,1]),Q(kl(l,m),(()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${m}'`));const g=ml(a.shape,s.shape,l,m,u,h,!0),y=ze().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=f?kF(f,y):null,v=[a,s],w=null!=i,_=null!=o,x="leakyrelu"===f;if(w&&v.push(i),_&&v.push(o),x){const e=n.makeTensorInfo([],"float32",Qr(d,"float32"));v.push(e),p.push(e)}let k;k=y?new $O(g,w,b,_,x):new MO(g,w,b,_,x);const E=n.runWebGLProgram(k,v,"float32");return p.forEach((e=>n.disposeIntermediateTensorInfo(e))),E}};class NB{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;const r=pT(t.length),a=pT(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=`\n ${r} strides = ${r}(${this.strides});\n void main() {\n ${a} coords = getOutputCoords();\n int flattenIndex = 0;\n for (int j = 0; j < ${this.sliceDim}; j++) {\n int index = round(getIndices(coords[0], j));\n flattenIndex += index * ${s};\n }\n setOutput(getX(flattenIndex, coords[1]));\n }\n `}}const IB={kernelName:Qt,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{params:r,indices:a}=t,s=a.shape,i=s[s.length-1],[o,l,u,c]=wi(r,a),h=AF({inputs:{x:a},backend:n,attrs:{shape:[l,i]}}),f=AF({inputs:{x:r},backend:n,attrs:{shape:[re(r.shape)/u,u]}}),d=new NB(i,c,[l,u]),p=n.runWebGLProgram(d,[f,h],f.dtype),m=AF({inputs:{x:p},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(p),m}};class AB{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const n=pT(this.rank),r=function(e,t){const n=["resRC.x","resRC.y","resRC.z","resRC.w"],r=[];for(let t=0;tn.disposeIntermediateTensorInfo(e))),n.makeTensorInfo(l.outputShape,r.dtype,r.values)}const p=new AB(h.shape,d),m=n.runWebGLProgram(p,[h,f],h.dtype);c.push(m);const g=AF({inputs:{x:m},backend:n,attrs:{shape:l.outputShape}});return c.forEach((e=>n.disposeIntermediateTensorInfo(e))),g}},TB=xF({opSnippet:"return float(a > b);",packedOpSnippet:"\n return vec4(greaterThan(a, b));\n",cpuKernelImpl:NT,dtype:"bool"}),FB={kernelName:en,backendName:"webgl",kernelFunc:TB},RB=xF({opSnippet:"return float(a >= b);",packedOpSnippet:"\n return vec4(greaterThanEqual(a, b));\n",dtype:"bool"}),OB={kernelName:tn,backendName:"webgl",kernelFunc:RB},BB={kernelName:rn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{input:r}=t;return uB(r,!0,n)}},MB=_F({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),$B={kernelName:sn,backendName:"webgl",kernelFunc:MB},PB=_F({opSnippet:"return float(isinf(x));",dtype:"bool"}),LB={kernelName:on,backendName:"webgl",kernelFunc:PB},zB=_F({opSnippet:"return float(isnan(x));",dtype:"bool"}),WB={kernelName:ln,backendName:"webgl",kernelFunc:zB},UB=xF({opSnippet:"return float(a < b);",packedOpSnippet:"\n return vec4(lessThan(a, b));\n",cpuKernelImpl:IT,dtype:"bool"}),VB={kernelName:cn,backendName:"webgl",kernelFunc:UB},jB=xF({opSnippet:"return float(a <= b);",packedOpSnippet:"\n return vec4(lessThanEqual(a, b));\n",dtype:"bool"}),HB={kernelName:hn,backendName:"webgl",kernelFunc:jB},GB={kernelName:fn,backendName:"webgl",kernelFunc:function(e){const{backend:t,attrs:n}=e,{start:r,stop:a,num:s}=n,i=AT(r,a,s);return t.makeTensorInfo([i.length],"float32",i)}},XB=_F({opSnippet:"if (x < 0.0) return NAN;\n return log(x);",packedOpSnippet:"\n vec4 result = log(x);\n vec4 isNaN = vec4(lessThan(x, vec4(0.0)));\n result.r = isNaN.r == 1.0 ? NAN : result.r;\n result.g = isNaN.g == 1.0 ? NAN : result.g;\n result.b = isNaN.b == 1.0 ? NAN : result.b;\n result.a = isNaN.a == 1.0 ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:DT}),KB={kernelName:dn,backendName:"webgl",kernelFunc:XB},qB=_F({opSnippet:"return log(1.0 + x);"}),YB={kernelName:pn,backendName:"webgl",kernelFunc:qB},JB=xF({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:"\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n",dtype:"bool"}),ZB={kernelName:mn,backendName:"webgl",kernelFunc:JB},QB=_F({opSnippet:"return float(!(x >= 1.0));"}),eM={kernelName:gn,backendName:"webgl",kernelFunc:QB},tM=xF({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:"\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n",dtype:"bool"}),nM={kernelName:yn,backendName:"webgl",kernelFunc:tM};class rM{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[];const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${s}; j <= ${s}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${i}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${o};\n setOutput(val);\n }\n `}}class aM{constructor(e,t,n,r,a){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const s=t,i=e[3]-1;let o;this.outputShape=e;const l=`float(${n}) + float(${r}) * sum`;o=.5===a?`inversesqrt(${l})`:1===a?`1.0/(${l})`:`exp(log(${l}) * float(-${a}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${s};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${s}; j <= ${s}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${i}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${o};\n setOutput(result);\n }\n `}}const sM={kernelName:vn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=r,u=ze().getBool("WEBGL_PACK_NORMALIZATION")?new aM(a.shape,s,i,o,l):new rM(a.shape,s,i,o,l);return n.runWebGLProgram(u,[a],a.dtype)}};class iM{constructor(e,t,n,r,a){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=a,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${t})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${t} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${r}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${r})\n * float(${a})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${a});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}}const oM={kernelName:wn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:c}=r,h=new iM(a.shape,o,l,u,c);return n.runWebGLProgram(h,[a,s,i],a.dtype)}};function lM(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{reductionIndices:s,keepDims:i}=r,o=a.shape.length,l=de(s,a.shape);let u=l;const c=ju(u,o),h=null!=c,f=n.shouldExecuteOnCPU([a]);let d=a;if(h){if(f){const e=n.texData.get(d.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:FT}),hM={kernelName:xn,backendName:"webgl",kernelFunc:cM},fM={kernelName:kn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t;LD(a,"maxPool");const{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=r;Q(kl(i,1),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '1'`));const u=dl(a.shape,s,i,1,o,l);if(1===u.filterWidth&&1===u.filterHeight&&se(u.inShape,u.outShape))return hF({inputs:{x:a},backend:n});const c=new wR(u,"max",!1);return n.runWebGLProgram(c,[a],a.dtype)}},dM={kernelName:Cn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=r,c=pl(a.shape,s,i,[1,1,1],o,u,l),h=new _R(c,"max",!1);return n.runWebGLProgram(h,[a],a.dtype)}};class pM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,a=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=a-1-e.padInfo.top,o=s-1-e.padInfo.left,l=a*s-1;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${o});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${a};\n wR += ${r}) {\n float dyR = float(dyRCorner + wR) / ${t}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${s}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${s} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}}class mM{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,a=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=o-1-e.padInfo.front,h=l-1-e.padInfo.top,f=u-1-e.padInfo.left,d=o*l*u-1;this.userCode=`\n const ivec3 pads = ivec3(${c}, ${h}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${o};\n wD += ${a}) {\n float dyD = float(dyDCorner + wD) / ${t}.0;\n\n if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${s}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${u};\n wC += ${i}) {\n float dyC = float(dyCCorner + wC) / ${r}.0;\n\n if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${u} +\n wR * ${u} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}}const gM={kernelName:Sn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:c}=r,h=pl(i.shape,o,l,[1,1,1],u,c),f=new _R(h,"max",!0),d=n.runWebGLProgram(f,[i],i.dtype),p=new mM(h),m=n.runWebGLProgram(p,[a,d],i.dtype);return n.disposeIntermediateTensorInfo(d),m}},yM={kernelName:En,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{dy:a,input:s,output:i}=t,o=s;LD([s,i],"maxPoolGrad");const{filterSize:l,strides:u,pad:c,dimRoundingMode:h}=r,f=dl(o.shape,l,u,1,c,h),d=new wR(f,"max",!0),p=n.runWebGLProgram(d,[o],o.dtype),m=new pM(f),g=n.runWebGLProgram(m,[a,p],o.dtype);return n.disposeIntermediateTensorInfo(p),g}},bM={kernelName:Nn,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{filterSize:a,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;Q(4===r.shape.length,(()=>`Error in maxPool: input must be rank 4 but got rank ${r.shape.length}.`));const u=[1,1];Q(kl(s,u),(()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`));const c=dl(r.shape,a,s,u,i),[h,f]=function(e,t,n,r){let a=new wR(n,"max",!1);const s=r.runWebGLProgram(a,[e],"float32");return a=new wR(n,"max",!0,!0,t),[s,r.runWebGLProgram(a,[e],"float32")]}(r,o,c,l);return[h,f]}},vM={kernelName:In,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{x:r}=e,{keepDims:a,axis:s}=t,i=n,o=r.shape.length,l=de(s,r.shape);let u=l;const c=ju(u,o),h=null!=c,f=i.shouldExecuteOnCPU([r]),d=[];let p=r;if(h){if(f){const e=i.texData.get(p.dataId).values,t=new Array(o);for(let e=0;e 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n",cpuKernelImpl:RT}),xM={kernelName:Dn,backendName:"webgl",kernelFunc:_M};class kM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=pT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r),l="reflect"===n?0:1;this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n\n void main() {\n ${a} outC = getOutputCoords();\n for (int i = 0; i < ${r}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n `:`\n int start = ${s};\n int end = ${i};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `}}class EM{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=pT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=KT("rc",r),l=KT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h="reflect"===n?0:1;let f="";if(1===r){const e=`\n ${a} source = rc;\n if (source < start) {\n source = start * 2 - source - ${h};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${h};\n }\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n `}else{const e=`\n ${a} source = rc;\n ${a} lt = ${a}(lessThan(source, start));\n ${a} gte = ${a}(greaterThanEqual(source, end));\n ${a} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${h}) +\n gte * ((end - 1) * 2 - source + ${h});\n source -= start;\n `;f=`\n ${a} rc = outputLoc;\n ${e}\n result[0] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[1] = getChannel(getX(${l.join()}), ${c});\n }\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {\n ${e}\n result[2] = getChannel(getX(${l.join()}), ${c});\n ${o[r-1]} += 1;\n if(${u}) {\n ${e}\n result[3] = getChannel(getX(${l.join()}), ${c});\n }\n }\n `}this.userCode=`\n const ${a} start = ${a}(${s});\n const ${a} end = ${a}(${i});\n\n void main() {\n ${a} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}}const CM={kernelName:Tn,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:n})=>{const{x:r}=e,{paddings:a,mode:s}=n,i=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new EM(r.shape,a,s):new kM(r.shape,a,s);return t.runWebGLProgram(i,[r],r.dtype)}},SM=xF({opSnippet:"if (b == 0.0) return NAN;\n return mod(a, b);",packedOpSnippet:"\n vec4 result = mod(a, b);\n vec4 isNaN = vec4(equal(b, vec4(0.0)));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),NM={kernelName:Fn,backendName:"webgl",kernelFunc:SM};class IM{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=`\n uniform float seed;\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${t-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${t-1}));\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.seedLoc&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}const AM=xF({opSnippet:"\nif (a == b) {\n return 1.0;\n};\nreturn a / b;",packedOpSnippet:"\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n",checkOutOfBounds:!0}),DM={kernelName:Pt,backendName:"webgl",kernelFunc:AM},TM="return a - b;",FM=xF({opSnippet:TM,packedOpSnippet:TM,supportsComplex:!0,cpuKernelImpl:UT}),RM={kernelName:kr,backendName:"webgl",kernelFunc:FM};function OM(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{dim:s}=r,i=de([s],a.shape),o=lM({inputs:{x:a},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=Uu(o.shape,i),u=AF({inputs:{x:o},backend:n,attrs:{shape:l}}),c=FM({inputs:{a,b:u},backend:n}),h=tB({inputs:{x:c},backend:n}),f=$F({inputs:{x:h},backend:n,attrs:{axis:i,keepDims:!1}}),d=AF({inputs:{x:f},backend:n,attrs:{shape:l}}),p=AM({inputs:{a:h,b:d},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(d),p}const BM={kernelName:wr,backendName:"webgl",kernelFunc:OM},MM={kernelName:Rn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{logits:a}=t,{numSamples:s,seed:i,normalized:o}=r,l=o?a:OM({inputs:{logits:a},backend:n,attrs:{dim:a.shape.length-1}}),u=l.shape[0],c=l.shape[1],h=new IM(u,c,s),f=h.getCustomSetupFunc(i),d=n.runWebGLProgram(h,[l],"int32",f);return o||n.disposeIntermediateTensorInfo(l),d}},$M="return -x;",PM={kernelName:Bn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{x:r}=t;if(n.shouldExecuteOnCPU([r])){const e=n.texData.get(r.dataId),[t,a]=BT(e.values,r.shape,r.dtype);return n.makeTensorInfo(a,r.dtype,t)}let a;return a=ze().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new aF(r.shape,$M):new tF(r.shape,$M),n.runWebGLProgram(a,[r],r.dtype)}},LM=nf,zM={kernelName:$n,backendName:"webgl",kernelFunc:function(e){nd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=r,u=n.readSync(a.dataId),c=n.readSync(s.dataId),{selectedIndices:h}=LM(u,c,i,o,l);return n.makeTensorInfo([h.length],"int32",new Int32Array(h))}},WM=rf,UM={kernelName:Pn,backendName:"webgl",kernelFunc:function(e){nd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),{selectedIndices:f,validOutputs:d}=WM(c,h,i,o,l,u);return[n.makeTensorInfo([f.length],"int32",new Int32Array(f)),n.makeTensorInfo([],"int32",new Int32Array([d]))]}},VM=af,jM={kernelName:Ln,backendName:"webgl",kernelFunc:function(e){nd("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{inputs:t,backend:n,attrs:r}=e,{boxes:a,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=r,c=n.readSync(a.dataId),h=n.readSync(s.dataId),f=i,d=o,p=l,m=u,{selectedIndices:g,selectedScores:y}=VM(c,h,f,d,p,m);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}};class HM{constructor(e,t,n,r){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${r}), float(${n}),\n float(index == coords.y)));\n }\n `}}const GM={kernelName:Wn,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{indices:a}=t,{depth:s,onValue:i,offValue:o}=r,l=re(a.shape),u=new HM(l,s,i,o),c=AF({inputs:{x:a},backend:n,attrs:{shape:[l]}}),h=n.runWebGLProgram(u,[c],a.dtype);n.disposeIntermediateTensorInfo(c);const f=AF({inputs:{x:h},backend:n,attrs:{shape:[...a.shape,s]}});return n.disposeIntermediateTensorInfo(h),f}};function XM(e){const{inputs:t,backend:n}=e,{x:r}=t;if("complex64"===r.dtype){const e=WR({inputs:{input:r},backend:n}),t=XM({inputs:{x:e},backend:n}),a=nO({inputs:{input:r},backend:n}),s=XM({inputs:{x:a},backend:n}),i=dF({inputs:{real:t,imag:s},backend:n});return n.disposeIntermediateTensorInfo(e),n.disposeIntermediateTensorInfo(t),n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(s),i}return fB({attrs:{shape:r.shape,dtype:r.dtype,value:"string"===r.dtype?"":0},backend:n})}const KM={kernelName:Br,backendName:"webgl",kernelFunc:XM},qM={kernelName:zn,backendName:"webgl",kernelFunc:function e(t){const{inputs:n,backend:r}=t,{x:a}=n;if("string"===a.dtype)throw new Error("onesLike is not supported under string dtype");if("complex64"===a.dtype){const t=WR({inputs:{input:a},backend:r}),n=e({inputs:{x:t},backend:r}),s=nO({inputs:{input:a},backend:r}),i=XM({inputs:{x:s},backend:r}),o=dF({inputs:{real:n,imag:i},backend:r});return r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i),o}return fB({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:r})}},YM={kernelName:Un,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{axis:a}=r;if(1===t.length)return rB({inputs:{input:t[0]},backend:n,attrs:{dim:a}});const s=t[0].shape,i=t[0].dtype;t.forEach((e=>{ee(s,e.shape,"All tensors passed to stack must have matching shapes"),Q(i===e.dtype,(()=>"All tensors passed to stack must have matching dtypes"))}));const o=[],l=iO({inputs:t.map((e=>{const t=rB({inputs:{input:e},backend:n,attrs:{dim:a}});return o.push(t),t})),backend:n,attrs:{axis:a}});return o.forEach((e=>n.disposeIntermediateTensorInfo(e))),l}};class JM{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=pT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,r);this.userCode=1!==r?`\n ${a} start = ${a}(${s});\n ${a} end = ${a}(${i});\n uniform float value;\n\n void main() {\n ${a} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${a} coords = outC - start;\n setOutput(getX(${o}));\n }\n }\n `:`\n int start = ${s};\n int end = ${i};\n uniform float value;\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `}getCustomSetupFunc(e){return(t,n)=>{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class ZM{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map(((t,n)=>t[0]+e[n]+t[1]));const r=e.length,a=pT(r),s=t.map((e=>e[0])).join(","),i=t.map(((t,n)=>t[0]+e[n])).join(","),o=KT("rc",r),l=KT("source",r),u=`${o[r-1]} < ${this.outputShape[r-1]}`,c=1===r?"source":`vec2(${l.slice(-2).join()})`,h=[`${a} rc = outputLoc;`,`${o[r-1]} += 1;\n if(${u}) {\n `,1===r?"":`}\n rc = outputLoc;\n ${o[r-2]} += 1;\n if(${o[r-2]} < ${this.outputShape[r-2]}) {`,1===r?"":` ${o[r-1]} += 1;\n if(${u}) {`],f=1===r?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let d="";for(let e=0,t=1===r?2:4;e{null==this.valueLoc&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}}const QM=e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{paddings:s,constantValue:i}=r,o=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ZM(a.shape,s,i):new JM(a.shape,s,i),l=o.getCustomSetupFunc(i);return n.runWebGLProgram(o,[a],a.dtype,l)},e$={kernelName:Vn,backendName:"webgl",kernelFunc:QM},t$=xF({opSnippet:"\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n",packedOpSnippet:"\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b));\n \n result.r = isNaN.r > 0. ? NAN : result.r;\n result.g = isNaN.g > 0. ? NAN : result.g;\n result.b = isNaN.b > 0. ? NAN : result.b;\n result.a = isNaN.a > 0. ? NAN : result.a;\n\n return result;\n"}),n$={kernelName:Hn,backendName:"webgl",kernelFunc:t$},r$={kernelName:Xn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{axis:s,keepDims:i}=r,o=a.shape.length,l=[],u=de(s,a.shape);let c=u;const h=ju(c,o);let f,d=a;if(null!=h&&(d=LF({inputs:{x:a},backend:n,attrs:{perm:h}}),c=Gu(c.length,o),l.push(d)),Vu("prod",c,o),n.shouldExecuteOnCPU([d])){const e=n.texData.get(d.dataId).values,{outVals:t,outShape:r,outDtype:a}=MT(d.shape,d.dtype,e,c);f=n.makeTensorInfo(r,a,t)}else{const[e,t]=Wu(d.shape,c),r=re(t),s=AF({inputs:{x:d},backend:n,attrs:{shape:[-1,r]}}),i=RF(s,Na(a.dtype),"prod",n);f=AF({inputs:{x:i},backend:n,attrs:{shape:e}}),l.push(s),l.push(i)}if(i){l.push(f);const e=Uu(f.shape,u);f=AF({inputs:{x:f},backend:n,attrs:{shape:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),f}},a$=e=>{const{backend:t,attrs:n}=e,{start:r,stop:a,step:s,dtype:i}=n,o=$T(r,a,s,i);return t.makeTensorInfo([o.length],i,o)},s$={kernelName:Kn,backendName:"webgl",kernelFunc:a$},i$=_F({opSnippet:"return 1.0 / x;"}),o$={kernelName:Yn,backendName:"webgl",kernelFunc:i$},l$=_F({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : x;\n",packedOpSnippet:"\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),u$={kernelName:Jn,backendName:"webgl",kernelFunc:l$},c$=_F({opSnippet:"if (isnan(x)) return x;\n return (x < 0.0) ? 0.0 : min(6.0, x);\n",packedOpSnippet:"\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n"}),h$={kernelName:rr,backendName:"webgl",kernelFunc:c$};class f${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}}class d${constructor(e,t,n,r,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n];let h;h=a?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${u[0]/c[0]},\n ${u[1]/c[1]},\n ${u[1]/c[1]});\n const vec3 inputShapeRC = vec3(${i}.0, ${o}.0,\n ${o}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${h};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}}const p$={kernelName:tr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=ze().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new d$(a.shape,l,u,s,i):new f$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],"float32")}};class m${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${r-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${a-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const g$={kernelName:nr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new m$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class y${constructor(e,t,n,r,a){this.variableNames=["A"],this.outputShape=[];const[s,i,o,l]=e;this.outputShape=[s,t,n,l];const u=[r&&t>1?i-1:i,r&&n>1?o-1:o],c=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=r?"0.5":"0.0";let f;f=a?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${u[0]/c[0]},\n ${u[1]/c[1]});\n const vec2 inputShapeRC = vec2(${i}.0, ${o}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${h})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}}const b$={kernelName:Qn,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a}=t,{alignCorners:s,halfPixelCenters:i,size:o}=r,[l,u]=o,c=new y$(a.shape,l,u,s,i);return n.runWebGLProgram(c,[a],a.dtype)}};class v${constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,r,a]=t,[,s,i]=e,o=[n&&s>1?r-1:r,n&&i>1?a-1:a],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],c=o[1]/l[1],h=1/u,f=1/c,d=2*Math.ceil(h)+2,p=2*Math.ceil(f)+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${u});\n const float widthScale = float(${c});\n\n const float invHeightScale = float(${h});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${p});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${s}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${i}) {\n continue;\n }\n\n float sourceFracRow =\n float(${o[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${o[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${r}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${a}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}}const w$={kernelName:er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{images:a,dy:s}=t,{alignCorners:i}=r,o=new v$(s.shape,a.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}};class _${constructor(e,t){this.variableNames=["x"];const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,1===n)return void(this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${e[0]} - coord - 1));\n }\n `);const r=e.map(((n,r)=>(n=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`)(r))).join(","),a=pT(n);this.userCode=`\n void main() {\n ${a} coords = getOutputCoords();\n setOutput(getX(${r}));\n }\n `}}class x${constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;const r=KT("rc",n),a=`${r[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${r[n-2]} + 1 < ${this.outputShape[n-2]}`,i=pT(n);function o(n){const r=e.map(((r,a)=>function(n,r){return-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - ${r[n]} - 1`:`${r[n]}`}(a,n)));return`getChannel(getX(${r.join(",")}), vec2(${r.slice(-2).join(",")}))`}this.userCode=1===n?`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${e[0]} - rc - 1),\n ${e[0]} - rc - 1);\n if(${a}){\n result.g = getChannel(getX(${e[0]} - (rc + 1) - 1),\n ${e[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:`\n void main() {\n ${i} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${function(e){return o(e)}(r.slice())};\n if(${a}){\n result.g = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",o(e)}(r.slice())};\n }\n if(${s}) {\n result.b = ${function(e){return e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n if(${a}) {\n result.a = ${function(e){return e[n-1]="("+e[n-1]+" + 1)",e[n-2]="("+e[n-2]+" + 1)",o(e)}(r.slice())};\n }\n }\n setOutput(result);\n }\n `}}const k$={kernelName:ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{dims:s}=r,i=a.shape.length,o=de(s,a.shape);if(0===i)return hF({inputs:{x:a},backend:n});const l=ze().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new x$(a.shape,o):new _$(a.shape,o);return n.runWebGLProgram(l,[a],a.dtype)}};class E${constructor(e,t){this.variableNames=["Image"],this.outputShape=[];const n=e[1],r=e[2];this.outputShape=e;let a="";a="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:`\n vec3 fill = vec3(${t.join(",")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n uniform vec4 params;\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${a}\n if(coordX >= 0 && coordX < ${r} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}getCustomSetupFunc(e,t,n,r){return(a,s)=>{null==this.paramsLoc&&(this.paramsLoc=a.getUniformLocationNoThrow(s,"params")),a.gl.uniform4f(this.paramsLoc,e,t,n,r)}}}const C$={kernelName:Pr,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{const{image:r}=e,{radians:a,fillValue:s,center:i}=t,o=n,l=new E$(r.shape,s),[u,c]=Uf(i,r.shape[1],r.shape[2]),h=l.getCustomSetupFunc(u,c,Math.sin(a),Math.cos(a));return o.runWebGLProgram(l,[r],r.dtype,h)}},S$=_F({opSnippet:"\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n"}),N$={kernelName:sr,backendName:"webgl",kernelFunc:S$},I$=_F({opSnippet:"return inversesqrt(x);",cpuKernelImpl:PT}),A$={kernelName:ir,backendName:"webgl",kernelFunc:I$};class D${constructor(e,t,n,r,a,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;const o=pT(a.length),l=pT(s.length);let u="";1===n?u="i":2===n&&(u="i, j");const c=`getIndices(${u})`;let h="";1===r?h="i":2===r&&(h="i, coords[1]");const f=`getUpdates(${h})`,d=t>1?"strides[j]":"strides";this.userCode=`\n ${o} strides = ${o}(${a});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${e}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${t}; j++) {\n int index = round(${c});\n flattenedIndex += index * ${d};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n `}}const T$={kernelName:or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{indices:a,updates:s}=t,{shape:i}=r,{sliceRank:o,numUpdates:l,sliceSize:u,strides:c,outputSize:h}=ki(0,a,i),f=[h/u,u];if(0===h)return n.makeTensorInfo(i,a.dtype);const d=AF({inputs:{x:a},backend:n,attrs:{shape:[l,o]}}),p=AF({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),m=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new D$(l,o,d.shape.length,p.shape.length,c,f),y=n.runWebGLProgram(g,[p,d,m],p.dtype),b=AF({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(m),b}};class F${constructor(e,t,n){let r,a;if(this.variableNames=["c","a","b"],this.outputShape=t,n>4)throw Error(`Where for rank ${n} is not yet supported`);if(1===n)a="resRC",r="resRC";else{const n=["resRC.x","resRC.y","resRC.z","resRC.w"],s=[],i=[];for(let r=0;r= 1.0) {\n setOutput(getA(${a}));\n } else {\n setOutput(getB(${a}));\n }\n }\n `}}const R$={kernelName:lr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n}=e,{condition:r,t:a,e:s}=t,i=new F$(r.shape.length,a.shape,a.shape.length);return n.runWebGLProgram(i,[r,a,s],Sa(a.dtype,s.dtype))}},O$=_F({opSnippet:`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${Kf};\n float scale = ${qf};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`}),B$={kernelName:ur,backendName:"webgl",kernelFunc:O$},M$=_F({opSnippet:"return 1.0 / (1.0 + exp(-1.0 * x));"}),$$={kernelName:pr,backendName:"webgl",kernelFunc:M$},P$=_F({opSnippet:"\n if (isnan(x)) { return 0.0; }\n return sign(x);\n"}),L$={kernelName:dr,backendName:"webgl",kernelFunc:P$},z$=_F({opSnippet:"if (isnan(x)) return x;\n return sin(x);\n"}),W$={kernelName:hr,backendName:"webgl",kernelFunc:z$},U$=_F({opSnippet:"\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n"}),V$={kernelName:fr,backendName:"webgl",kernelFunc:U$},j$=_F({opSnippet:"\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n"}),H$={kernelName:mr,backendName:"webgl",kernelFunc:j$},G$={kernelName:br,backendName:"webgl",kernelFunc:e=>{const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{blockShape:s,paddings:i}=r;Q(a.shape.length<=4,(()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet"));const o=s.reduce(((e,t)=>e*t)),l=[[0,0]];l.push(...i);for(let e=1+s.length;en.disposeIntermediateTensorInfo(e))),g}},X$={kernelName:Er,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{sparseIndices:a,sparseValues:s,defaultValue:i}=t,{outputShape:o}=r,{sliceRank:l,numUpdates:u,strides:c,outputSize:h}=ki(0,a,o),f=new D$(u,l,a.shape.length,s.shape.length,c,[h,1],!1),d=n.runWebGLProgram(f,[s,a,i],s.dtype),p=AF({inputs:{x:d},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(d),p}},K$={kernelName:vr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{numOrSizeSplits:s,axis:i}=r,o=de(i,a.shape)[0],l=fd(a,s,o),u=a.shape.length,c=new Array(u).fill(0),h=a.shape.slice();return l.map((e=>{const t=[...h];t[o]=e;const r=BR({inputs:{x:a},backend:n,attrs:{begin:c,size:t}});return c[o]+=e,r}))}},q$=_F({opSnippet:"return sqrt(x);"}),Y$={kernelName:gr,backendName:"webgl",kernelFunc:q$},J$=_F({opSnippet:"return x * x;"}),Z$={kernelName:xr,backendName:"webgl",kernelFunc:J$},Q$="return (a - b) * (a - b);",eP=xF({opSnippet:Q$,packedOpSnippet:Q$}),tP={kernelName:_r,backendName:"webgl",kernelFunc:eP},nP={kernelName:Mr,backendName:"webgl",kernelFunc:function({inputs:e,attrs:t,backend:n}){const{x:r}=e,a=`if (isnan(x)) return x;\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new tF(r.shape,a);return n.runWebGLProgram(s,[r],r.dtype)}};class rP{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;const r=n.length,a=pT(n.length),s=pT(n.length);let i="";if(1===r)i="coords * strides + begin";else{let e=0;i=n.map(((t,r)=>(e++,1===n.length?`coords * strides[${r}] + begin[${r}]`:`coords[${e-1}] * strides[${r}] + begin[${r}]`))).join(",")}this.userCode=`\n ${a} begin = ${a}(${e});\n ${a} strides = ${a}(${t});\n\n void main() {\n ${s} coords = getOutputCoords();\n setOutput(getX(${i}));\n }\n `}}const aP={kernelName:Cr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:h,shrinkAxisMask:f}=r,{nonStrided:d,$begin:p,$strides:m,size:g,newShape:y,outShape:b}=Li(a.shape,s,i,o,l,u,c,h,f),v=AF({inputs:{x:a},backend:n,attrs:{shape:y}});let w;if(d){const e=BR({inputs:{x:v},backend:n,attrs:{begin:p,size:g}});w=AF({inputs:{x:e},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(e)}else if(b.some((e=>0===e)))w=n.makeTensorInfo(b,a.dtype,[]);else if(n.shouldExecuteOnCPU([v])){const e=n.texData.get(v.dataId).values,t=Vs(v.shape,v.dtype,e),r=WT(b,t,m,p);w=n.makeTensorInfo(b,v.dtype,r.values)}else{const e=new rP(p,m,b);w=n.runWebGLProgram(e,[v],v.dtype)}const _=AF({inputs:{x:w},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(w),_}},sP=_F({opSnippet:"return tan(x);"}),iP={kernelName:Sr,backendName:"webgl",kernelFunc:sP},oP=_F({opSnippet:"\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n"}),lP={kernelName:Nr,backendName:"webgl",kernelFunc:oP};class uP{constructor(e,t){this.variableNames=["A"];const n=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;const n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],r=[];for(let t=0;taa(e))),t=Vs(a.shape,a.dtype,e),r=VT(t,s);return n.makeTensorInfo(r.shape,r.dtype,r.values)}const i=new uP(a.shape,s);return n.runWebGLProgram(i,[a],a.dtype)}const hP={kernelName:Ir,backendName:"webgl",kernelFunc:cP},fP={kernelName:Ar,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a}=t,{k:s,sorted:i}=r,o=n.readSync(a.dataId),[l,u]=jT(o,a.shape,a.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}};class dP{constructor(e,t,n,r,a,s){this.variableNames=["Image","Transforms"],this.outputShape=s;const i="nearest"===n?1:2;let o;switch(r){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${o} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${o} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${a});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${a});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${t}));\n float mapY = mapCoord(inY, float(${e}));\n\n if (${i} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}}const pP={kernelName:Dr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{image:a,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=r,[c,h,f,d]=a.shape,[p,m]=null!=u?u:[h,f],g=new dP(h,f,i,o,l,[c,p,m,d]);return n.runWebGLProgram(g,[a,s],"float32")}},mP={kernelName:Fr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,attrs:n,backend:r}=e,{axis:a}=n,{x:s}=t;LD(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");const i=r.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=GT(i,a,s.shape,s.dtype);return[r.makeTensorInfo(l,s.dtype,o),r.makeTensorInfo([u.length],"int32",u)]}},gP={kernelName:Rr,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{value:a}=t;let{axis:s}=r;s<0&&(s+=a.shape.length);const i=a,o=i.shape.length,l=a.shape[s],u=new Array(o-1);let c=0;for(let e=0;en.disposeIntermediateTensorInfo(e))),p}};class yP{constructor(e,t){this.variableNames=["x","segmentIds"];const n=e.windowSize,r=e.batchSize,a=e.inSize,s=e.numSegments,i=s*Math.ceil(a/n);this.outputShape=[r,i];const o=4*Math.floor(n/4),l=n%4,u="\n sumValue += dot(values, segFilter);\n ";let c="";a%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return initializationValue;\n }\n `);let h="";a%n>0&&(h=`\n if (inIdx < 0 || inIdx >= ${a}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = 0.0;\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${h}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${s})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${s})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${o}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${u}\n }\n\n int inIdx = inOffset + ${o};\n if (${1===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${2===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${u}\n } else if (${3===l}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${u}\n }\n setOutput(sumValue);\n }\n `}}const bP=[sM,oM,UF,jF,GF,KF,JF,eR,tR,nR,lR,uR,hR,dR,yR,mR,vR,kR,xR,SR,NR,IR,TR,$R,PR,VR,GR,qR,ZR,pF,oO,bO,vO,dO,_O,xO,wO,EO,SO,IO,FO,RO,BO,WO,UO,PO,jO,GO,KO,qO,JO,QO,nB,aB,oB,cB,dB,mB,bB,wB,kB,CB,SB,IB,DB,FB,OB,fF,BB,rO,$B,LB,WB,yF,VB,HB,GB,YB,KB,ZB,eM,nM,uM,dM,fM,gM,yM,bM,hM,vM,wM,xM,CM,NM,MM,IF,PM,zM,UM,jM,zR,GM,qM,YM,e$,n$,wF,r$,s$,UR,DM,o$,h$,u$,DF,p$,g$,b$,w$,k$,C$,N$,A$,T$,R$,B$,$$,L$,W$,V$,MR,BM,H$,G$,X$,K$,Y$,Z$,tP,nP,aP,RM,PF,iP,lP,hP,fP,pP,zF,mP,gP,{kernelName:Or,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:r}=e,{x:a,segmentIds:s}=t,{numSegments:i}=r,o=a.shape.length,l=[];let u=0;const c=ju([u],o);let h=a;null!=c&&(h=LF({inputs:{x:a},backend:n,attrs:{perm:c}}),l.push(h),u=Gu(1,o)[0]);const f=pd(h.shape,u,i),d=re([h.shape[u]]),p=AF({inputs:{x:h},backend:n,attrs:{shape:[-1,d]}});l.push(p);const m=Na(a.dtype),g=(e,t,r,a,s)=>{const i=e.shape[0],o=e.shape[1],u=dd(o,s),c=new yP({windowSize:u,inSize:o,batchSize:i,numSegments:s},t),h=n.compileAndRun(c,[e,r],a);if(l.push(h),h.shape[1]===s)return h;const f=a$({backend:n,attrs:{start:0,stop:s,step:1,dtype:"float32"}}),d=cP({inputs:{x:f},backend:n,attrs:{reps:[o/u]}});return l.push(f),l.push(d),g(h,t,d,a,s)},y=AF({inputs:{x:g(p,"unsortedSegmentSum",s,m,i)},backend:n,attrs:{shape:f}});let b=y;if(null!=c){l.push(y);const e=Hu(c);b=LF({inputs:{x:b},backend:n,attrs:{perm:e}})}return l.forEach((e=>n.disposeIntermediateTensorInfo(e))),b}},KM];for(const e of bP)Xr(e);const vP={"tfjs-core":eo,"tfjs-backend-cpu":"3.3.0","tfjs-backend-webgl":"3.3.0","tfjs-data":IE,"tfjs-layers":Uy,"tfjs-converter":_k,tfjs:"3.3.0"}},4538:(e,t,n)=>{"use strict";e.exports=n(4063)},4658:e=>{"use strict";const t="[\ud800-\udbff][\udc00-\udfff]";e.exports=e=>e&&e.exact?new RegExp(`^${t}$`):new RegExp(t,"g")},7737:(e,t,n)=>{"use strict";n.d(t,{z:()=>o});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=function(){function e(){a()(this,e),this.table_width=17,this.table_truncate=16,this.dtype_test_lim=10,this.table_max_row=21,this.table_max_col_in_console=7}return i()(e,[{key:"set_width",value:function(e){this.table_width=e}},{key:"set_max_col_in_console",value:function(e){this.table_max_col_in_console=e}},{key:"set_row_num",value:function(e){this.table_max_row=e}},{key:"set_truncate",value:function(e){this.table_truncate=e}},{key:"set_dtype_test_lim",value:function(e){this.dtype_test_lim=e}},{key:"get_width",get:function(){return this.table_width}},{key:"get_max_col_in_console",get:function(){return this.table_max_col_in_console}},{key:"get_max_row",get:function(){return this.table_max_row}},{key:"get_truncate",get:function(){return this.table_truncate}},{key:"get_dtype_test_lim",get:function(){return this.dtype_test_lim}}]),e}()},5291:(e,t,n)=>{"use strict";n.d(t,{z:()=>p});var r=n(8),a=n.n(r),s=n(319),i=n.n(s),o=n(4575),l=n.n(o),u=n(3676),c=n(697),h=n(3938),f=new c.c,d=function e(t){l()(this,e),f.__in_object(t,"df_list","df_list not found: specify the list of dataframe"),f.__in_object(t,"axis","axis not found: specify the axis");var n,r,s=null;if(!Array.isArray(t.df_list))throw new Error("df_list must be an Array of dataFrames/Series");if(n=t.df_list,"number"!=typeof t.axis)throw new Error("axis must be a number");r=0==t.axis||1==t.axis?t.axis:1;var o=Object.assign({},n);if(1==r){var c=[],d={},p=0,m=Object.keys(o)[0];for(var g in s=o[m].index,o){var y=o[g].columns,b=o[g].values.length;for(var v in b>p&&(p=b),y){var w=y[v];if(w in d){var _=d[w],x="".concat(w,"_").concat(_+1);c.push(x),d[w]=_+1}else c.push(w),d[w]=1}}var k=new Array(p);for(var E in n){for(var C=n[E].values,S=0;S0)for(var w=0;w{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>DataFrame});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(319),_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(3038),_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(7757),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(8926),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(6525),_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6___default=__webpack_require__.n(_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6__),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(2205),_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default=__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7__),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(8585),_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8___default=__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8__),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(9754),_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default=__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9__),_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(6908),_generic__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__(2847),_series__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(3938),_utils__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(697),_groupby__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__(7398),_plotting_plot__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__(4564),_indexing__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(9365),_concat_js__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__(5291),mathjs__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__(3346);function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var n,r=_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(e);if(t){var a=_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_8___default()(this,n)}}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}var utils=new _utils__WEBPACK_IMPORTED_MODULE_11__.c,DataFrame=function(_Ndframe){_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_7___default()(DataFrame,_Ndframe);var _super=_createSuper(DataFrame),_sample,_to_csv;function DataFrame(e,t){var n;return _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4___default()(this,DataFrame),(n=_super.call(this,e,t))._set_column_property(),n}return _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5___default()(DataFrame,[{key:"_set_column_property",value:function(){var e=this,t=this.col_data,n=this.column_names;t.forEach((function(t,r){e[n[r]]=null,Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_12__.F(this.col_data[r],{columns:n[r],index:this.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"to_csv",value:(_to_csv=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var t,n,r,a=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=a.length>0&&void 0!==a[0]?a[0]:"",e.next=3,_babel_runtime_helpers_get__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_9___default()(DataFrame.prototype),"to_csv",this).call(this);case 3:return n=e.sent,"undefined"==typeof window?__webpack_require__(2993).writeFileSync(t,n,(function(e){return e&&console.error(e)})):(r="data:text/csv;charset=utf-8,"+n,window.open(encodeURI(r))),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e,this)}))),function(){return _to_csv.apply(this,arguments)})},{key:"drop",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","index","inplace","axis"];utils._throw_wrong_params_error(t,n),t.inplace=t.inplace||!1,"axis"in t||(t.axis=1);var r=null;if(r="index"in t&&0==t.axis?t.index:t.columns,1==t.axis){if(!("columns"in t))throw Error("No column found. Axis of 1 must be accompanied by an array of column(s) names");var a=this,s={},i=[],o=r.map((function(e){var t=a.columns.indexOf(e);if(-1==t)throw new Error('column "'.concat(e,'" does not exist'));return t}));if(this.col_data.forEach((function(e,t){o.includes(t)||(s[a.column_names[t]]=e,i.push(a.dtypes[t]))})),!t.inplace){var l=a.columns,u=Object.keys(s),c=new DataFrame(s,{index:a.index,dtypes:i});return c.__set_col_property(c,c.col_data,u,l),c}var h=a.columns,f=Object.keys(s);this.__update_frame_in_place(null,null,s,null,i),this.__set_col_property(a,a.col_data,f,h)}else{if(!utils.__key_in_object(t,"index"))throw Error("No index label found. Axis of 0 must be accompanied by an array of index labels");r.forEach((function(t){if(!e.index.includes(t))throw new Error("".concat(t," does not exist in index"))}));var d,p,m=this.values,g=[];if("string"==typeof r[0]?(this.index.forEach((function(e,t){r.includes(e)&&g.push(t)})),d=utils.__remove_arr(m,g),p=utils.__remove_arr(this.index,g)):(d=utils.__remove_arr(m,r),p=utils.__remove_arr(this.index,r)),!t.inplace)return new DataFrame(d,{columns:this.columns,index:p});this.row_data_tensor=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(d),this.data=d,this.__set_index(p)}}},{key:"loc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="loc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_13__.j)(this,e),r=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"iloc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["columns","rows"];utils._throw_wrong_params_error(e,t),e.type="iloc";var n=(0,_indexing__WEBPACK_IMPORTED_MODULE_13__.j)(this,e),r=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(n,3),a=r[0],s=r[1],i=r[2],o={columns:s},l=new DataFrame(a,o);return l.__set_index(i),l}},{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return this;var t=this.values.slice(0,e),n=this.index.slice(0,e),r={columns:this.column_names,index:n},a=new DataFrame(t,r);return a}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,t=this.values.length;if(e>t||e<1)return this;var n=this.values.slice(t-e),r=this.index.slice(t-e),a={columns:this.column_names,index:r},s=new DataFrame(n,a);return s}},{key:"sample",value:(_sample=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var t,n,r,a,s=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:-1,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc({rows:r}),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return _sample.apply(this,arguments)})},{key:"add",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].add(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"sub",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].sub(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mul",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mul(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"div",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].div(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"pow",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].pow(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mod",value:function(e,t){if(this.__frame_is_compactible_for_operation){var n=this.__get_ops_tensors([this,e],t),r=n[0].mod(n[1]),a=this.columns;return this.__get_df_from_tensor(r,a)}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"mean",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.mean(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"median",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__median(t,!1),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"min",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.min(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"max",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.__get_tensor_and_idx(this,e),n=t[0],r=t[1],a=n.max(t[2]),s=new _series__WEBPACK_IMPORTED_MODULE_12__.F(a.arraySync(),{index:r});return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"std",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_14__.qoR)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"var",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n=this.col_data_tensor.arraySync();t=1==e?this.column_names:this.index;var r=(0,mathjs__WEBPACK_IMPORTED_MODULE_14__.CAK)(n,e),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:t});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"count",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t,n;1==e?(t=this.col_data_tensor.arraySync(),n=this.column_names):(t=this.row_data_tensor.arraySync(),n=this.index);var r=utils.__count_nan(t,!0,!1),a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(r,{index:n});return a}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"round",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(this.__frame_is_compactible_for_operation){var t=this.values,n=this.index,r=utils.__round(t,e,!1),a={columns:this.column_names,index:n},s=new DataFrame(r,a);return s}throw Error("TypeError: Dtypes of columns must be Float of Int")}},{key:"__cum_ops",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;if(0!=e&&1!=e)throw new Error("axis must be between 0 or 1");if(this.__frame_is_compactible_for_operation){var n=[],r=null;r=0==e?this.col_data:this.values;for(var a=0;ai?(i=u,o.push(u)):o.push(i);break;case"min":u0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"sum");return n}},{key:"cummin",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"min");return n}},{key:"cummax",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"max");return n}},{key:"cumprod",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e=utils.__key_in_object(t,"axis")?t.axis:0;var n=this.__cum_ops(e,"prod");return n}},{key:"copy",value:function(){return new DataFrame(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.values),{columns:_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.column_names),index:this.index,dtypes:this.dtypes})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e){var t=this.copy();return t.__reset_index(),t}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["key","drop","inplace"];if(utils._throw_wrong_params_error(e,t),!utils.__key_in_object(e,"key"))throw Error("Index ValueError: You must specify an array of index");if(utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"drop")||(e.drop=!0),Array.isArray(e.key)&&e.key.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.key.length," must match lenght of existing index ").concat(this.index.length));if("string"==typeof e.key&&this.column_names.includes(e.key)&&(e.key_name=e.key,e.key=this[e.key].values),!e.inplace){var n=this.copy();return n.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&n.drop({columns:[e.key_name],axis:1,inplace:!0}),n}this.__set_index(e.key),e.drop&&"string"==typeof e.key_name&&this.drop({columns:[e.key_name],inplace:!0,axis:1})}},{key:"describe",value:function(){var e=this.select_dtypes(["float32","int32"]),t=e.column_names,n={};return t.forEach((function(t){var r=e[t],a=[r.count(),r.mean(),r.std(),r.min(),r.median(),r.max(),r.var()];n[t]=a})),new DataFrame(n,{index:["count","mean","std","min","median","max","variance"]}).round(6)}},{key:"select_dtypes",value:function(e){var t=this.dtypes,n=this.column_names,r={},a=this.col_data,s=["float32","int32","string","boolean"];return null==e?this.copy():(e.forEach((function(e){if(!s.includes(e))throw Error("Dtype Error: dtype ".concat(e," not supported."))})),t.forEach((function(t,s){e.includes(t)&&(r[n[s]]=a[s])})),new DataFrame(r))}},{key:"sum",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{axis:1};if(this.__frame_is_compactible_for_operation()){var t,n=[];(1==e.axis?this.col_data:this.values).map((function(e){var t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e).sum().arraySync();n.push(Number(t.toFixed(5)))})),t=1==e.axis?this.column_names:this.index;var r=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{columns:"sum",index:t});return r}throw Error("Dtype Error: Operation can not be performed on string type")}},{key:"abs",value:function(){var e=this.values,t=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e).abs().arraySync();return new DataFrame(utils.__round(t,2,!1),{columns:this.column_names,index:this.index})}},{key:"__get_tensor_and_idx",value:function(e,t){var n,r,a;return 1==t?(n=e.row_data_tensor,r=e.column_names,a=0):(n=e.row_data_tensor,r=e.index,a=1),[n,r,a]}},{key:"query",value:function query(kwargs){var operators=[">","<","<=",">=","==","!="],column_index,operator,value;if(utils.__key_in_object(kwargs,"inplace")||(kwargs.inplace=!1),!utils.__key_in_object(kwargs,"column"))throw new Error("specify the column");if(!this.columns.includes(kwargs.column))throw new Error("column ".concat(kwargs.column," does not exist"));if(column_index=this.columns.indexOf(kwargs.column),!utils.__key_in_object(kwargs,"is"))throw new Error("specify an operator in param [is]");if(!operators.includes(kwargs.is))throw new Error(" ".concat(kwargs.is," is not a supported logical operator"));if(operator=kwargs.is,!utils.__key_in_object(kwargs,"to"))throw new Error("specify a value in param [to]");value=kwargs.to;for(var data=this.values,index=this.index,new_data=[],new_index=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["columns","values","inplace"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"inplace")||(t.inplace=!1),utils.__key_in_object(t,"columns")){if(t.columns.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),t.columns.length!=t.values.length)throw Error("Lenght Error: The lenght of the columns names must be equal to the lenght of the values,\n got column of length ".concat(t.columns.length," but values of length ").concat(t.values.length));var r=this.col_data;t.columns.map((function(n,a){var s=e.column_names.indexOf(n),i=e.col_data[s],o=[];i.map((function(e){isNaN(e)&&"string"!=typeof e?o.push(t.values[a]):o.push(e)})),r[s]=o}));var a={};if(r.map((function(t,n){a[e.column_names[n]]=t})),!t.inplace)return new DataFrame(a,{index:this.index});this.__update_frame_in_place(null,null,a,null,null)}else{if(!utils.__key_in_object(t,"values"))throw Error("Value Error: Please specify a fill value");var s;s=Array.isArray(t.values)?t.values[0]:t.values;for(var i=[],o=this.values,l=this.columns,u=0;u0&&void 0!==arguments[0]?arguments[0]:{},t=e.axis||0,n=e.inplace||!1;if(0!=t&&1!=t)throw new Error("axis must either be 1 or 0");var r=null,a=null;0==t?(r=this.values,a=this.columns):(r=this.col_data,a=[]);for(var s=[],i=0;i0&&void 0!==arguments[0]?arguments[0]:{},n=["replace","with","in"];if(utils._throw_wrong_params_error(t,n),utils.__key_in_object(t,"in")){if(t.in.map((function(t){if(!e.column_names.includes(t))throw Error("Value Error: Specified columns must be one of ".concat(e.column_names,", got ").concat(t))})),utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var r={};return this.column_names.map((function(n,a){if(t.in.includes(n)){var s=e.col_data[a],i=[];s.map((function(e){e==t.replace?i.push(t.with):i.push(e)})),r[n]=i}else r[n]=e.col_data[a]})),new DataFrame(r,{columns:this.column_names,index:this.index})}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}if(utils.__key_in_object(t,"replace")&&utils.__key_in_object(t,"with")){var a=[],s=this.values;s.map((function(e){var n=[];e.map((function(e){e==t.replace?n.push(t.with):n.push(e)})),a.push(n)}));var i=new DataFrame(a,{index:this.index,columns:this.column_names});return i}throw Error("Params Error: Must specify both 'replace' and 'with' parameters.")}},{key:"__logical_ops",value:function(e,t,n){var r,a;if(utils.__is_number(e))a=e;else if(e.series)if(0==n){if(e.values.length!=this.shape[0])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e.values)}else{if(e.values.length!=this.shape[1])throw Error("Shape Error: Operands could not be broadcast together with shapes ".concat(this.shape," and ").concat(e.values.length,"."));a=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e.values)}else a=Array.isArray(e)?_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(e):e.row_data_tensor;switch(t){case"lt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).less(a).arraySync();break;case"gt":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).greater(a).arraySync();break;case"le":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).lessEqual(a).arraySync();break;case"ge":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).greaterEqual(a).arraySync();break;case"ne":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).notEqual(a).arraySync();break;case"eq":r=_tensorflow_tfjs__WEBPACK_IMPORTED_MODULE_10__.tensor(this.values).equal(a).arraySync()}return new DataFrame(utils.__map_int_to_bool(r,2),{columns:this.column_names,index:this.index})}},{key:"__get_df_from_tensor",value:function(e,t){for(var n=e.shape[0],r=[],a=0;a0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"column"))throw Error("Value Error: Please specify a column to cast");if(!utils.__key_in_object(e,"dtype"))throw Error("Value Error: Please specify dtype to cast to");if(!this.column_names.includes(e.column))throw Error("'".concat(e.column,"' not found in columns"));var t=this.column_names.indexOf(e.column),n=this.col_types,r=this.col_data;n[t]=e.dtype;var a=[],s=r[t];switch(e.dtype){case"float32":s.map((function(e){a.push(Number(e))})),r[t]=a;break;case"int32":s.map((function(e){a.push(Number(Number(e).toFixed()))})),r[t]=a;break;case"string":s.map((function(e){a.push(String(e))})),r[t]=a}var i={};this.column_names.forEach((function(e,t){i[e]=r[t]}));var o=new DataFrame(i,{dtypes:n,index:this.index});return o}},{key:"unique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n={};if(1==t){var r=this.column_names;r.forEach((function(t){n[t]=e[t].unique().values}))}else{var a=this.values,s=this.index;a.forEach((function(e,t){var r=new Set(e);n[s[t]]=Array.from(r)}))}return n}},{key:"nunique",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;if(null==t||t>1||t<0)throw Error("Axis Error: Please specify a correct axis. Axis must either be '0' or '1', got ".concat(t));var n=[];if(1==t){var r=this.column_names;r.forEach((function(t){n.push(e[t].unique().values.length)}));var a=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{index:this.column_names});return a}var s=this.values;s.forEach((function(e){var t=new Set(e);n.push(Array.from(t).length)}));var i=new _series__WEBPACK_IMPORTED_MODULE_12__.F(n,{index:this.index});return i}},{key:"rename",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["mapper","inplace","axis"];if(utils._throw_wrong_params_error(e,t),utils.__key_in_object(e,"inplace")||(e.inplace=!1),utils.__key_in_object(e,"axis")||(e.axis=1),!utils.__key_in_object(e,"mapper"))throw Error("Please specify a mapper object");if(1==e.axis){var n=Object.keys(e.mapper),r=Object.values(e.mapper),a=_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(this.column_names);if(n.forEach((function(e,t){if(!a.includes(e))throw Error("Label Error: Specified column '".concat(e,"' not found in column axis"));var n=a.indexOf(e);a[n]=r[t]})),!e.inplace){var s=this.copy();return s.columns=a,s.__set_col_property(s,s.col_data,a,n),s}this.columns=a,this.__set_col_property(this,this.col_data,a,n)}else{var i=Object.keys(e.mapper),o=this.index,l=[];if(o.forEach((function(t){i.includes(t)?l.push(e.mapper[t]):l.push(t)})),!e.inplace){var u=this.copy();return u.__set_index(l),u}this.__set_index(l)}}},{key:"sort_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.__sort_by(r,r,n),s=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(a,2),i=s[0],o=s[1];if(!t){var l=this.copy();return l.__update_frame_in_place(i,null,null,o,null),l}this.__update_frame_in_place(i,null,null,o,null)}},{key:"sort_values",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!utils.__key_in_object(e,"by"))throw Error("use col_name to specify column name");var t=void 0!==e.inplace&&e.inplace,n=void 0===e.ascending||e.ascending,r=this.index,a=this.column(e.by).values,s=this.__sort_by(a,r,n),i=_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(s,2),o=i[0],l=i[1];if(!t){var u=this.copy();return u.__update_frame_in_place(o,null,null,l,null),u}this.__update_frame_in_place(o,null,null,l,null)}},{key:"__set_col_property",value:function(e,t,n,r){r.forEach((function(t){delete e[t]})),t.forEach((function(t,r){Object.defineProperty(e,n[r],{get:function(){return new _series__WEBPACK_IMPORTED_MODULE_12__.F(t,{columns:n[r],index:e.index})},set:function(e){this.addColumn({column:n[r],value:e})}})}))}},{key:"__update_frame_in_place",value:function(e,t,n,r,a){if(null!=e)this.data=e;else if(null!=n){var s=utils._get_row_and_col_values(n);this.data=s[0],this.columns=s[1],t=s[1]}null!=n?(this.col_data=Object.values(n),this.columns=Object.keys(n),t=Object.keys(n)):null!=e&&(this.col_data=utils.__get_col_values(e)),null!=t&&(this.columns=t),null!=r&&(this.index_arr=r),null!=a&&(this.col_types=a)}},{key:"__sort_by",value:function(e,t,n){for(var r=this.values,a=utils.__sort(e,n),s=utils.__get_duplicate(e),i=[],o=[],l=0;l{"use strict";n.d(t,{Z:()=>_});var r=n(7757),a=n.n(r),s=n(8926),i=n.n(s),o=n(3038),l=n.n(o),u=n(319),c=n.n(u),h=n(4575),f=n.n(h),d=n(3913),p=n.n(d),m=n(6908),g=n(107),y=n(697),b=n(7737),v=new y.c,w=new b.z,_=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(f()(this,e),this.kwargs=n,t instanceof m.Tensor&&(t=t.arraySync()),v.__is_1D_array(t))this.series=!0,this._read_array(t);else if(this.series=!1,v.__is_object(t[0]))this._read_object(t,1);else if(v.__is_object(t))this._read_object(t,2);else{if(!(Array.isArray(t[0])||v.__is_number(t[0])||v.__is_string(t[0])))throw new Error("File format not supported");this._read_array(t)}}var t,n;return p()(e,[{key:"_read_array",value:function(e){if(this.data=v.__replace_undefined_with_NaN(e,this.series),this.row_data_tensor=(0,m.tensor)(this.data),this.series?this.col_data=[this.values]:this.col_data=v.__get_col_values(this.data),this.col_data_tensor=(0,m.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=c()(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)"columns"in this.kwargs?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=c()(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}},{key:"_read_object",value:function(e,t){if(2==t){var n=v._get_row_and_col_values(e),r=l()(n,2),a=r[0],s=r[1];this.kwargs.columns=s,this._read_array(a)}else{var i=e.map((function(e){return Object.values(e)}));if(this.data=v.__replace_undefined_with_NaN(i,this.series),this.row_data_tensor=(0,m.tensor)(this.data),this.kwargs.columns=Object.keys(Object.values(e)[0]),this.series?this.col_data=[this.values]:this.col_data=v.__get_col_values(this.data),this.col_data_tensor=(0,m.tensor)(this.col_data),"index"in this.kwargs?this.__set_index(this.kwargs.index):this.index_arr=c()(Array(this.row_data_tensor.shape[0]).keys()),1==this.ndim)this.kwargs.columns?this.columns=this.kwargs.columns:this.columns=["0"];else if("columns"in this.kwargs){if(this.kwargs.columns.length!=Number(this.row_data_tensor.shape[1]))throw"Column length mismatch. You provided a column of length ".concat(this.kwargs.columns.length," but data has column length of ").concat(this.row_data_tensor.shape[1]);this.columns=this.kwargs.columns}else this.columns=c()(Array(this.row_data_tensor.shape[1]).keys());"dtypes"in this.kwargs?this._set_col_types(this.kwargs.dtypes,!1):this._set_col_types(null,!0)}}},{key:"_set_col_types",value:function(e,t){var n=["float32","int32","string","boolean"];if(t)this.series?this.col_types=v.__get_t(this.values):this.col_types=v.__get_t(this.col_data);else if(this.series)this.col_types=e;else{if(e.length!=this.columns.length)throw new Error("length Mixmatch: Length of specified dtypes is ".concat(e.length,", but length of columns is ").concat(this.columns.length));if(!Array.isArray(e))throw new Error("dtypes must be an Array of types");e.forEach((function(e,t){if(!n.includes(e))throw new Error("dtype error: dtype specified at index ".concat(t," is not supported"))})),this.col_types=e}}},{key:"__set_index",value:function(e){if(!Array.isArray(e))throw Error("Value Error: index must be an array");if(e.length>this.shape[0]||e.lengthr){var l,u,c,h=this.columns.slice(0,4),f=this.columns.slice(i-4);if(o=[""].concat(h).concat(["..."]).concat(f),this.values.length>n){var d=this.iloc({rows:["0:".concat(n)],columns:["0:4"]}),p=this.iloc({rows:["0:".concat(n)],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=d.values,c=p.values}else{var m=this.iloc({rows:["0:"],columns:["0:4"]}),y=this.iloc({rows:["0:"],columns:["".concat(i-4,":")]});l=this.index.slice(0,n),u=m.values,c=y.values}l.map((function(e,t){var n=[e].concat(u[t]).concat(["..."]).concat(c[t]);a.push(n)}))}else{var b,v;if(o=[""].concat(this.columns),this.values.length>n){var _=this.loc({rows:["0:".concat(n)],columns:this.columns});b=_.index,v=_.values}else v=this.values,b=this.index;b.forEach((function(e,t){var n=[e].concat(v[t]);a.push(n)}))}s[0]=10;for(var x=1;x{"use strict";__webpack_require__.d(__webpack_exports__,{X:()=>GroupBy});var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(319),_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(4575),_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(3913),_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__),_frame__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(3676),_utils__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(697),_series__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(3938),utils=new _utils__WEBPACK_IMPORTED_MODULE_3__.c,GroupBy=function(){function GroupBy(e,t,n,r){_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this,GroupBy),this.key_col=t,this.col_dict=e,this.data=n,this.column_name=r,this.data_tensors={}}return _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(GroupBy,[{key:"group",value:function(){if(2==this.key_col.length){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e),n=t.map((function(t){return e[t].toLocaleLowerCase()})),r=this.col(t),a=r.arithemetic(n),s=this.to_DataFrame(r.key_col,r.group_col_name,a,n);return s}},{key:"to_DataFrame",value:function(e,t,n,r){if(2==e.length){var a=[];for(var s in n){var i=n[s];for(var o in i){var l=i[o],u=[];if(Array.isArray(l[0])){for(var c=0;c{"use strict";n.d(t,{j:()=>a});var r=new(n(697).c),a=function(e,t){var n=null,a=null,s=!1;if(Object.prototype.hasOwnProperty.call(t,"rows")){if(!Array.isArray(t.rows))throw new Error("rows parameter must be a Array");if(1==t.rows.length&&"string"==typeof t.rows[0])if(t.rows[0].includes(":")){var i=t.rows[0].split(":");if("loc"==t.type){var o,l;o=isNaN(Number(i[0]))?e.index.indexOf(i[0]):Number(i[0]),l=isNaN(Number(i[1]))?e.index.lastIndexOf(i[1])-1||e.values.length-1:Number(i[1])-1||e.values.length-1,n=r.__range(o,l)}else{var u=parseInt(i[0])||0,c=parseInt(i[1])-1||e.values.length-1;"number"==typeof u&&"number"==typeof c&&(n=r.__range(u,c))}}else{if("loc"!=t.type)throw new Error("Slice index must be separated by ':'");var h=[];e.index.map((function(e,n){t.rows[0]==e&&h.push(n)})),n=h}else if("loc"==t.type){var f=[];e.index.map((function(e,n){t.rows.includes(e)&&f.push(n)})),n=f}else n=t.rows}else t.type,n=r.__range(0,Number(e.shape[0])-1);if(Object.prototype.hasOwnProperty.call(t,"columns")){if(!Array.isArray(t.columns))throw new Error("columns must be a list");if(1==t.columns.length&&t.columns[0].includes(":")){var d,p,m=t.columns[0].split(":");"iloc"==t.type||""==m[0]?(d=parseInt(m[0])||0,p=parseInt(m[1])-1||e.values[0].length-1):(d=parseInt(e.columns.indexOf(m[0])),p=parseInt(e.columns.indexOf(m[1]))-1),"number"==typeof d&&"number"==typeof p&&(a=r.__range(d,p),s=!0)}else a=t.columns}else a="loc"==t.type?e.column_names:r.__range(0,Number(e.shape[1])-1);for(var g=e.values,y=[],b=0;bw)throw new Error("Specified row index ".concat(v," is bigger than maximum row index of ").concat(w));if(Array.isArray(g[0])){var _=g[v],x=[];for(var k in a){var E;if("loc"!=t.type||s){E=a[k];var C=e.columns.length-1;if(E>C)throw new Error("column index ".concat(E," is bigger than ").concat(C))}else if(-1==(E=e.columns.indexOf(a[k])))throw new Error("Column ".concat(a[k]," does not exist"));var S=_[E];x.push(S)}y.push(x)}else y.push(g[v])}var N=[];"iloc"==t.type||s?a.map((function(t){N.push(e.columns[t])})):N=a;var I=[];return n.forEach((function(t){I.push(e.index[t])})),[y,N,I]}},3938:(e,t,n)=>{"use strict";n.d(t,{F:()=>R});var r=n(3038),a=n.n(r),s=n(319),i=n.n(s),o=n(7757),l=n.n(o),u=n(8926),c=n.n(u),h=n(4575),f=n.n(h),d=n(3913),p=n.n(d),m=n(2205),g=n.n(m),y=n(8585),b=n.n(y),v=n(9754),w=n.n(v),_=n(6908),x=n(3346),k=n(697),E=n(1745),C=n(2847),S=n(107),N=n(7737),I=n(9187),A=n(4564),D=n(9365);var T=new k.c,F=new N.z,R=function(e){g()(o,e);var t,n,r,s=(n=o,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=w()(n);if(r){var a=w()(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return b()(this,e)});function o(e,t){var n;return f()(this,o),Array.isArray(e[0])||T.__is_object(e[0])?(e=T.__convert_2D_to_1D(e),n=s.call(this,e,t)):n=s.call(this,e,t),b()(n)}return p()(o,[{key:"head",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.shape[0]||e<1)return new o(this.values,{columns:this.column_names});var t=this.values.slice(0,e);return new o(t,{columns:this.column_names})}},{key:"tail",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;if(e>this.values.length||e<1)return new o(this.values,{columns:this.column_names});var t=this.values.slice(this.shape[0]-e),n=this.index.slice(this.shape[0]-e),r=new o(t,{columns:this.column_names,index:n});return r}},{key:"sample",value:(t=c()(l().mark((function e(){var t,n,r,a,s=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.length>0&&void 0!==s[0]?s[0]:5,n=s.length>1&&void 0!==s[1]?s[1]:1,!(t>this.shape[0])){e.next=4;break}throw new Error("Sample size n cannot be bigger than size of dataset");case 4:if(!(t<-1||0==t)){e.next=6;break}throw new Error("Sample size cannot be less than -1 or 0");case 6:return t=-1===t?this.shape[0]:t,e.next=9,_.data.array(this.index).shuffle(t,n).take(t).toArray();case 9:return r=e.sent,a=this.iloc(r),e.abrupt("return",a);case 12:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"add",value:function(e){return T.__is_number(e)?new o(this.row_data_tensor.add(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.add(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"sub",value:function(e){return T.__is_number(e)?new o(this.tensor.sub(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.sub(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mul",value:function(e){return T.__is_number(e)?new o(this.tensor.mul(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.mul(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"div",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(T.__is_number(e)){var n=this.tensor.div(e);return new o(n.arraySync(),{columns:this.column_names,dtypes:[n.dtype]})}if(this.__check_series_op_compactibility){var r;r=t?"float32":"int32";var a=this.tensor.asType(r),s=e.tensor.asType(r),i=a.div(s);return new o(i.arraySync(),{columns:this.column_names,dtypes:[i.dtype]})}}},{key:"pow",value:function(e){return T.__is_number(e)?new o(this.tensor.pow(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.pow(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mod",value:function(e){return T.__is_number(e)?new o(this.tensor.mod(e).arraySync(),{columns:this.column_names}):this.__check_series_op_compactibility?new o(this.tensor.mod(e.tensor).arraySync(),{columns:this.column_names}):void 0}},{key:"mean",value:function(){T._throw_str_dtype_error(this,"mean");var e=T._remove_nans(this.values);return _.tensor(e).mean().arraySync()}},{key:"median",value:function(){T._throw_str_dtype_error(this,"median");var e=T._remove_nans(this.values);return(0,x.C2o)(e)}},{key:"mode",value:function(){T._throw_str_dtype_error(this,"median");var e=T._remove_nans(this.values);return(0,x.xJM)(e)}},{key:"min",value:function(){return T._throw_str_dtype_error(this,"min"),this.row_data_tensor.min().arraySync()}},{key:"max",value:function(){return T._throw_str_dtype_error(this,"max"),this.row_data_tensor.max().arraySync()}},{key:"sum",value:function(){if(T._throw_str_dtype_error(this,"sum"),"boolean"==this.dtypes[0]){var e=this.row_data_tensor.sum().arraySync();return Number(e)}var t=this.row_data_tensor.sum().arraySync();return Number(t.toFixed(5))}},{key:"count",value:function(){return T.__count_nan(this.values,!0,!0)}},{key:"maximum",value:function(e){if(T.__is_number(e)){var t=this.row_data_tensor.maximum(e);return new o(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.row_data_tensor,r=e.tensor;return new o(n.maximum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"minimum",value:function(e){if(T.__is_number(e)){var t=this.row_data_tensor.minimum(e);return new o(t.arraySync(),{columns:this.column_names,dtypes:t.dtype,index:this.index})}if(this.__check_series_op_compactibility){var n=this.tensor,r=e.tensor;return new o(n.minimum(r).arraySync(),{columns:this.column_names,index:this.index})}}},{key:"round",value:function(e){return T.__is_undefined(e)?new o(_.round(this.row_data_tensor).arraySync(),{columns:this.column_names,index:this.index}):new o(T.__round(this.values,e,!0),{columns:this.column_names,index:this.index})}},{key:"std",value:function(){T._throw_str_dtype_error(this,"std");var e=T._remove_nans(this.values);return(0,x.qoR)(e)}},{key:"var",value:function(){T._throw_str_dtype_error(this,"std");var e=T._remove_nans(this.values);return(0,x.CAK)(e)}},{key:"isna",value:function(){return new o(this.__isna(),{index:this.index,columns:this.column_names,dtypes:["boolean"]})}},{key:"fillna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["value","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("value"in e))throw Error("Value Error: Must specify value to replace with");var n=[];if(this.values.forEach((function(t){isNaN(t)&&"string"!=typeof t?n.push(e.value):n.push(t)})),!e.inplace){var r=new o(n,{columns:this.column_names,index:this.index,dtypes:this.dtypes});return r}this.data=n}},{key:"sort_values",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=["inplace","ascending"];T._throw_wrong_params_error(t,n),"ascending"in t||(t.ascending=!0),"inplace"in t||(t.inplace=!1);var r=[],a=i()(this.values),s=T.__range(0,this.index.length-1),l=T._sort_arr_with_index(s,a,this.dtypes[0]);if(l.forEach((function(t){r.push(e.values[t])})),t.ascending&&(r=r.reverse(),l=l.reverse()),!t.inplace){var u=new o(r,{columns:this.column_names,index:l});return u}this.data=r,this.__set_index(l)}},{key:"copy",value:function(){return new o(i()(this.values),{columns:i()(this.column_names),index:i()(this.index),dtypes:i()(this.dtypes[0])})}},{key:"describe",value:function(){return"string"==this.dtypes[0]?null:new o([this.count(),this.mean(),this.std(),this.min(),this.median(),this.max(),this.var()],{columns:this.columns,index:["count","mean","std","min","median","max","variance"]})}},{key:"reset_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!e.inplace){var n=this.copy();return n.__reset_index(),n}this.__reset_index()}},{key:"set_index",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["index","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("index"in e))throw Error("Index ValueError: You must specify an array of index");if(e.index.length!=this.index.length)throw Error("Index LengthError: Lenght of new Index array ".concat(e.index.length," must match lenght of existing index ").concat(this.index.length));if(!e.inplace){var n=this.copy();return n.__set_index(e.index),n}this.index_arr=e.index}},{key:"__check_series_op_compactibility",value:function(e){if(T.__is_undefined(e.series))throw Error("param [other] must be a Series or a single value that can be broadcasted");if(e.values.length!=this.values.length)throw Error("Shape Error: Series shape do not match");if("float"!=this.dtypes[0]||"int"!=this.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(this.dtypes[0]," with type ").concat(e.dtypes[0]));if("float"!=e.dtypes[0]||"int"!=e.dtypes[0])throw Error("dtype Error: Cannot perform operation on type ".concat(e.dtypes[0]," with type ").concat(this.dtypes[0]));return!0}},{key:"map",value:function(e){var t=T.__is_function(e);return new o(this.data.map((function(n){if(t)return e(n);if(T.__is_object(e))return n in e?e[n]:NaN;throw new Error("callable must either be a function or an object")})),{columns:this.column_names,index:this.index})}},{key:"apply",value:function(e){if(!T.__is_function(e))throw new Error("the arguement most be a function");return new o(this.data.map((function(t){return e(t)})),{columns:this.column_names,index:this.index})}},{key:"unique",value:function(){var e=new Set(this.values);return new o(Array.from(e))}},{key:"nunique",value:function(){return this.unique().values.length}},{key:"value_counts",value:function(){for(var e=this.values,t={},n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=["replace","with","inplace"];if(T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1,!("replace"in e))throw Error("Params Error: Must specify param 'replace'");if(!("with"in e))throw Error("Params Error: Must specify param 'with'");var n=[],r=this.values;if(r.forEach((function(t){t==e.replace?n.push(e.with):n.push(t)})),!e.inplace){var a=new o(n,{index:this.index,columns:this.columns,dtypes:this.dtypes});return a}this.data=n}},{key:"dropna",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["inplace"];T._throw_wrong_params_error(e,t),e.inplace=e.inplace||!1;var n=this.values,r=this.index,a=[],s=[],i=this.isna().values;if(i.forEach((function(e,t){e||(a.push(n[t]),s.push(r[t]))})),!e.inplace){var l=new o(a,{columns:this.column_names,index:s,dtypes:this.dtypes});return l}this.index_arr=s,this.data=a}},{key:"argsort",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.sort_values({ascending:e}).index,n=new o(t);return n}},{key:"argmax",value:function(){return this.row_data_tensor.argMax().arraySync()}},{key:"argmin",value:function(){return this.row_data_tensor.argMin().arraySync()}},{key:"drop_duplicates",value:function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=["inplace","keep"];T._throw_wrong_params_error(n,r),n.inplace=n.inplace||!1,n.keep=n.keep||"first","last"==n.keep?(e=this.values.reverse(),t=this.index.reverse()):(e=this.values,t=this.index);var a=[],s=[];if(e.forEach((function(e,n){s.includes(e)||(a.push(t[n]),s.push(e))})),"last"==n.keep&&(s=s.reverse(),a=a.reverse()),!n.inplace){var i=new o(s,{index:a,columns:this.column_names,dtypes:this.dtypes});return i}this.data=s,this.index_arr=a}},{key:"toString",value:function(){var e,t,n=F.get_max_row,r=[],a={},s=[""].concat(this.columns);this.values.length>n?(t=this.values.slice(0,n),e=this.index.slice(0,n)):(t=this.values,e=this.index),e.forEach((function(e,n){var a=[e].concat(t[n]);r.push(a)})),a[0]=10,a[1]={width:20,truncate:20};var i=[s].concat(r);return(0,S.Kz)(i,{columns:a})}},{key:"__bool_ops",value:function(e,t){var n,r=this.values;if("number"==typeof e)n=i()(r).fill(e);else{if(!(e instanceof o))throw new Error("Value Error: 'other' must be an instance of Series");n=e.values}if(r.length!==n.length)throw new Error("Length Error: Both series must be of the same length");for(var a=[],s=0;su,a.push(c);break;case"le":c=l<=u,a.push(c);break;case"ge":c=l>=u,a.push(c);break;case"ne":c=l!=u,a.push(c);break;case"eq":c=l===u,a.push(c)}}return new o(a)}},{key:"__cum_ops",value:function(e){for(var t=this.values,n=t[0],r=[n],a=1;an?(r.push(s),n=s):r.push(n);break;case"min":s1&&void 0!==arguments[1]&&arguments[1];if(!t){var n=this.copy();if(Array.isArray(e))e.forEach((function(e,t){n.data.push(e),n.index_arr.push(t)}));else if(e instanceof o){var r=e.values,a=e.index;r.forEach((function(e,t){n.data.push(e),n.index_arr.push(a[t])}))}else n.data.push(e),n.index_arr.push(0);return n}var s=this;if(Array.isArray(e))e.forEach((function(e,t){s.data.push(e),s.index_arr.push(t)}));else if(e instanceof o){var i=e.values,l=e.index;i.forEach((function(e,t){s.data.push(e),s.index_arr.push(l[t])}))}else s.data.push(e),s.index_arr.push(0)}},{key:"tensor",get:function(){return _.tensor(this.values).asType(this.dtypes[0])}},{key:"dtype",get:function(){return this.dtypes[0]}},{key:"str",get:function(){var e=this.values;if("string"!=this.dtypes[0]){var t=[];e.forEach((function(e){t.push(String(e))}));var n=new o(t,{columns:this.column_names,index:this.index});return new E.W(n)}return new E.W(this)}},{key:"dt",get:function(){var e=new I.p({data:this});return e.preprocessed(),e}}]),o}(C.Z)},1745:(e,t,n)=>{"use strict";n.d(t,{W:()=>l});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(3938),l=function(){function e(t){a()(this,e),this.series=t,this.array=t.values}return i()(e,[{key:"toLowerCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toLowerCase())})),this.__create_new_sf_from(e,this.series)}},{key:"toUpperCase",value:function(){var e=[];return this.array.map((function(t){e.push(t.toUpperCase())})),this.__create_new_sf_from(e,this.series)}},{key:"capitalize",value:function(){var e=[];return this.array.map((function(t){var n=t.slice(0,1),r=t.slice(1),a="".concat(n.toUpperCase()).concat(r.toLowerCase());e.push(a)})),this.__create_new_sf_from(e,this.series)}},{key:"charAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=[];this.array.map((function(n){t.push(n.charAt(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"concat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(Array.isArray(e)){for(var n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.startsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"endsWith",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.endsWith(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"includes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.includes(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"indexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.indexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"lastIndexOf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.lastIndexOf(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"replace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=[];this.array.map((function(r){n.push(r.replace(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"repeat",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[];this.array.map((function(n){t.push(n.repeat(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"search",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];this.array.map((function(n){t.push(n.search(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"slice",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.slice(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"split",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:" ",t=[];this.array.map((function(n){t.push(n.split(e))}));var n=this.__create_new_sf_from(t,this.series);return n}},{key:"substr",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substr(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"substring",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[];this.array.map((function(r){n.push(r.substring(e,t))}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"trim",value:function(){var e=[];return this.array.map((function(t){e.push(t.trim())})),this.__create_new_sf_from(e,this.series)}},{key:"join",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[];this.array.map((function(r){var a=e,s="".concat(r).concat(t).concat(a);n.push(s)}));var r=this.__create_new_sf_from(n,this.series);return r}},{key:"len",value:function(){var e=[];return this.array.map((function(t){e.push(t.length)})),this.__create_new_sf_from(e,this.series)}},{key:"__create_new_sf_from",value:function(e,t){return new o.F(e,{columns:t.column_names,index:t.index})}}]),e}()},9187:(e,t,n)=>{"use strict";n.d(t,{p:()=>c,J:()=>h});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(697),l=n(3938),u=new o.c,c=function(){function e(t){a()(this,e),u.__in_object(t,"data","specify the data"),t.data instanceof l.F?this.data=t.data.values:this.data=t.data,this.format=t.format||null,this.keys={Y:4,m:2,H:2,M:2,S:2,b:3,d:2,"-":1},this.__in_format=["%Y-m-d%","%m-d-Y%","%m-d-Y H%M%S%"],this.__monthName=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],this.__weekName=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}return i()(e,[{key:"preprocessed",value:function(){var e=null;this.format&&(e=this.generate_format()),this.date_list=[];for(var t=0;t4?n+=":"+e.slice(r,r+s):4==a?n+=" "+e.slice(r,r+s):a>0&&a<=2&&(n+="-"+e.slice(r,r+s)),r+=s}return n}},{key:"generate_format",value:function(){var e=this.format.split(""),t=this;return e.filter((function(e){return u.__key_in_object(t.keys,e)})).map((function(e){return t.keys[e]}))}},{key:"is_timestamp",value:function(e){var t=parseInt(e),n=String(t);return!(isNaN(t)||n.length{"use strict";n.d(t,{c:()=>d});var r=n(3038),a=n.n(r),s=n(8),i=n.n(s),o=n(4575),l=n.n(o),u=n(3913),c=n.n(u),h=n(6908),f=new(n(7737).z),d=function(){function e(){l()(this,e)}return c()(e,[{key:"remove",value:function(e,t){return e.filter((function(e,n){return n!=t}))}},{key:"__remove_arr",value:function(e,t){return e.filter((function(e,n){return!t.includes(n)}))}},{key:"__is_string",value:function(e){return"string"==typeof e||e instanceof String}},{key:"__is_number",value:function(e){return"number"==typeof e&&isFinite(e)}},{key:"__is_object",value:function(e){return e&&"object"===i()(e)&&e.constructor===Object}},{key:"__is_null",value:function(e){return null===e}},{key:"__is_undefined",value:function(e){return void 0===e}},{key:"__sample_from_iter",value:function(e,t,n){var r=e.length;if(t<0||t>r)throw new RangeError("Sample larger than population or is negative");if(n||r<=(t<=5?21:21+Math.pow(4,Math.ceil(Math.log(3*t,4))))){n||(e=Array.prototype.slice.call(e));for(var a=0;a1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;if(n){var r=0,a=0;return e.forEach((function(e){Number.isNaN(e)?r+=1:a+=1})),t?a:r}var s=[];return e.forEach((function(e){var n=0,r=0;e.forEach((function(e){Number.isNaN(e)?n+=1:r+=1})),t?s.push(r):s.push(n)})),s}},{key:"__median",value:function(e,t){if(t){var n=e.slice().sort((function(e,t){return e-t})),r=Math.floor(n.length/2);return n.length%2==0?(n[r-1]+n[r])/2:n[r]}var a=[];return e.map((function(e){var t=e.slice().sort((function(e,t){return e-t})),n=Math.floor(t.length/2);t.length%2==0?a.push((t[n-1]+t[n])/2):a.push(t[n])})),a}},{key:"__mode",value:function(e){var t,n=[],r=[],a=0;for(t in e.forEach((function(e){r[e]=(r[e]||0)+1,r[e]>a&&(a=r[e])})),r)this.__key_in_object(r,t)&&r[t]===a&&n.push(Number(t));return n}},{key:"__round",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2?arguments[2]:void 0;if(t<0&&(t=1),n){var r=[];return e.map((function(e){r.push(Number(e.toFixed(t)))})),r}var a=[];return e.map((function(e){var n=[];e.map((function(e){n.push(Number(e.toFixed(t)))})),a.push(n)})),a}},{key:"__is_function",value:function(e){return"function"==typeof e}},{key:"__randgen",value:function(e,t,n){var r=[];function a(e,t){return Math.floor(Math.random()*(t-e)+e)}function s(e,r){if(!r.includes(e))return e;s(e=a(t,n),r)}for(var i=0;i1&&void 0!==arguments[1])||arguments[1],n=e.slice();return n.sort((function(e,n){return t?"string"==typeof e&&"string"==typeof n?e.charCodeAt()-n.charCodeAt():e-n:"string"==typeof e&&"string"==typeof n?n.charCodeAt()-e.charCodeAt():n-e}))}},{key:"__is_browser_env",value:function(){return new Function("try {return this===window;}catch(e){ return false;}")()}},{key:"__is_node_env",value:function(){return new Function("try {return this===global;}catch(e){return false;}")()}},{key:"_throw_str_dtype_error",value:function(e,t){if("string"==e.dtypes[0])throw Error("dtype error: String data type does not support ".concat(t," operation"))}},{key:"_remove_nans",value:function(e){return e.filter((function(e){return!isNaN(e)&&"string"!=typeof e}))}},{key:"__get_duplicate",value:function(e){var t={},n={};for(var r in e.forEach((function(e,n){e in t?(t[e].count+=1,t[e].index.push(n)):(t[e]={},t[e].count=1,t[e].index=[n])})),t)t[r].count>=2&&(n[r]={},n[r].count=t[r].count,n[r].index=t[r].index);return n}},{key:"_sort_arr_with_index",value:function(e,t,n){var r=e.map((function(e,n){return[t[n],e]}));return"string"==n?r.sort():r.sort((function(e,t){var n=a()(e,1)[0];return a()(t,1)[0]-n})),r.map((function(e){return a()(e,2)[1]}))}}]),e}()},2476:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Configs:()=>W.z,DataFrame:()=>s.N,LabelEncoder:()=>A,MinMaxScaler:()=>F,NDframe:()=>r.Z,OneHotEncoder:()=>D,Series:()=>a.F,StandardScaler:()=>R,Str:()=>U.W,Utils:()=>k.c,_version:()=>V,concat:()=>N.z,date_range:()=>B,get_dummies:()=>z,merge:()=>S,read_csv:()=>p,read_excel:()=>g,read_json:()=>m,tf:()=>h,to_datetime:()=>i.J});var r=n(2847),a=n(3938),s=n(3676),i=n(9187),o=n(7757),l=n.n(o),u=n(8926),c=n.n(u),h=n(6908),f=n(7869),d=n.n(f),p=function(){var e=c()(l().mark((function e(t){var n,r,a,i,o,u=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=u.length>1&&void 0!==u[1]?u[1]:{},r=n.start,a=n.end,t.startsWith("https")||t.startsWith("http")){e.next=4;break}throw new Error("Cannot read local file in browser environment");case 4:return i=[],e.next=7,h.data.csv(t,n).skip(r).take(a).forEachAsync((function(e){return i.push(e)}));case 7:return o=new s.N(i),e.abrupt("return",o);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),m=function(){var e=c()(l().mark((function e(t){var n,r,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{method:"Get"});case 2:return n=e.sent,e.next=5,n.json();case 5:return r=e.sent,a=new s.N(r),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),g=function(){var e=c()(l().mark((function e(t){var n,r,a,i,o,u,c,h,f,p,m,g,y,b,v,w=arguments;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=w.length>1&&void 0!==w[1]?w[1]:{},r=n.sheet,a=n.header_index,i=n.data_index,a||(a=1),i||(i=a+1),e.prev=4,e.next=7,fetch(t,{method:"Get"});case 7:return u=e.sent,e.next=10,u.arrayBuffer();case 10:for(u=e.sent,u=new Uint8Array(u),o=d().read(u,{type:"array"}),c=o.Sheets[r||o.SheetNames[0]],h=d().utils.decode_range(c["!ref"]),f=[],p=[],m=a-1;m<=h.e.r;++m){for(g=[],y=h.s.c;y<=h.e.c;++y)b=void 0,m==a-1&&(b=d().utils.encode_cell({c:y,r:a-1}),c[b]&&f.push(c[b].v)),m>=i-1&&(b=d().utils.encode_cell({c:y,r:m}),c[b]&&g.push(c[b].v));m>=i-1&&p.push(g)}return v=new s.N(p,{columns:f}),e.abrupt("return",v);case 21:throw e.prev=21,e.t0=e.catch(4),new Error(e.t0);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t){return e.apply(this,arguments)}}(),y=n(319),b=n.n(y),v=n(4575),w=n.n(v),_=n(3913),x=n.n(_),k=n(697),E=new k.c,C=function(){function e(t){var n=this;if(w()(this,e),E.__in_object(t,"left"),E.__in_object(t,"right"),E.__in_object(t,"on"),E.__key_in_object(t,"how")?this.how=t.how:(this.how="inner",t.how="inner"),this.left=null,this.right=null,this.on=null,!(t.left instanceof s.N&&t.right instanceof s.N))throw new Error("The left and right key value must be a dataFrame");if(this.left=t.left,this.right=t.right,!Array.isArray(t.on))throw new Error("key 'on' must be a list");if(this.on=t.on,!["outer","inner","left","right"].includes(t.how))throw new Error("".concat(t.how," specify in keyword how is not recognise"));this.how=t.how,this.left_col_index=[],this.right_col_index=[];for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:null,s=null,i=null,o=null,l=null;if(e&&t){s=new Date(e),o=this.freq_type(s,this.freq),i=new Date(t),l=this.freq_type(i,this.freq);var u=s.getFullYear(),c=i.getFullYear();u(l=a?n*a-1:n-1)&&(l+=o);var p=O.__range(o,l);a&&(p=this.offset_count(p,a));var m=p.map((function(e){return r.set_dateProps(s,r.freq,e)})),g=this.toLocalString(m);return g}if(t&&!e){i=new Date(t),o=(l=this.freq_type(i,this.freq))-n+1;var y=O.__range(o,l);a&&(y=this.offset_count(y,a));var b=y.map((function(e){return r.set_dateProps(i,r.freq,e)})),v=this.toLocalString(b);return v}}},{key:"freq_type",value:function(e,t){var n=null;switch(t){case"M":n=e.getMonth();break;case"Y":n=e.getFullYear();break;case"s":n=e.getSeconds();break;case"D":n=e.getDate();break;case"H":n=e.getHours();break;case"m":n=e.getMinutes()}return n}},{key:"offset_count",value:function(e,t){for(var n=[],r=0;r11?e%12==0?[n=e/12,e-(t=e)]:[n,e-t]:[n,e]}))}},{key:"day_end",value:function(e,t){for(var n=this.month_end(e,t),r=O.__range(e.getMonth(),n),a=this.month_range(r),s=0,i=0;i0&&void 0!==arguments[0]?arguments[0]:{};P.__in_object(e,"data","data not provided");var t=e.prefix||null,n=e.prefix_sep||["_"],r=e.columns||null,a=!1,i=null;if(Array.isArray(e.data)?i=e.data:e.data instanceof s.N?(i=e.data,a=!0):i=e.data.values,a){var o=[];if(r?r.forEach((function(e){var t=r.indexOf(e);o.push(t)})):(r=[],i.col_types.map((function(e,t){if("string"==e){var n=i.columns[t];r.push(n),o.push(t)}}))),t){if(!Array.isArray(t))throw new Error("prefix for dataframe must be an array");if(t.length!=r.length)throw new Error("prefix must be the same length with the number of onehot encoding column")}else t=r;var l=i.values,u=i.columns,c=i.col_data,h=[];o.forEach((function(e){h.push(c[e])}));var f=[],d=[];h.forEach((function(e,r){var a=L(e,t[r],n),s=$()(a,2),i=s[0],o=s[1];f.push.apply(f,b()(o)),0==d.length?d.push.apply(d,b()(i)):i.forEach((function(e,t){var n;(n=d[t]).push.apply(n,b()(e))}))}));var p=l.map((function(e,t){var n=e.slice(),r=P.__remove_arr(n,o);return r.push.apply(r,b()(d[t])),r})),m=P.__remove_arr(u,o);return m.push.apply(m,f),new s.N(p,{columns:m})}var g=L(i,t,n),y=$()(g,2),v=y[0],w=y[1];return new s.N(v,{columns:w})},W=n(7737),U=n(1745),V="0.2.5"},4564:(e,t,n)=>{"use strict";n.d(t,{X:()=>h});var r=n(4575),a=n.n(r),s=n(3913),i=n.n(s),o=n(697),l=n(3938),u=new o.c;try{var c=Plotly.version;console.info("Using Plotly version ".concat(c))}catch(e){console.info("Plotly CDN not found. If you need to make Plots, then add the Plotly CDN to your script")}var h=function(){function e(t,n){a()(this,e),this.div=n,this.ndframe=t}return i()(e,[{key:"line",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="line",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c;var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var s={};a.forEach((function(e){s[e]=t[e]})),u.__key_in_object(r,"x")?(s.x=e.ndframe[r.x].values,s.y=e.ndframe[n].values,s.name=n):(s.y=e.ndframe[r.y].values,s.x=e.ndframe[n].values,s.name=n),p.push(s)})),Plotly.newPlot(this.div,p,r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.x=e.ndframe.index,r.y=e.ndframe[n].values,r.name=n,m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"bar",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="bar",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="bar";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?p.y=this.ndframe[r.x].values:p.y=this.ndframe[r.y].values,p.type="bar",Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe.index,n.y=e.ndframe[t].values,n.name=t,n.type="bar",m.push(n)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"scatter",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.y=this.ndframe.index,s.type="scatter",s.mode="markers",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var i=this.ndframe[r.x].values,o=this.ndframe[r.y].values,c={};c.x=i,c.y=o,c.type="scatter",c.mode="markers";var h={},f={};h.title=r.x,f.title=r.y,r.layout.xaxis=h,r.layout.yaxis=f,Plotly.newPlot(this.div,[c],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var d={};a.forEach((function(e){"layout"==!e&&(d[e]=t[e])})),u.__key_in_object(r,"x")?(d.y=this.ndframe.index,d.x=this.ndframe[r.x].values):(d.x=this.ndframe.index,d.y=this.ndframe[r.y].values),d.type="scatter",d.mode="markers",Plotly.newPlot(this.div,[d],r.layout,r)}else{var p=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.y=e.ndframe.index,n.x=e.ndframe[t].values,n.name=t,n.type="scatter",n.mode="markers",p.push(n)})),Plotly.newPlot(this.div,p,r.layout,r)}}},{key:"hist",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={};a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.x=this.ndframe.values,s.type="histogram",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")){var i={};a.forEach((function(e){"layout"==!e&&(i[e]=t[e])})),i.x=this.ndframe[r.y].values,i.type="histogram",Plotly.newPlot(this.div,[i],r.layout,r)}else if(u.__key_in_object(r,"y")){var o={};a.forEach((function(e){"layout"==!e&&(o[e]=t[e])})),o.y=this.ndframe[r.y].values,o.type="histogram",Plotly.newPlot(this.div,[o],r.layout,r)}else{var c=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(t){var n={};n.x=e.ndframe[t].values,n.name=t,n.type="histogram",c.push(n)})),Plotly.newPlot(this.div,c,r.layout,r)}}},{key:"pie",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0];if(this.ndframe instanceof l.F){var a=[{values:this.ndframe.values,labels:this.ndframe.index,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,a,r.layout,r)}else if(u.__key_in_object(r,"values")&&u.__key_in_object(r,"labels")){if(!this.ndframe.column_names.includes(r.labels))throw Error("Column Error: ".concat(r.labels," not found in columns. labels name must be one of [ ").concat(this.ndframe.column_names,"]"));if(!this.ndframe.column_names.includes(r.values))throw Error("Column Error: ".concat(r.values," not found in columns. value name must be one of [ ").concat(this.ndframe.column_names,"]"));var s=[{values:this.ndframe[r.values].values,labels:this.ndframe[r.labels].values,type:"pie",name:r.labels,hoverinfo:"label+percent+name",automargin:!0}];Plotly.newPlot(this.div,s,r.layout,r)}else{var i;if(i=u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names,u.__key_in_object(r,"row_pos")){if(r.row_pos.length!=i.length-1)throw Error("Lenght of row_pos array must be equal to number of columns. Got ".concat(r.row_pos.length,", expected ").concat(i.length-1))}else{for(var o=[],c=0;c0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="box",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="box";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="box"):(p.x=this.ndframe.index,p.y=r.y,p.type="box"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="box",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"violin",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.__get_plot_params(t),r=n[0],a=n[1];if(this.ndframe instanceof l.F){var s={},i=this.ndframe.values;a.forEach((function(e){"layout"==!e&&(s[e]=t[e])})),s.y=i,s.type="violin",Plotly.newPlot(this.div,[s],r.layout,r)}else if(u.__key_in_object(r,"x")&&u.__key_in_object(r,"y")){if(!this.ndframe.column_names.includes(r.x))throw Error("Column Error: ".concat(r.x," not found in columns"));if(!this.ndframe.column_names.includes(r.y))throw Error("Column Error: ".concat(r.y," not found in columns"));var o=this.ndframe[r.x].values,c=this.ndframe[r.y].values,h={};h.x=o,h.y=c,h.type="violin";var f={},d={};f.title=r.x,d.title=r.y,r.layout.xaxis=f,r.layout.yaxis=d,Plotly.newPlot(this.div,[h],r.layout,r)}else if(u.__key_in_object(r,"x")||u.__key_in_object(r,"y")){var p={};a.forEach((function(e){"layout"==!e&&(p[e]=t[e])})),u.__key_in_object(r,"x")?(p.x=this.ndframe[r.x].values,p.y=this.ndframe.index,p.type="violin"):(p.x=this.ndframe.index,p.y=r.y,p.type="violin"),Plotly.newPlot(this.div,[p],r.layout,r)}else{var m=[];(u.__key_in_object(r,"columns")?this.____check_if_cols_exist(r.columns):this.ndframe.column_names).forEach((function(n){var r={};a.forEach((function(e){r[e]=t[e]})),r.y=e.ndframe[n].values,r.name=n,r.type="violin",m.push(r)})),Plotly.newPlot(this.div,m,r.layout,r)}}},{key:"table",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this.__get_plot_params(n),a=r[0],s={},i={},o=[];u.__key_in_object(a,"columns")?(a.columns.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"));var n=t.ndframe.column_names.indexOf(e);o.push(t.ndframe.col_data[n])})),e=a.columns):(e=this.ndframe.column_names,o=this.ndframe.col_data),s.values=e,i.values=o,a.header_style&&Object.keys(a.header_style).forEach((function(e){s[e]=a.header_style[e]})),a.cell_style&&Object.keys(a.cell_style).forEach((function(e){i[e]=a.cell_style[e]}));var l=[{type:"table",header:s,cells:i}];Plotly.newPlot(this.div,l,a.layout,a)}},{key:"__get_plot_params",value:function(e){var t=Object.keys(e),n={};return t.forEach((function(t){n[t]=e[t]})),u.__key_in_object(e,"layout")||(n.layout={}),[n,t]}},{key:"____check_if_cols_exist",value:function(e){var t=this;return e.forEach((function(e){if(!t.ndframe.column_names.includes(e))throw Error("Column Error: ".concat(e," not found in columns. Columns should be one of [ ").concat(t.ndframe.column_names," ]"))})),e}}]),e}()},1977:function(e,t){var n;!function(r){"use strict";var a=function(e){return.5*(Math.exp(e)+Math.exp(-e))},s=function(e){return.5*(Math.exp(e)-Math.exp(-e))},i=function(){throw SyntaxError("Invalid Param")};function o(e,t){var n=Math.abs(e),r=Math.abs(t);return 0===e?Math.log(r):0===t?Math.log(n):n<3e3&&r<3e3?.5*Math.log(e*e+t*t):Math.log(e/Math.cos(Math.atan2(t,e)))}function l(e,t){if(!(this instanceof l))return new l(e,t);var n=function(e,t){var n={re:0,im:0};if(null==e)n.re=n.im=0;else if(void 0!==t)n.re=e,n.im=t;else switch(typeof e){case"object":if("im"in e&&"re"in e)n.re=e.re,n.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return l.INFINITY;n.re=e.abs*Math.cos(e.arg),n.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return l.INFINITY;n.re=e.r*Math.cos(e.phi),n.im=e.r*Math.sin(e.phi)}else 2===e.length?(n.re=e[0],n.im=e[1]):i();break;case"string":n.im=n.re=0;var r=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),a=1,s=0;null===r&&i();for(var o=0;o0&&i();break;case"number":n.im=0,n.re=e;break;default:i()}return isNaN(n.re)||isNaN(n.im),n}(e,t);this.re=n.re,this.im=n.im}l.prototype={re:0,im:0,sign:function(){var e=this.abs();return new l(this.re/e,this.im/e)},add:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re+n.re,this.im+n.im)},sub:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:new l(this.re-n.re,this.im-n.im)},mul:function(e,t){var n=new l(e,t);return this.isInfinite()&&n.isZero()||this.isZero()&&n.isInfinite()?l.NAN:this.isInfinite()||n.isInfinite()?l.INFINITY:0===n.im&&0===this.im?new l(this.re*n.re,0):new l(this.re*n.re-this.im*n.im,this.re*n.im+this.im*n.re)},div:function(e,t){var n=new l(e,t);if(this.isZero()&&n.isZero()||this.isInfinite()&&n.isInfinite())return l.NAN;if(this.isInfinite()||n.isZero())return l.INFINITY;if(this.isZero()||n.isInfinite())return l.ZERO;e=this.re,t=this.im;var r,a,s=n.re,i=n.im;return 0===i?new l(e/s,t/s):Math.abs(s)=0)return new l(Math.pow(e,n.re),0);if(0===e)switch((n.re%4+4)%4){case 0:return new l(Math.pow(t,n.re),0);case 1:return new l(0,Math.pow(t,n.re));case 2:return new l(-Math.pow(t,n.re),0);case 3:return new l(0,-Math.pow(t,n.re))}}if(0===e&&0===t&&n.re>0&&n.im>=0)return l.ZERO;var r=Math.atan2(t,e),a=o(e,t);return e=Math.exp(n.re*a-n.im*r),t=n.im*a+n.re*r,new l(e*Math.cos(t),e*Math.sin(t))},sqrt:function(){var e,t,n=this.re,r=this.im,a=this.abs();if(n>=0){if(0===r)return new l(Math.sqrt(n),0);e=.5*Math.sqrt(2*(a+n))}else e=Math.abs(r)/Math.sqrt(2*(a-n));return t=n<=0?.5*Math.sqrt(2*(a-n)):Math.abs(r)/Math.sqrt(2*(a+n)),new l(e,r<0?-t:t)},exp:function(){var e=Math.exp(this.re);return this.im,new l(e*Math.cos(this.im),e*Math.sin(this.im))},expm1:function(){var e=this.re,t=this.im;return new l(Math.expm1(e)*Math.cos(t)+function(e){var t=Math.PI/4;if(e<-t||e>t)return Math.cos(e)-1;var n=e*e;return n*(n*(1/24+n*(-1/720+n*(1/40320+n*(-1/3628800+n*(1/4790014600+n*(-1/87178291200+n*(1/20922789888e3)))))))-.5)}(t),Math.exp(e)*Math.sin(t))},log:function(){var e=this.re,t=this.im;return new l(o(e,t),Math.atan2(t,e))},abs:function(){return e=this.re,t=this.im,n=Math.abs(e),r=Math.abs(t),n<3e3&&r<3e3?Math.sqrt(n*n+r*r):(n1&&0===t,r=1-e,a=1+e,s=r*r+t*t,i=0!==s?new l((a*r-t*t)/s,(t*r+a*t)/s):new l(-1!==e?e/0:0,0!==t?t/0:0),u=i.re;return i.re=o(i.re,i.im)/2,i.im=Math.atan2(i.im,u)/2,n&&(i.im=-i.im),i},acoth:function(){var e=this.re,t=this.im;if(0===e&&0===t)return new l(0,Math.PI/2);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).atanh():new l(0!==e?e/0:0,0!==t?-t/0:0).atanh()},acsch:function(){var e=this.re,t=this.im;if(0===t)return new l(0!==e?Math.log(e+Math.sqrt(e*e+1)):1/0,0);var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).asinh():new l(0!==e?e/0:0,0!==t?-t/0:0).asinh()},asech:function(){var e=this.re,t=this.im;if(this.isZero())return l.INFINITY;var n=e*e+t*t;return 0!==n?new l(e/n,-t/n).acosh():new l(0!==e?e/0:0,0!==t?-t/0:0).acosh()},inverse:function(){if(this.isZero())return l.INFINITY;if(this.isInfinite())return l.ZERO;var e=this.re,t=this.im,n=e*e+t*t;return new l(e/n,-t/n)},conjugate:function(){return new l(this.re,-this.im)},neg:function(){return new l(-this.re,-this.im)},ceil:function(e){return e=Math.pow(10,e||0),new l(Math.ceil(this.re*e)/e,Math.ceil(this.im*e)/e)},floor:function(e){return e=Math.pow(10,e||0),new l(Math.floor(this.re*e)/e,Math.floor(this.im*e)/e)},round:function(e){return e=Math.pow(10,e||0),new l(Math.round(this.re*e)/e,Math.round(this.im*e)/e)},equals:function(e,t){var n=new l(e,t);return Math.abs(n.re-this.re)<=l.EPSILON&&Math.abs(n.im-this.im)<=l.EPSILON},clone:function(){return new l(this.re,this.im)},toString:function(){var e=this.re,t=this.im,n="";return this.isNaN()?"NaN":this.isZero()?"0":this.isInfinite()?"Infinity":(0!==e&&(n+=e),0!==t&&(0!==e?n+=t<0?" - ":" + ":t<0&&(n+="-"),1!==(t=Math.abs(t))&&(n+=t),n+="i"),n||"0")},toVector:function(){return[this.re,this.im]},valueOf:function(){return 0===this.im?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return!(0!==this.re&&-0!==this.re||0!==this.im&&-0!==this.im)},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},l.ZERO=new l(0,0),l.ONE=new l(1,0),l.I=new l(0,1),l.PI=new l(Math.PI,0),l.E=new l(Math.E,0),l.INFINITY=new l(1/0,1/0),l.NAN=new l(NaN,NaN),l.EPSILON=1e-16,void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},3776:function(e,t,n){var r;!function(a){"use strict";var s,i,o,l=9e15,u=1e9,c="0123456789abcdef",h="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",f="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",d={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-l,maxE:l,crypto:!1},p=!0,m="[DecimalError] ",g=m+"Invalid argument: ",y=m+"Precision limit exceeded",b=m+"crypto unavailable",v=Math.floor,w=Math.pow,_=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,x=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,k=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,E=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,C=1e7,S=h.length-1,N=f.length-1,I={name:"[object Decimal]"};function A(e){var t,n,r,a=e.length-1,s="",i=e[0];if(a>0){for(s+=i,t=1;tn)throw Error(g+e)}function T(e,t,n,r){var a,s,i,o;for(s=e[0];s>=10;s/=10)--t;return--t<0?(t+=7,a=0):(a=Math.ceil((t+1)/7),t%=7),s=w(10,7-t),o=e[a]%s|0,null==r?t<3?(0==t?o=o/100|0:1==t&&(o=o/10|0),i=n<4&&99999==o||n>3&&49999==o||5e4==o||0==o):i=(n<4&&o+1==s||n>3&&o+1==s/2)&&(e[a+1]/s/100|0)==w(10,t-2)-1||(o==s/2||0==o)&&0==(e[a+1]/s/100|0):t<4?(0==t?o=o/1e3|0:1==t?o=o/100|0:2==t&&(o=o/10|0),i=(r||n<4)&&9999==o||!r&&n>3&&4999==o):i=((r||n<4)&&o+1==s||!r&&n>3&&o+1==s/2)&&(e[a+1]/s/1e3|0)==w(10,t-3)-1,i}function F(e,t,n){for(var r,a,s=[0],i=0,o=e.length;in-1&&(void 0===s[r+1]&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}I.absoluteValue=I.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)},I.ceil=function(){return O(new this.constructor(this),this.e+1,2)},I.comparedTo=I.cmp=function(e){var t,n,r,a,s=this,i=s.d,o=(e=new s.constructor(e)).d,l=s.s,u=e.s;if(!i||!o)return l&&u?l!==u?l:i===o?0:!i^l<0?1:-1:NaN;if(!i[0]||!o[0])return i[0]?l:o[0]?-u:0;if(l!==u)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(t=0,n=(r=i.length)<(a=o.length)?r:a;to[t]^l<0?1:-1;return r===a?0:r>a^l<0?1:-1},I.cosine=I.cos=function(){var e,t,n=this,r=n.constructor;return n.d?n.d[0]?(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r,a=t.d.length;a<32?r=(1/Y(4,n=Math.ceil(a/3))).toString():(n=16,r="2.3283064365386962890625e-10"),e.precision+=n,t=q(e,1,t.times(r),new e(1));for(var s=n;s--;){var i=t.times(t);t=i.times(i).minus(i).times(8).plus(1)}return e.precision-=n,t}(r,J(r,n)),r.precision=e,r.rounding=t,O(2==o||3==o?n.neg():n,e,t,!0)):new r(1):new r(NaN)},I.cubeRoot=I.cbrt=function(){var e,t,n,r,a,s,i,o,l,u,c=this,h=c.constructor;if(!c.isFinite()||c.isZero())return new h(c);for(p=!1,(s=c.s*w(c.s*c,1/3))&&Math.abs(s)!=1/0?r=new h(s.toString()):(n=A(c.d),(s=((e=c.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=w(n,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(r=new h(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),i=(e=h.precision)+3;;)if(u=(l=(o=r).times(o).times(o)).plus(c),r=R(u.plus(c).times(o),u.plus(l),i+2,1),A(o.d).slice(0,i)===(n=A(r.d)).slice(0,i)){if("9999"!=(n=n.slice(i-3,i+1))&&(a||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(O(r,e+1,1),t=!r.times(r).times(r).eq(c));break}if(!a&&(O(o,e+1,0),o.times(o).times(o).eq(c))){r=o;break}i+=4,a=1}return p=!0,O(r,e,h.rounding,t)},I.decimalPlaces=I.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=7*((e=t.length-1)-v(this.e/7)),e=t[e])for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},I.dividedBy=I.div=function(e){return R(this,new this.constructor(e))},I.dividedToIntegerBy=I.divToInt=function(e){var t=this.constructor;return O(R(this,new t(e),0,1,1),t.precision,t.rounding)},I.equals=I.eq=function(e){return 0===this.cmp(e)},I.floor=function(){return O(new this.constructor(this),this.e+1,3)},I.greaterThan=I.gt=function(e){return this.cmp(e)>0},I.greaterThanOrEqualTo=I.gte=function(e){var t=this.cmp(e);return 1==t||0===t},I.hyperbolicCosine=I.cosh=function(){var e,t,n,r,a,s=this,i=s.constructor,o=new i(1);if(!s.isFinite())return new i(s.s?1/0:NaN);if(s.isZero())return o;n=i.precision,r=i.rounding,i.precision=n+Math.max(s.e,s.sd())+4,i.rounding=1,(a=s.d.length)<32?t=(1/Y(4,e=Math.ceil(a/3))).toString():(e=16,t="2.3283064365386962890625e-10"),s=q(i,1,s.times(t),new i(1),!0);for(var l,u=e,c=new i(8);u--;)l=s.times(s),s=o.minus(l.times(c.minus(l.times(c))));return O(s,i.precision=n,i.rounding=r,!0)},I.hyperbolicSine=I.sinh=function(){var e,t,n,r,a=this,s=a.constructor;if(!a.isFinite()||a.isZero())return new s(a);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(a.e,a.sd())+4,s.rounding=1,(r=a.d.length)<3)a=q(s,2,a,a,!0);else{e=(e=1.4*Math.sqrt(r))>16?16:0|e,a=q(s,2,a=a.times(1/Y(5,e)),a,!0);for(var i,o=new s(5),l=new s(16),u=new s(20);e--;)i=a.times(a),a=a.times(o.plus(i.times(l.times(i).plus(u))))}return s.precision=t,s.rounding=n,O(a,t,n,!0)},I.hyperbolicTangent=I.tanh=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+7,r.rounding=1,R(n.sinh(),n.cosh(),r.precision=e,r.rounding=t)):new r(n.s)},I.inverseCosine=I.acos=function(){var e,t=this,n=t.constructor,r=t.abs().cmp(1),a=n.precision,s=n.rounding;return-1!==r?0===r?t.isNeg()?P(n,a,s):new n(0):new n(NaN):t.isZero()?P(n,a+4,s).times(.5):(n.precision=a+6,n.rounding=1,t=t.asin(),e=P(n,a+4,s).times(.5),n.precision=a,n.rounding=s,e.minus(t))},I.inverseHyperbolicCosine=I.acosh=function(){var e,t,n=this,r=n.constructor;return n.lte(1)?new r(n.eq(1)?0:NaN):n.isFinite()?(e=r.precision,t=r.rounding,r.precision=e+Math.max(Math.abs(n.e),n.sd())+4,r.rounding=1,p=!1,n=n.times(n).minus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln()):new r(n)},I.inverseHyperbolicSine=I.asinh=function(){var e,t,n=this,r=n.constructor;return!n.isFinite()||n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,r.rounding=1,p=!1,n=n.times(n).plus(1).sqrt().plus(n),p=!0,r.precision=e,r.rounding=t,n.ln())},I.inverseHyperbolicTangent=I.atanh=function(){var e,t,n,r,a=this,s=a.constructor;return a.isFinite()?a.e>=0?new s(a.abs().eq(1)?a.s/0:a.isZero()?a:NaN):(e=s.precision,t=s.rounding,r=a.sd(),Math.max(r,e)<2*-a.e-1?O(new s(a),e,t,!0):(s.precision=n=r-a.e,a=R(a.plus(1),new s(1).minus(a),n+e,1),s.precision=e+4,s.rounding=1,a=a.ln(),s.precision=e,s.rounding=t,a.times(.5))):new s(NaN)},I.inverseSine=I.asin=function(){var e,t,n,r,a=this,s=a.constructor;return a.isZero()?new s(a):(t=a.abs().cmp(1),n=s.precision,r=s.rounding,-1!==t?0===t?((e=P(s,n+4,r).times(.5)).s=a.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,a=a.div(new s(1).minus(a.times(a)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=r,a.times(2)))},I.inverseTangent=I.atan=function(){var e,t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&h+4<=N)return(i=P(c,h+4,f).times(.25)).s=u.s,i}else{if(!u.s)return new c(NaN);if(h+4<=N)return(i=P(c,h+4,f).times(.5)).s=u.s,i}for(c.precision=o=h+10,c.rounding=1,e=n=Math.min(28,o/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(p=!1,t=Math.ceil(o/7),r=1,l=u.times(u),i=new c(u),a=u;-1!==e;)if(a=a.times(l),s=i.minus(a.div(r+=2)),a=a.times(l),void 0!==(i=s.plus(a.div(r+=2))).d[t])for(e=t;i.d[e]===s.d[e]&&e--;);return n&&(i=i.times(2<this.d.length-2},I.isNaN=function(){return!this.s},I.isNegative=I.isNeg=function(){return this.s<0},I.isPositive=I.isPos=function(){return this.s>0},I.isZero=function(){return!!this.d&&0===this.d[0]},I.lessThan=I.lt=function(e){return this.cmp(e)<0},I.lessThanOrEqualTo=I.lte=function(e){return this.cmp(e)<1},I.logarithm=I.log=function(e){var t,n,r,a,s,i,o,l,u=this,c=u.constructor,h=c.precision,f=c.rounding;if(null==e)e=new c(10),t=!0;else{if(n=(e=new c(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(n=u.d,u.s<0||!n||!n[0]||u.eq(1))return new c(n&&!n[0]?-1/0:1!=u.s?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(a=n[0];a%10==0;)a/=10;s=1!==a}if(p=!1,i=H(u,o=h+5),r=t?$(c,o+10):H(e,o),T((l=R(i,r,o,1)).d,a=h,f))do{if(i=H(u,o+=10),r=t?$(c,o+10):H(e,o),l=R(i,r,o,1),!s){+A(l.d).slice(a+1,a+15)+1==1e14&&(l=O(l,h+1,0));break}}while(T(l.d,a+=10,f));return p=!0,O(l,h,f)},I.minus=I.sub=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.constructor;if(e=new m(e),!d.d||!e.d)return d.s&&e.s?d.d?e.s=-e.s:e=new m(e.d||d.s!==e.s?d:NaN):e=new m(NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,f=e.d,o=m.precision,l=m.rounding,!u[0]||!f[0]){if(f[0])e.s=-e.s;else{if(!u[0])return new m(3===l?-0:0);e=new m(d)}return p?O(e,o,l):e}if(n=v(e.e/7),c=v(d.e/7),u=u.slice(),s=c-n){for((h=s<0)?(t=u,s=-s,i=f.length):(t=f,n=c,i=u.length),s>(r=Math.max(Math.ceil(o/7),i)+2)&&(s=r,t.length=1),t.reverse(),r=s;r--;)t.push(0);t.reverse()}else{for((h=(r=u.length)<(i=f.length))&&(i=r),r=0;r0;--r)u[i++]=0;for(r=f.length;r>s;){if(u[--r](i=(s=Math.ceil(o/7))>i?s+1:i+1)&&(a=i,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for((i=u.length)-(a=c.length)<0&&(a=i,n=c,c=u,u=n),t=0;a;)t=(u[--a]=u[a]+c[a]+t)/C|0,u[a]%=C;for(t&&(u.unshift(t),++r),i=u.length;0==u[--i];)u.pop();return e.d=u,e.e=M(u,r),p?O(e,o,l):e},I.precision=I.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(g+e);return n.d?(t=L(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},I.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)},I.sine=I.sin=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+Math.max(n.e,n.sd())+7,r.rounding=1,n=function(e,t){var n,r=t.d.length;if(r<3)return q(e,2,t,t);n=(n=1.4*Math.sqrt(r))>16?16:0|n,t=q(e,2,t=t.times(1/Y(5,n)),t);for(var a,s=new e(5),i=new e(16),o=new e(20);n--;)a=t.times(t),t=t.times(s.plus(a.times(i.times(a).minus(o))));return t}(r,J(r,n)),r.precision=e,r.rounding=t,O(o>2?n.neg():n,e,t,!0)):new r(NaN)},I.squareRoot=I.sqrt=function(){var e,t,n,r,a,s,i=this,o=i.d,l=i.e,u=i.s,c=i.constructor;if(1!==u||!o||!o[0])return new c(!u||u<0&&(!o||o[0])?NaN:o?i:1/0);for(p=!1,0==(u=Math.sqrt(+i))||u==1/0?(((t=A(o)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),r=new c(t=u==1/0?"5e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new c(u.toString()),n=(l=c.precision)+3;;)if(r=(s=r).plus(R(i,s,n+2,1)).times(.5),A(s.d).slice(0,n)===(t=A(r.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(a||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(O(r,l+1,1),e=!r.times(r).eq(i));break}if(!a&&(O(s,l+1,0),s.times(s).eq(i))){r=s;break}n+=4,a=1}return p=!0,O(r,l,c.rounding,e)},I.tangent=I.tan=function(){var e,t,n=this,r=n.constructor;return n.isFinite()?n.isZero()?new r(n):(e=r.precision,t=r.rounding,r.precision=e+10,r.rounding=1,(n=n.sin()).s=1,n=R(n,new r(1).minus(n.times(n)).sqrt(),e+10,0),r.precision=e,r.rounding=t,O(2==o||4==o?n.neg():n,e,t,!0)):new r(NaN)},I.times=I.mul=function(e){var t,n,r,a,s,i,o,l,u,c=this,h=c.constructor,f=c.d,d=(e=new h(e)).d;if(e.s*=c.s,!(f&&f[0]&&d&&d[0]))return new h(!e.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:f&&d?0*e.s:e.s/0);for(n=v(c.e/7)+v(e.e/7),(l=f.length)<(u=d.length)&&(s=f,f=d,d=s,i=l,l=u,u=i),s=[],r=i=l+u;r--;)s.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)o=s[a]+d[r]*f[a-r-1]+t,s[a--]=o%C|0,t=o/C|0;s[a]=(s[a]+t)%C|0}for(;!s[--i];)s.pop();return t?++n:s.shift(),e.d=s,e.e=M(s,n),p?O(e,h.precision,h.rounding):e},I.toBinary=function(e,t){return Z(this,2,e,t)},I.toDecimalPlaces=I.toDP=function(e,t){var n=this,r=n.constructor;return n=new r(n),void 0===e?n:(D(e,0,u),void 0===t?t=r.rounding:D(t,0,8),O(n,e+n.e+1,t))},I.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,!0):(D(e,0,u),void 0===t?t=a.rounding:D(t,0,8),n=B(r=O(new a(r),e+1,t),!0,e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return void 0===e?n=B(a):(D(e,0,u),void 0===t?t=s.rounding:D(t,0,8),n=B(r=O(new s(a),e+a.e+1,t),!1,e+r.e+1)),a.isNeg()&&!a.isZero()?"-"+n:n},I.toFraction=function(e){var t,n,r,a,s,i,o,l,u,c,h,f,d=this,m=d.d,y=d.constructor;if(!m)return new y(d);if(u=n=new y(1),r=l=new y(0),i=(s=(t=new y(r)).e=L(m)-d.e-1)%7,t.d[0]=w(10,i<0?7+i:i),null==e)e=s>0?t:u;else{if(!(o=new y(e)).isInt()||o.lt(u))throw Error(g+o);e=o.gt(t)?s>0?t:u:o}for(p=!1,o=new y(A(m)),c=y.precision,y.precision=s=7*m.length*2;h=R(o,t,0,1,1),1!=(a=n.plus(h.times(r))).cmp(e);)n=r,r=a,a=u,u=l.plus(h.times(a)),l=a,a=t,t=o.minus(h.times(a)),o=a;return a=R(e.minus(n),r,0,1,1),l=l.plus(a.times(u)),n=n.plus(a.times(r)),l.s=u.s=d.s,f=R(u,r,s,1).minus(d).abs().cmp(R(l,n,s,1).minus(d).abs())<1?[u,r]:[l,n],y.precision=c,p=!0,f},I.toHexadecimal=I.toHex=function(e,t){return Z(this,16,e,t)},I.toNearest=function(e,t){var n=this,r=n.constructor;if(n=new r(n),null==e){if(!n.d)return n;e=new r(1),t=r.rounding}else{if(e=new r(e),void 0===t?t=r.rounding:D(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(p=!1,n=R(n,e,0,t,1).times(e),p=!0,O(n)):(e.s=n.s,n=e),n},I.toNumber=function(){return+this},I.toOctal=function(e,t){return Z(this,8,e,t)},I.toPower=I.pow=function(e){var t,n,r,a,s,i,o=this,l=o.constructor,u=+(e=new l(e));if(!(o.d&&e.d&&o.d[0]&&e.d[0]))return new l(w(+o,u));if((o=new l(o)).eq(1))return o;if(r=l.precision,s=l.rounding,e.eq(1))return O(o,r,s);if((t=v(e.e/7))>=e.d.length-1&&(n=u<0?-u:u)<=9007199254740991)return a=W(l,o,n,r),e.s<0?new l(1).div(a):O(a,r,s);if((i=o.s)<0){if(tl.maxE+1||t0?i/0:0):(p=!1,l.rounding=o.s=1,n=Math.min(12,(t+"").length),(a=j(e.times(H(o,r+n)),r)).d&&T((a=O(a,r+5,1)).d,r,s)&&(t=r+10,+A((a=O(j(e.times(H(o,t+n)),t),t+5,1)).d).slice(r+1,r+15)+1==1e14&&(a=O(a,r+1,0))),a.s=i,p=!0,l.rounding=s,O(a,r,s))},I.toPrecision=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=B(r,r.e<=a.toExpNeg||r.e>=a.toExpPos):(D(e,1,u),void 0===t?t=a.rounding:D(t,0,8),n=B(r=O(new a(r),e,t),e<=r.e||r.e<=a.toExpNeg,e)),r.isNeg()&&!r.isZero()?"-"+n:n},I.toSignificantDigits=I.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(D(e,1,u),void 0===t?t=n.rounding:D(t,0,8)),O(new n(this),e,t)},I.toString=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},I.truncated=I.trunc=function(){return O(new this.constructor(this),this.e+1,1)},I.valueOf=I.toJSON=function(){var e=this,t=e.constructor,n=B(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n};var R=function(){function e(e,t,n){var r,a=0,s=e.length;for(e=e.slice();s--;)r=e[s]*t+a,e[s]=r%n|0,a=r/n|0;return a&&e.unshift(a),e}function t(e,t,n,r){var a,s;if(n!=r)s=n>r?1:-1;else for(a=s=0;at[a]?1:-1;break}return s}function n(e,t,n,r){for(var a=0;n--;)e[n]-=a,a=e[n]1;)e.shift()}return function(r,a,s,o,l,u){var c,h,f,d,p,m,g,y,b,w,_,x,k,E,S,N,I,A,D,T,F=r.constructor,R=r.s==a.s?1:-1,B=r.d,M=a.d;if(!(B&&B[0]&&M&&M[0]))return new F(r.s&&a.s&&(B?!M||B[0]!=M[0]:M)?B&&0==B[0]||!M?0*R:R/0:NaN);for(u?(p=1,h=r.e-a.e):(u=C,p=7,h=v(r.e/p)-v(a.e/p)),D=M.length,I=B.length,w=(b=new F(R)).d=[],f=0;M[f]==(B[f]||0);f++);if(M[f]>(B[f]||0)&&h--,null==s?(E=s=F.precision,o=F.rounding):E=l?s+(r.e-a.e)+1:s,E<0)w.push(1),m=!0;else{if(E=E/p+2|0,f=0,1==D){for(d=0,M=M[0],E++;(f1&&(M=e(M,d,u),B=e(B,d,u),D=M.length,I=B.length),N=D,x=(_=B.slice(0,D)).length;x=u/2&&++A;do{d=0,(c=t(M,_,D,x))<0?(k=_[0],D!=x&&(k=k*u+(_[1]||0)),(d=k/A|0)>1?(d>=u&&(d=u-1),1==(c=t(g=e(M,d,u),_,y=g.length,x=_.length))&&(d--,n(g,D=10;d/=10)f++;b.e=f+h*p-1,O(b,l?s+b.e+1:s,o,m)}return b}}();function O(e,t,n,r){var a,s,i,o,l,u,c,h,f,d=e.constructor;e:if(null!=t){if(!(h=e.d))return e;for(a=1,o=h[0];o>=10;o/=10)a++;if((s=t-a)<0)s+=7,i=t,l=(c=h[f=0])/w(10,a-i-1)%10|0;else if((f=Math.ceil((s+1)/7))>=(o=h.length)){if(!r)break e;for(;o++<=f;)h.push(0);c=l=0,a=1,i=(s%=7)-7+1}else{for(c=o=h[f],a=1;o>=10;o/=10)a++;l=(i=(s%=7)-7+a)<0?0:c/w(10,a-i-1)%10|0}if(r=r||t<0||void 0!==h[f+1]||(i<0?c:c%w(10,a-i-1)),u=n<4?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(s>0?i>0?c/w(10,a-i):0:h[f-1])%10&1||n==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=w(10,(7-t%7)%7),e.e=-t||0):h[0]=e.e=0,e;if(0==s?(h.length=f,o=1,f--):(h.length=f+1,o=w(10,7-s),h[f]=i>0?(c/w(10,a-i)%w(10,i)|0)*o:0),u)for(;;){if(0==f){for(s=1,i=h[0];i>=10;i/=10)s++;for(i=h[0]+=o,o=1;i>=10;i/=10)o++;s!=o&&(e.e++,h[0]==C&&(h[0]=1));break}if(h[f]+=o,h[f]!=C)break;h[f--]=0,o=1}for(s=h.length;0===h[--s];)h.pop()}return p&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+z(r):i>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):a<0?(s="0."+z(-a-1)+s,n&&(r=n-i)>0&&(s+=z(r))):a>=i?(s+=z(a+1-i),n&&(r=n-a-1)>0&&(s=s+"."+z(r))):((r=a+1)0&&(a+1===i&&(s+="."),s+=z(r))),s}function M(e,t){var n=e[0];for(t*=7;n>=10;n/=10)t++;return t}function $(e,t,n){if(t>S)throw p=!0,n&&(e.precision=n),Error(y);return O(new e(h),t,1,!0)}function P(e,t,n){if(t>N)throw Error(y);return O(new e(f),t,n,!0)}function L(e){var t=e.length-1,n=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function z(e){for(var t="";e--;)t+="0";return t}function W(e,t,n,r){var a,s=new e(1),i=Math.ceil(r/7+4);for(p=!1;;){if(n%2&&Q((s=s.times(t)).d,i)&&(a=!0),0===(n=v(n/2))){n=s.d.length-1,a&&0===s.d[n]&&++s.d[n];break}Q((t=t.times(t)).d,i)}return p=!0,s}function U(e){return 1&e.d[e.d.length-1]}function V(e,t,n){for(var r,a=new e(t[0]),s=0;++s17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(p=!1,l=m):l=t,o=new f(.03125);e.e>-2;)e=e.times(o),h+=5;for(l+=r=Math.log(w(2,h))/Math.LN10*2+5|0,n=s=i=new f(1),f.precision=l;;){if(s=O(s.times(e),l,1),n=n.times(++c),A((o=i.plus(R(s,n,l,1))).d).slice(0,l)===A(i.d).slice(0,l)){for(a=h;a--;)i=O(i.times(i),l,1);if(null!=t)return f.precision=m,i;if(!(u<3&&T(i.d,l-r,d,u)))return O(i,f.precision=m,d,p=!0);f.precision=l+=10,n=s=o=new f(1),c=0,u++}i=o}}function H(e,t){var n,r,a,s,i,o,l,u,c,h,f,d=1,m=e,g=m.d,y=m.constructor,b=y.rounding,v=y.precision;if(m.s<0||!g||!g[0]||!m.e&&1==g[0]&&1==g.length)return new y(g&&!g[0]?-1/0:1!=m.s?NaN:g?0:m);if(null==t?(p=!1,c=v):c=t,y.precision=c+=10,r=(n=A(g)).charAt(0),!(Math.abs(s=m.e)<15e14))return u=$(y,c+2,v).times(s+""),m=H(new y(r+"."+n.slice(1)),c-10).plus(u),y.precision=v,null==t?O(m,v,b,p=!0):m;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=A((m=m.times(e)).d)).charAt(0),d++;for(s=m.e,r>1?(m=new y("0."+n),s++):m=new y(r+"."+n.slice(1)),h=m,l=i=m=R(m.minus(1),m.plus(1),c,1),f=O(m.times(m),c,1),a=3;;){if(i=O(i.times(f),c,1),A((u=l.plus(R(i,new y(a),c,1))).d).slice(0,c)===A(l.d).slice(0,c)){if(l=l.times(2),0!==s&&(l=l.plus($(y,c+2,v).times(s+""))),l=R(l,new y(d),c,1),null!=t)return y.precision=v,l;if(!T(l.d,c-10,b,o))return O(l,y.precision=v,b,p=!0);y.precision=c+=10,u=i=m=R(h.minus(1),h.plus(1),c,1),f=O(m.times(m),c,1),a=o=1}l=u,a+=2}}function G(e){return String(e.s*e.s/0)}function X(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);r++);for(a=t.length;48===t.charCodeAt(a-1);--a);if(t=t.slice(r,a)){if(a-=r,e.e=n=n-r-1,e.d=[],r=(n+1)%7,n<0&&(r+=7),re.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(u=+t.slice(i+1),t=t.substring(2,i)):t=t.slice(2),o=(i=t.indexOf("."))>=0,r=e.constructor,o&&(i=(l=(t=t.replace(".","")).length)-i,a=W(r,new r(n),i,2*i)),i=h=(c=F(t,n,C)).length-1;0===c[i];--i)c.pop();return i<0?new r(0*e.s):(e.e=M(c,h),e.d=c,p=!1,o&&(e=R(e,a,4*l)),u&&(e=e.times(Math.abs(u)<54?w(2,u):s.pow(2,u))),p=!0,e)}function q(e,t,n,r,a){var s,i,o,l,u=e.precision,c=Math.ceil(u/7);for(p=!1,l=n.times(n),o=new e(r);;){if(i=R(o.times(l),new e(t++*t++),u,1),o=a?r.plus(i):r.minus(i),r=R(i.times(l),new e(t++*t++),u,1),void 0!==(i=o.plus(r)).d[c]){for(s=c;i.d[s]===o.d[s]&&s--;);if(-1==s)break}s=o,o=r,r=i,i=s}return p=!0,i.d.length=c+1,i}function Y(e,t){for(var n=e;--t;)n*=e;return n}function J(e,t){var n,r=t.s<0,a=P(e,e.precision,1),s=a.times(.5);if((t=t.abs()).lte(s))return o=r?4:1,t;if((n=t.divToInt(a)).isZero())o=r?3:2;else{if((t=t.minus(n.times(a))).lte(s))return o=U(n)?r?2:3:r?4:1,t;o=U(n)?r?1:4:r?3:2}return t.minus(a).abs()}function Z(e,t,n,r){var a,s,o,l,h,f,d,p,m,g=e.constructor,y=void 0!==n;if(y?(D(n,1,u),void 0===r?r=g.rounding:D(r,0,8)):(n=g.precision,r=g.rounding),e.isFinite()){for(y?(a=2,16==t?n=4*n-3:8==t&&(n=3*n-2)):a=t,(o=(d=B(e)).indexOf("."))>=0&&(d=d.replace(".",""),(m=new g(1)).e=d.length-o,m.d=F(B(m),10,a),m.e=m.d.length),s=h=(p=F(d,10,a)).length;0==p[--h];)p.pop();if(p[0]){if(o<0?s--:((e=new g(e)).d=p,e.e=s,p=(e=R(e,m,n,r,0,a)).d,s=e.e,f=i),o=p[n],l=a/2,f=f||void 0!==p[n+1],f=r<4?(void 0!==o||f)&&(0===r||r===(e.s<0?3:2)):o>l||o===l&&(4===r||f||6===r&&1&p[n-1]||r===(e.s<0?8:7)),p.length=n,f)for(;++p[--n]>a-1;)p[n]=0,n||(++s,p.unshift(1));for(h=p.length;!p[h-1];--h);for(o=0,d="";o1)if(16==t||8==t){for(o=16==t?4:3,--h;h%o;h++)d+="0";for(h=(p=F(d,a,t)).length;!p[h-1];--h);for(o=1,d="1.";oh)for(s-=h;s--;)d+="0";else st)return e.length=t,!0}function ee(e){return new this(e).abs()}function te(e){return new this(e).acos()}function ne(e){return new this(e).acosh()}function re(e,t){return new this(e).plus(t)}function ae(e){return new this(e).asin()}function se(e){return new this(e).asinh()}function ie(e){return new this(e).atan()}function oe(e){return new this(e).atanh()}function le(e,t){e=new this(e),t=new this(t);var n,r=this.precision,a=this.rounding,s=r+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?P(this,r,a):new this(0)).s=e.s:!e.d||t.isZero()?(n=P(this,s,1).times(.5)).s=e.s:t.s<0?(this.precision=s,this.rounding=1,n=this.atan(R(e,t,s,1)),t=P(this,s,1),this.precision=r,this.rounding=a,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(R(e,t,s,1)):(n=P(this,s,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function ue(e){return new this(e).cbrt()}function ce(e){return O(e=new this(e),e.e+1,2)}function he(e){if(!e||"object"!=typeof e)throw Error(m+"Object expected");var t,n,r,a=!0===e.defaults,s=["precision",1,u,"rounding",0,8,"toExpNeg",-l,0,"toExpPos",0,l,"maxE",0,l,"minE",-l,0,"modulo",0,9];for(t=0;t=s[t+1]&&r<=s[t+2]))throw Error(g+n+": "+r);this[n]=r}if(n="crypto",a&&(this[n]=d[n]),void 0!==(r=e[n])){if(!0!==r&&!1!==r&&0!==r&&1!==r)throw Error(g+n+": "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(b);this[n]=!0}else this[n]=!1}return this}function fe(e){return new this(e).cos()}function de(e){return new this(e).cosh()}function pe(e,t){return new this(e).div(t)}function me(e){return new this(e).exp()}function ge(e){return O(e=new this(e),e.e+1,3)}function ye(){var e,t,n=new this(0);for(p=!1,e=0;e=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:o[s++]=a%1e7;else{if(!crypto.randomBytes)throw Error(b);for(t=crypto.randomBytes(r*=4);s=214e7?crypto.randomBytes(4).copy(t,s):(o.push(a%1e7),s+=4);s=r/4}else for(;s=10;a/=10)r++;r<7&&(n-=7-r)}return i.e=n,i.d=o,i}function Ae(e){return O(e=new this(e),e.e+1,this.rounding)}function De(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function Te(e){return new this(e).sin()}function Fe(e){return new this(e).sinh()}function Re(e){return new this(e).sqrt()}function Oe(e,t){return new this(e).sub(t)}function Be(e){return new this(e).tan()}function Me(e){return new this(e).tanh()}function $e(e){return O(e=new this(e),e.e+1,1)}(s=function e(t){var n,r,a;function s(e){var t,n,r,a=this;if(!(a instanceof s))return new s(e);if(a.constructor=s,e instanceof s)return a.s=e.s,void(p?!e.d||e.e>s.maxE?(a.e=NaN,a.d=null):e.e=10;n/=10)t++;return void(p?t>s.maxE?(a.e=NaN,a.d=null):t{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,s;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!=a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(s=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!=a--;)if(!Object.prototype.hasOwnProperty.call(n,s[a]))return!1;for(a=r;0!=a--;){var i=s[a];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},5628:function(e,t){var n;!function(r){"use strict";var a={s:1,n:0,d:1};function s(e){function t(){var t=Error.apply(this,arguments);t.name=this.name=e,this.stack=t.stack,this.message=t.message}function n(){}return n.prototype=Error.prototype,t.prototype=new n,t}var i=f.DivisionByZero=s("DivisionByZero"),o=f.InvalidParameter=s("InvalidParameter");function l(e,t){return isNaN(e=parseInt(e,10))&&u(),e*t}function u(){throw new o}var c=function(e,t){var n,r=0,s=1,o=1,c=0,h=0,f=0,d=1,p=1,m=0,g=1,y=1,b=1,v=1e7;if(null==e);else if(void 0!==t)o=(r=e)*(s=t);else switch(typeof e){case"object":"d"in e&&"n"in e?(r=e.n,s=e.d,"s"in e&&(r*=e.s)):0 in e?(r=e[0],1 in e&&(s=e[1])):u(),o=r*s;break;case"number":if(e<0&&(o=e,e=-e),e%1==0)r=e;else if(e>0){for(e>=1&&(e/=p=Math.pow(10,Math.floor(1+Math.log(e)/Math.LN10)));g<=v&&b<=v;){if(e===(n=(m+y)/(g+b))){g+b<=v?(r=m+y,s=g+b):b>g?(r=y,s=b):(r=m,s=g);break}e>n?(m+=y,g+=b):(y+=m,b+=g),g>v?(r=y,s=b):(r=m,s=g)}r*=p}else(isNaN(e)||isNaN(t))&&(s=r=NaN);break;case"string":if(null===(g=e.match(/\d+|./g))&&u(),"-"===g[m]?(o=-1,m++):"+"===g[m]&&m++,g.length===m+1?h=l(g[m++],o):"."===g[m+1]||"."===g[m]?("."!==g[m]&&(c=l(g[m++],o)),(1+ ++m===g.length||"("===g[m+1]&&")"===g[m+3]||"'"===g[m+1]&&"'"===g[m+3])&&(h=l(g[m],o),d=Math.pow(10,g[m].length),m++),("("===g[m]&&")"===g[m+2]||"'"===g[m]&&"'"===g[m+2])&&(f=l(g[m+1],o),p=Math.pow(10,g[m+1].length)-1,m+=3)):"/"===g[m+1]||":"===g[m+1]?(h=l(g[m],o),d=l(g[m+2],1),m+=3):"/"===g[m+3]&&" "===g[m+1]&&(c=l(g[m],o),h=l(g[m+2],o),d=l(g[m+4],1),m+=5),g.length<=m){o=r=f+(s=d*p)*c+p*h;break}default:u()}if(0===s)throw new i;a.s=o<0?-1:1,a.n=Math.abs(r),a.d=Math.abs(s)};function h(e,t){if(!e)return t;if(!t)return e;for(;;){if(!(e%=t))return t;if(!(t%=e))return e}}function f(e,t){if(!(this instanceof f))return new f(e,t);c(e,t),e=f.REDUCE?h(a.d,a.n):1,this.s=a.s,this.n=a.n/e,this.d=a.d/e}f.REDUCE=1,f.prototype={s:1,n:0,d:1,abs:function(){return new f(this.n,this.d)},neg:function(){return new f(-this.s*this.n,this.d)},add:function(e,t){return c(e,t),new f(this.s*this.n*a.d+a.s*this.d*a.n,this.d*a.d)},sub:function(e,t){return c(e,t),new f(this.s*this.n*a.d-a.s*this.d*a.n,this.d*a.d)},mul:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.n,this.d*a.d)},div:function(e,t){return c(e,t),new f(this.s*a.s*this.n*a.d,this.d*a.n)},clone:function(){return new f(this)},mod:function(e,t){return isNaN(this.n)||isNaN(this.d)?new f(NaN):void 0===e?new f(this.s*this.n%this.d,1):(c(e,t),0===a.n&&0===this.d&&f(0,0),new f(this.s*(a.d*this.n)%(a.n*this.d),a.d*this.d))},gcd:function(e,t){return c(e,t),new f(h(a.n,this.n)*h(a.d,this.d),a.d*this.d)},lcm:function(e,t){return c(e,t),0===a.n&&0===this.n?new f:new f(a.n*this.n,h(a.n,this.n)*h(a.d,this.d))},ceil:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.ceil(e*this.s*this.n/this.d),e)},floor:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.floor(e*this.s*this.n/this.d),e)},round:function(e){return e=Math.pow(10,e||0),isNaN(this.n)||isNaN(this.d)?new f(NaN):new f(Math.round(e*this.s*this.n/this.d),e)},inverse:function(){return new f(this.s*this.d,this.n)},pow:function(e){return e<0?new f(Math.pow(this.s*this.d,-e),Math.pow(this.n,-e)):new f(Math.pow(this.s*this.n,e),Math.pow(this.d,e))},equals:function(e,t){return c(e,t),this.s*this.n*a.d==a.s*a.n*this.d},compare:function(e,t){c(e,t);var n=this.s*this.n*a.d-a.s*a.n*this.d;return(00&&(n+=t,n+=" ",r%=a),n+=r,n+="/",n+=a),n},toLatex:function(e){var t,n="",r=this.n,a=this.d;return this.s<0&&(n+="-"),1===a?n+=r:(e&&(t=Math.floor(r/a))>0&&(n+=t,r%=a),n+="\\frac{",n+=r,n+="}{",n+=a,n+="}"),n},toContinued:function(){var e,t=this.n,n=this.d,r=[];if(isNaN(t)||isNaN(n))return r;do{r.push(Math.floor(t/n)),e=t%n,t=n,n=e}while(1!==t);return r},toString:function(e){var t,n=this.n,r=this.d;if(isNaN(n)||isNaN(r))return"NaN";f.REDUCE||(n/=t=h(n,r),r/=t),e=e||15;var a=function(e,t){for(;t%2==0;t/=2);for(;t%5==0;t/=5);if(1===t)return 0;for(var n=10%t,r=1;1!==n;r++)if(n=10*n%t,r>2e3)return 0;return r}(0,r),s=function(e,t,n){for(var r=1,a=function(e,t,n){for(var r=1;t>0;e=e*e%n,t>>=1)1&t&&(r=r*e%n);return r}(10,n,t),s=0;s<300;s++){if(r===a)return s;r=10*r%t,a=10*a%t}return 0}(0,r,a),i=-1===this.s?"-":"";if(i+=n/r|0,n%=r,(n*=10)&&(i+="."),a){for(var o=s;o--;)i+=n/r|0,n%=r,n*=10;for(i+="(",o=a;o--;)i+=n/r|0,n%=r,n*=10;i+=")"}else for(o=e;n&&o--;)i+=n/r|0,n%=r,n*=10;return i}},void 0===(n=function(){return f}.apply(t,[]))||(e.exports=n)}()},1903:e=>{"use strict";e.exports=e=>!Number.isNaN(e)&&e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141)},3228:e=>{e.exports=function e(t,n){"use strict";var r,a,s=/(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,i=/(^[ ]*|[ ]*$)/g,o=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,l=/^0x[0-9a-f]+$/i,u=/^0/,c=function(t){return e.insensitive&&(""+t).toLowerCase()||""+t},h=c(t).replace(i,"")||"",f=c(n).replace(i,"")||"",d=h.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),p=f.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),m=parseInt(h.match(l),16)||1!==d.length&&h.match(o)&&Date.parse(h),g=parseInt(f.match(l),16)||m&&f.match(o)&&Date.parse(f)||null;if(g){if(mg)return 1}for(var y=0,b=Math.max(d.length,p.length);ya)return 1}return 0}},8552:(e,t,n)=>{var r=n(852)(n(5639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(1789),a=n(401),s=n(7667),i=n(1327),o=n(1866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7040),a=n(4125),s=n(2117),i=n(7518),o=n(4705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Map");e.exports=r},3369:(e,t,n)=>{var r=n(4785),a=n(1285),s=n(6e3),i=n(9916),o=n(5265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(852)(n(5639),"Promise");e.exports=r},8525:(e,t,n)=>{var r=n(852)(n(5639),"Set");e.exports=r},8668:(e,t,n)=>{var r=n(3369),a=n(619),s=n(2385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t{var r=n(8407),a=n(7465),s=n(3779),i=n(7599),o=n(4758),l=n(4309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=a,u.prototype.delete=s,u.prototype.get=i,u.prototype.has=o,u.prototype.set=l,e.exports=u},2705:(e,t,n)=>{var r=n(5639).Symbol;e.exports=r},1149:(e,t,n)=>{var r=n(5639).Uint8Array;e.exports=r},577:(e,t,n)=>{var r=n(852)(n(5639),"WeakMap");e.exports=r},7412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,s=[];++n{var r=n(2545),a=n(5694),s=n(1469),i=n(4144),o=n(5776),l=n(6719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=s(e),c=!n&&a(e),h=!n&&!c&&i(e),f=!n&&!c&&!h&&l(e),d=n||c||h||f,p=d?r(e.length,String):[],m=p.length;for(var g in e)!t&&!u.call(e,g)||d&&("length"==g||h&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||o(g,m))||p.push(g);return p}},9932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n{e.exports=function(e,t){for(var n=-1,r=t.length,a=e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{var r=n(371)("length");e.exports=r},4286:e=>{e.exports=function(e){return e.split("")}},4865:(e,t,n)=>{var r=n(9465),a=n(7813),s=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];s.call(e,t)&&a(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},8470:(e,t,n)=>{var r=n(7813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},4037:(e,t,n)=>{var r=n(8363),a=n(3674);e.exports=function(e,t){return e&&r(t,a(t),e)}},3886:(e,t,n)=>{var r=n(8363),a=n(1704);e.exports=function(e,t){return e&&r(t,a(t),e)}},9465:(e,t,n)=>{var r=n(8777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},5990:(e,t,n)=>{var r=n(6384),a=n(7412),s=n(4865),i=n(4037),o=n(3886),l=n(4626),u=n(278),c=n(8805),h=n(1911),f=n(8234),d=n(6904),p=n(4160),m=n(3824),g=n(9148),y=n(8517),b=n(1469),v=n(4144),w=n(6688),_=n(3218),x=n(2928),k=n(3674),E=n(1704),C="[object Arguments]",S="[object Function]",N="[object Object]",I={};I[C]=I["[object Array]"]=I["[object ArrayBuffer]"]=I["[object DataView]"]=I["[object Boolean]"]=I["[object Date]"]=I["[object Float32Array]"]=I["[object Float64Array]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Map]"]=I["[object Number]"]=I[N]=I["[object RegExp]"]=I["[object Set]"]=I["[object String]"]=I["[object Symbol]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I["[object Error]"]=I[S]=I["[object WeakMap]"]=!1,e.exports=function e(t,n,A,D,T,F){var R,O=1&n,B=2&n,M=4&n;if(A&&(R=T?A(t,D,T,F):A(t)),void 0!==R)return R;if(!_(t))return t;var $=b(t);if($){if(R=m(t),!O)return u(t,R)}else{var P=p(t),L=P==S||"[object GeneratorFunction]"==P;if(v(t))return l(t,O);if(P==N||P==C||L&&!T){if(R=B||L?{}:y(t),!O)return B?h(t,o(R,t)):c(t,i(R,t))}else{if(!I[P])return T?t:{};R=g(t,P,O)}}F||(F=new r);var z=F.get(t);if(z)return z;F.set(t,R),x(t)?t.forEach((function(r){R.add(e(r,n,A,r,t,F))})):w(t)&&t.forEach((function(r,a){R.set(a,e(r,n,A,a,t,F))}));var W=$?void 0:(M?B?d:f:B?E:k)(t);return a(W||t,(function(r,a){W&&(r=t[a=r]),s(R,a,e(r,n,A,a,t,F))})),R}},3118:(e,t,n)=>{var r=n(3218),a=Object.create,s=function(){function e(){}return function(t){if(!r(t))return{};if(a)return a(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=s},6029:(e,t,n)=>{var r=n(3448);e.exports=function(e,t,n){for(var a=-1,s=e.length;++a{e.exports=function(e,t,n,r){for(var a=e.length,s=n+(r?1:-1);r?s--:++s{var r=n(2488),a=n(7285);e.exports=function e(t,n,s,i,o){var l=-1,u=t.length;for(s||(s=a),o||(o=[]);++l0&&s(c)?n>1?e(c,n-1,s,i,o):r(o,c):i||(o[o.length]=c)}return o}},8483:(e,t,n)=>{var r=n(5063)();e.exports=r},7816:(e,t,n)=>{var r=n(8483),a=n(3674);e.exports=function(e,t){return e&&r(e,t,a)}},7786:(e,t,n)=>{var r=n(1811),a=n(327);e.exports=function(e,t){for(var n=0,s=(t=r(t,e)).length;null!=e&&n{var r=n(2488),a=n(1469);e.exports=function(e,t,n){var s=t(e);return a(e)?s:r(s,n(e))}},4239:(e,t,n)=>{var r=n(2705),a=n(9607),s=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):s(e)}},3325:e=>{e.exports=function(e,t){return e>t}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,n)=>{var r=n(1848),a=n(2722),s=n(2351);e.exports=function(e,t,n){return t==t?s(e,t,n):r(e,a,n)}},9454:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object Arguments]"==r(e)}},939:(e,t,n)=>{var r=n(2492),a=n(7005);e.exports=function e(t,n,s,i,o){return t===n||(null==t||null==n||!a(t)&&!a(n)?t!=t&&n!=n:r(t,n,s,i,e,o))}},2492:(e,t,n)=>{var r=n(6384),a=n(7114),s=n(8351),i=n(6096),o=n(4160),l=n(1469),u=n(4144),c=n(6719),h="[object Arguments]",f="[object Array]",d="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,y){var b=l(e),v=l(t),w=b?f:o(e),_=v?f:o(t),x=(w=w==h?d:w)==d,k=(_=_==h?d:_)==d,E=w==_;if(E&&u(e)){if(!u(t))return!1;b=!0,x=!1}if(E&&!x)return y||(y=new r),b||c(e)?a(e,t,n,m,g,y):s(e,t,w,n,m,g,y);if(!(1&n)){var C=x&&p.call(e,"__wrapped__"),S=k&&p.call(t,"__wrapped__");if(C||S){var N=C?e.value():e,I=S?t.value():t;return y||(y=new r),g(N,I,n,m,y)}}return!!E&&(y||(y=new r),i(e,t,n,m,g,y))}},5588:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(6384),a=n(939);e.exports=function(e,t,n,s){var i=n.length,o=i,l=!s;if(null==e)return!o;for(e=Object(e);i--;){var u=n[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i{e.exports=function(e){return e!=e}},8458:(e,t,n)=>{var r=n(3560),a=n(5346),s=n(3218),i=n(346),o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,h=u.hasOwnProperty,f=RegExp("^"+c.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||a(e))&&(r(e)?f:o).test(i(e))}},3933:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return a(e)&&"[object RegExp]"==r(e)}},9221:(e,t,n)=>{var r=n(4160),a=n(7005);e.exports=function(e){return a(e)&&"[object Set]"==r(e)}},8749:(e,t,n)=>{var r=n(4239),a=n(1780),s=n(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return s(e)&&a(e.length)&&!!i[r(e)]}},7206:(e,t,n)=>{var r=n(1573),a=n(6432),s=n(6557),i=n(1469),o=n(9601);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?i(e)?a(e[0],e[1]):r(e):o(e)}},280:(e,t,n)=>{var r=n(5726),a=n(6916),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=[];for(var n in Object(e))s.call(e,n)&&"constructor"!=n&&t.push(n);return t}},313:(e,t,n)=>{var r=n(3218),a=n(5726),s=n(3498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return s(e);var t=a(e),n=[];for(var o in e)("constructor"!=o||!t&&i.call(e,o))&&n.push(o);return n}},1573:(e,t,n)=>{var r=n(2958),a=n(1499),s=n(2634);e.exports=function(e){var t=a(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},6432:(e,t,n)=>{var r=n(939),a=n(7361),s=n(9095),i=n(5403),o=n(9162),l=n(2634),u=n(327);e.exports=function(e,t){return i(e)&&o(t)?l(u(e),t):function(n){var i=a(n,e);return void 0===i&&i===t?s(n,e):r(t,i,3)}}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,n)=>{var r=n(7786);e.exports=function(e){return function(t){return r(t,e)}}},4259:e=>{e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(a);++r{e.exports=function(e,t){for(var n=-1,r=Array(e);++n{var r=n(2705),a=n(9932),s=n(1469),i=n(3448),o=r?r.prototype:void 0,l=o?o.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(s(t))return a(t,e)+"";if(i(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},1717:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,n)=>{var r=n(9932);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},4290:(e,t,n)=>{var r=n(6557);e.exports=function(e){return"function"==typeof e?e:r}},1811:(e,t,n)=>{var r=n(1469),a=n(5403),s=n(5514),i=n(9833);e.exports=function(e,t){return r(e)?e:a(e,t)?[e]:s(i(e))}},180:(e,t,n)=>{var r=n(4259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},5512:(e,t,n)=>{var r=n(2118);e.exports=function(e,t){for(var n=e.length;n--&&r(t,e[n],0)>-1;);return n}},4318:(e,t,n)=>{var r=n(1149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4626:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a?r.Buffer:void 0,o=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}},7157:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},3147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},419:(e,t,n)=>{var r=n(2705),a=r?r.prototype:void 0,s=a?a.valueOf:void 0;e.exports=function(e){return s?Object(s.call(e)):{}}},7133:(e,t,n)=>{var r=n(4318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{var r=n(4865),a=n(9465);e.exports=function(e,t,n,s){var i=!n;n||(n={});for(var o=-1,l=t.length;++o{var r=n(8363),a=n(9551);e.exports=function(e,t){return r(e,a(e),t)}},1911:(e,t,n)=>{var r=n(8363),a=n(1442);e.exports=function(e,t){return r(e,a(e),t)}},4429:(e,t,n)=>{var r=n(5639)["__core-js_shared__"];e.exports=r},5063:e=>{e.exports=function(e){return function(t,n,r){for(var a=-1,s=Object(t),i=r(t),o=i.length;o--;){var l=i[e?o:++a];if(!1===n(s[l],l,s))break}return t}}},8777:(e,t,n)=>{var r=n(852),a=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=a},7114:(e,t,n)=>{var r=n(8668),a=n(2908),s=n(4757);e.exports=function(e,t,n,i,o,l){var u=1&n,c=e.length,h=t.length;if(c!=h&&!(u&&h>c))return!1;var f=l.get(e),d=l.get(t);if(f&&d)return f==t&&d==e;var p=-1,m=!0,g=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++p{var r=n(2705),a=n(1149),s=n(7813),i=n(7114),o=n(8776),l=n(1814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,h,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!h(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return s(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=o;case"[object Set]":var p=1&r;if(d||(d=l),e.size!=t.size&&!p)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(d(e),d(t),r,u,h,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},6096:(e,t,n)=>{var r=n(8234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,s,i,o){var l=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!l)return!1;for(var h=c;h--;){var f=u[h];if(!(l?f in t:a.call(t,f)))return!1}var d=o.get(e),p=o.get(t);if(d&&p)return d==t&&p==e;var m=!0;o.set(e,t),o.set(t,e);for(var g=l;++h{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},8234:(e,t,n)=>{var r=n(8866),a=n(9551),s=n(3674);e.exports=function(e){return r(e,s,a)}},6904:(e,t,n)=>{var r=n(8866),a=n(1442),s=n(1704);e.exports=function(e){return r(e,s,a)}},5050:(e,t,n)=>{var r=n(7019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(9162),a=n(3674);e.exports=function(e){for(var t=a(e),n=t.length;n--;){var s=t[n],i=e[s];t[n]=[s,i,r(i)]}return t}},852:(e,t,n)=>{var r=n(8458),a=n(7801);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},5924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},9607:(e,t,n)=>{var r=n(2705),a=Object.prototype,s=a.hasOwnProperty,i=a.toString,o=r?r.toStringTag:void 0;e.exports=function(e){var t=s.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch(e){}var a=i.call(e);return r&&(t?e[o]=n:delete e[o]),a}},9551:(e,t,n)=>{var r=n(4963),a=n(479),s=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,o=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return s.call(e,t)})))}:a;e.exports=o},1442:(e,t,n)=>{var r=n(2488),a=n(5924),s=n(9551),i=n(479),o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,s(e)),e=a(e);return t}:i;e.exports=o},4160:(e,t,n)=>{var r=n(8552),a=n(7071),s=n(3818),i=n(8525),o=n(577),l=n(4239),u=n(346),c="[object Map]",h="[object Promise]",f="[object Set]",d="[object WeakMap]",p="[object DataView]",m=u(r),g=u(a),y=u(s),b=u(i),v=u(o),w=l;(r&&w(new r(new ArrayBuffer(1)))!=p||a&&w(new a)!=c||s&&w(s.resolve())!=h||i&&w(new i)!=f||o&&w(new o)!=d)&&(w=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return p;case g:return c;case y:return h;case b:return f;case v:return d}return t}),e.exports=w},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(1811),a=n(5694),s=n(1469),i=n(5776),o=n(1780),l=n(327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,h=!1;++u{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},1789:(e,t,n)=>{var r=n(4536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return a.call(t,e)?t[e]:void 0}},1327:(e,t,n)=>{var r=n(4536),a=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:a.call(t,e)}},1866:(e,t,n)=>{var r=n(4536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},3824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},9148:(e,t,n)=>{var r=n(4318),a=n(7157),s=n(3147),i=n(419),o=n(7133);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return a(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(e,n);case"[object Map]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return s(e);case"[object Set]":return new l;case"[object Symbol]":return i(e)}}},8517:(e,t,n)=>{var r=n(3118),a=n(5924),s=n(5726);e.exports=function(e){return"function"!=typeof e.constructor||s(e)?{}:r(a(e))}},7285:(e,t,n)=>{var r=n(2705),a=n(5694),s=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return s(e)||a(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e{var r=n(1469),a=n(3448),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||i.test(e)||!s.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,n)=>{var r,a=n(4429),s=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!s&&s in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9162:(e,t,n)=>{var r=n(3218);e.exports=function(e){return e==e&&!r(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,n)=>{var r=n(8470),a=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():a.call(t,n,1),--this.size,0))}},2117:(e,t,n)=>{var r=n(8470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},7518:(e,t,n)=>{var r=n(8470);e.exports=function(e){return r(this.__data__,e)>-1}},4705:(e,t,n)=>{var r=n(8470);e.exports=function(e,t){var n=this.__data__,a=r(n,e);return a<0?(++this.size,n.push([e,t])):n[a][1]=t,this}},4785:(e,t,n)=>{var r=n(1989),a=n(8407),s=n(7071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(s||a),string:new r}}},1285:(e,t,n)=>{var r=n(5050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).get(e)}},9916:(e,t,n)=>{var r=n(5050);e.exports=function(e){return r(this,e).has(e)}},5265:(e,t,n)=>{var r=n(5050);e.exports=function(e,t){var n=r(this,e),a=n.size;return n.set(e,t),this.size+=n.size==a?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},2634:e=>{e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},4523:(e,t,n)=>{var r=n(8306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},4536:(e,t,n)=>{var r=n(852)(Object,"create");e.exports=r},6916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},3498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},1167:(e,t,n)=>{e=n.nmd(e);var r=n(1957),a=t&&!t.nodeType&&t,s=a&&e&&!e.nodeType&&e,i=s&&s.exports===a&&r.process,o=function(){try{return s&&s.require&&s.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=o},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5639:(e,t,n)=>{var r=n(1957),a="object"==typeof self&&self&&self.Object===Object&&self,s=r||a||Function("return this")();e.exports=s},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},7465:(e,t,n)=>{var r=n(8407);e.exports=function(){this.__data__=new r,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,n)=>{var r=n(8407),a=n(7071),s=n(3369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!a||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new s(i)}return n.set(e,t),this.size=n.size,this}},2351:e=>{e.exports=function(e,t,n){for(var r=n-1,a=e.length;++r{var r=n(8983),a=n(2689),s=n(8816);e.exports=function(e){return a(e)?s(e):r(e)}},3140:(e,t,n)=>{var r=n(4286),a=n(2689),s=n(676);e.exports=function(e){return a(e)?s(e):r(e)}},5514:(e,t,n)=>{var r=n(4523),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(a,(function(e,n,r,a){t.push(r?a.replace(s,"$1"):n||e)})),t}));e.exports=i},327:(e,t,n)=>{var r=n(3448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},8816:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){for(var t=c.lastIndex=0;c.test(e);)++t;return t}},676:e=>{var t="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",i="(?:"+t+"|"+n+")?",o="[\\ufe0e\\ufe0f]?",l=o+i+"(?:\\u200d(?:"+[r,a,s].join("|")+")"+o+i+")*",u="(?:"+[r+t+"?",t,a,s,"[\\ud800-\\udfff]"].join("|")+")",c=RegExp(n+"(?="+n+")|"+u+l,"g");e.exports=function(e){return e.match(c)||[]}},361:(e,t,n)=>{var r=n(5990);e.exports=function(e){return r(e,5)}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},5564:(e,t,n)=>{var r=n(1078);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},7361:(e,t,n)=>{var r=n(7786);e.exports=function(e,t,n){var a=null==e?void 0:r(e,t);return void 0===a?n:a}},9095:(e,t,n)=>{var r=n(13),a=n(222);e.exports=function(e,t){return null!=e&&a(e,t,r)}},6557:e=>{e.exports=function(e){return e}},5694:(e,t,n)=>{var r=n(9454),a=n(7005),s=Object.prototype,i=s.hasOwnProperty,o=s.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return a(e)&&i.call(e,"callee")&&!o.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,n)=>{var r=n(3560),a=n(1780);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},1584:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return!0===e||!1===e||a(e)&&"[object Boolean]"==r(e)}},4144:(e,t,n)=>{e=n.nmd(e);var r=n(5639),a=n(5062),s=t&&!t.nodeType&&t,i=s&&e&&!e.nodeType&&e,o=i&&i.exports===s?r.Buffer:void 0,l=(o?o.isBuffer:void 0)||a;e.exports=l},3560:(e,t,n)=>{var r=n(4239),a=n(3218);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6688:(e,t,n)=>{var r=n(5588),a=n(1717),s=n(1167),i=s&&s.isMap,o=i?a(i):r;e.exports=o},1763:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"number"==typeof e||a(e)&&"[object Number]"==r(e)}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},6347:(e,t,n)=>{var r=n(3933),a=n(1717),s=n(1167),i=s&&s.isRegExp,o=i?a(i):r;e.exports=o},2928:(e,t,n)=>{var r=n(9221),a=n(1717),s=n(1167),i=s&&s.isSet,o=i?a(i):r;e.exports=o},7037:(e,t,n)=>{var r=n(4239),a=n(1469),s=n(7005);e.exports=function(e){return"string"==typeof e||!a(e)&&s(e)&&"[object String]"==r(e)}},3448:(e,t,n)=>{var r=n(4239),a=n(7005);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},6719:(e,t,n)=>{var r=n(8749),a=n(1717),s=n(1167),i=s&&s.isTypedArray,o=i?a(i):r;e.exports=o},2353:e=>{e.exports=function(e){return void 0===e}},3674:(e,t,n)=>{var r=n(4636),a=n(280),s=n(8612);e.exports=function(e){return s(e)?r(e):a(e)}},1704:(e,t,n)=>{var r=n(4636),a=n(313),s=n(8612);e.exports=function(e){return s(e)?r(e,!0):a(e)}},6604:(e,t,n)=>{var r=n(9465),a=n(7816),s=n(7206);e.exports=function(e,t){var n={};return t=s(t,3),a(e,(function(e,a,s){r(n,a,t(e,a,s))})),n}},6162:(e,t,n)=>{var r=n(6029),a=n(3325),s=n(6557);e.exports=function(e){return e&&e.length?r(e,s,a):void 0}},8306:(e,t,n)=>{var r=n(3369);function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,a=t?t.apply(this,r):r[0],s=n.cache;if(s.has(a))return s.get(a);var i=e.apply(this,r);return n.cache=s.set(a,i)||s,i};return n.cache=new(a.Cache||r),n}a.Cache=r,e.exports=a},9601:(e,t,n)=>{var r=n(371),a=n(9152),s=n(5403),i=n(327);e.exports=function(e){return s(e)?r(i(e)):a(e)}},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8913:(e,t,n)=>{var r=n(2545),a=n(4290),s=n(554),i=4294967295,o=Math.min;e.exports=function(e,t){if((e=s(e))<1||e>9007199254740991)return[];var n=i,l=o(e,i);t=a(t),e-=i;for(var u=r(l,t);++n{var r=n(4841);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,n)=>{var r=n(8601);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},4841:(e,t,n)=>{var r=n(3218),a=n(3448),s=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var n=o.test(e);return n||l.test(e)?u(e.slice(2),n?2:8):i.test(e)?NaN:+e}},9833:(e,t,n)=>{var r=n(531);e.exports=function(e){return null==e?"":r(e)}},691:(e,t,n)=>{var r=n(531),a=n(180),s=n(5512),i=n(3140),o=n(9833),l=/\s+$/;e.exports=function(e,t,n){if((e=o(e))&&(n||void 0===t))return e.replace(l,"");if(!e||!(t=r(t)))return e;var u=i(e),c=s(u,i(t))+1;return a(u,0,c).join("")}},9138:(e,t,n)=>{var r=n(531),a=n(180),s=n(2689),i=n(3218),o=n(6347),l=n(8016),u=n(3140),c=n(554),h=n(9833),f=/\w*$/;e.exports=function(e,t){var n=30,d="...";if(i(t)){var p="separator"in t?t.separator:p;n="length"in t?c(t.length):n,d="omission"in t?r(t.omission):d}var m=(e=h(e)).length;if(s(e)){var g=u(e);m=g.length}if(n>=m)return e;var y=n-l(d);if(y<1)return d;var b=g?a(g,0,y).join(""):e.slice(0,y);if(void 0===p)return b+d;if(g&&(y+=b.length-y),o(p)){if(e.slice(y).search(p)){var v,w=b;for(p.global||(p=RegExp(p.source,h(f.exec(p))+"g")),p.lastIndex=0;v=p.exec(w);)var _=v.index;b=b.slice(0,void 0===_?y:_)}}else if(e.indexOf(r(p),y)!=y){var x=b.lastIndexOf(p);x>-1&&(b=b.slice(0,x))}return b+d}},2628:(e,t,n)=>{var r=n(7415),a=n(3674);e.exports=function(e){return null==e?[]:r(e,a(e))}},3346:(e,t,n)=>{"use strict";n.d(t,{C2o:()=>kn,xJM:()=>nn,qoR:()=>xn,CAK:()=>_n});var r={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function a(){return(a=Object.assign||function(e){for(var t=1;tt.re?1:e.ret.im?1:e.im=0?"+":"")+r.toString()}(e,n);case"auto":var a=t&&void 0!==t.lowerExp?t.lowerExp:-3,s=t&&void 0!==t.upperExp?t.upperExp:5;if(e.isZero())return"0";var i=e.toSignificantDigits(n),o=i.e;return(o>=a&&o=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function $(e){for(var t=[];Array.isArray(e);)t.push(e.length),e=e[0];return t}function P(e,t,n){var r,a=e.length;if(a!==t[n])throw new B(a,t[n]);if(n")}function L(e,t){if(0===t.length){if(Array.isArray(e))throw new B(e.length,0)}else P(e,t,0)}function z(e,t){if(!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("Index must be an integer (value: "+e+")");if(e<0||"number"==typeof t&&e>=t)throw new M(e,t)}function W(e,t,n){if(!Array.isArray(e)||!Array.isArray(t))throw new TypeError("Array expected");if(0===t.length)throw new Error("Resizing to scalar is not supported");return t.forEach((function(e){if(!(0,i.hj)(e)||!(0,g.U)(e)||e<0)throw new TypeError("Invalid size, must contain positive integers (size: "+R(t)+")")})),U(e,t,0,void 0!==n?n:0),e}function U(e,t,n,r){var a,s,i=e.length,o=t[n],l=Math.min(i,o);if(e.length=o,n");h(e,t.max().map((function(e){return e+1})),r);var d=s.length;o(e._data,t,n,d,0)}return e}function o(e,t,n,r,a){var s=a===r-1,i=t.dimension(a);s?i.forEach((function(t,r){z(t),e[t]=n[r[0]]})):i.forEach((function(s,i){z(s),o(e[s],t,n[i[0]],r,a+1)}))}function u(e,t,n){if(0===t.length){for(var r=e._data;(0,i.kJ)(r);)r=r[0];return r}return e._size=t.slice(0),e._data=W(e._data,e._size,n),e}function h(e,t,n){for(var r=e._size.slice(0),a=!1;r.lengthr[s]&&(r[s]=t[s],a=!0);a&&u(e,r,n)}function f(e){for(var t=0,n=e.length;t0?e:0,r=e<0?-e:0,a=this._size[0],s=this._size[1],o=Math.min(a-r,s-t),l=[],u=0;u0?r:0,l=r<0?-r:0,u=e[0],c=e[1],h=Math.min(u-l,c-o);if((0,i.kJ)(t)){if(t.length!==h)throw new Error("Invalid value array length");s=function(e){return t[e]}}else if((0,i.SW)(t)){var f=t.size();if(1!==f.length||f[0]!==h)throw new Error("Invalid matrix length");s=function(e){return t.get([e])}}else s=function(){return t};a||(a=(0,i.l9)(s(0))?s(0).mul(0):0);var d=[];if(e.length>0){d=W(d,e,a);for(var p=0;p15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+e+"). Use function bignumber(x) to convert to BigNumber.");return new t(e)}},{from:"number",to:"Complex",convert:function(e){return n||Q(e),new n(e,0)}},{from:"number",to:"string",convert:function(e){return e+""}},{from:"BigNumber",to:"Complex",convert:function(e){return n||Q(e),new n(e.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function(e){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(e){return n||Q(e),new n(e.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(e){a||ee(e);var t=new a(e);if(t.valueOf()!==e)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+e+"). Use function fraction(x) to convert to Fraction.");return t}},{from:"string",to:"number",convert:function(e){var t=Number(e);if(isNaN(t))throw new Error('Cannot convert "'+e+'" to a number');return t}},{from:"string",to:"BigNumber",convert:function(e){t||Z(e);try{return new t(e)}catch(t){throw new Error('Cannot convert "'+e+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function(e){a||ee(e);try{return new a(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(e){n||Q(e);try{return new n(e)}catch(t){throw new Error('Cannot convert "'+e+'" to Complex')}}},{from:"boolean",to:"number",convert:function(e){return+e}},{from:"boolean",to:"BigNumber",convert:function(e){return t||Z(e),new t(+e)}},{from:"boolean",to:"Fraction",convert:function(e){return a||ee(e),new a(+e)}},{from:"boolean",to:"string",convert:function(e){return String(e)}},{from:"Array",to:"Matrix",convert:function(e){return r||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new r(e)}},{from:"Matrix",to:"Array",convert:function(e){return e.valueOf()}}],s}));function Z(e){throw new Error("Cannot convert value ".concat(e," into a BigNumber: no class 'BigNumber' provided"))}function Q(e){throw new Error("Cannot convert value ".concat(e," into a Complex number: no class 'Complex' provided"))}function ee(e){throw new Error("Cannot convert value ".concat(e," into a Fraction, no class 'Fraction' provided."))}function te(e,t){(0,i.SW)(e)&&(e=e.valueOf());for(var n=0,r=e.length;nMath.pow(2,32)-1)throw new SyntaxError('String "'.concat(e,'" is out of range'));2147483648&t&&(t=-1*~(t-1))}return t},BigNumber:function(e){return e.toNumber()},Fraction:function(e){return e.valueOf()},Unit:function(e){throw new Error("Second argument with valueless unit expected")},null:function(e){return 0},"Unit, string | Unit":function(e,t){return e.toNumber(t)},"Array | Matrix":function(e){return ne(e,this)}});return t.fromJSON=function(e){return parseFloat(e.value)},t}))),pe="number",me="number, number";function ge(e){return Math.abs(e)}function ye(e,t){return e+t}function be(e,t){return e*t}function ve(e){return-e}ge.signature=pe,ye.signature=me,be.signature=me,ve.signature=pe;var we="apply",_e=f(we,["typed","isInteger"],(function(e){var t=e.typed,n=e.isInteger;return t(we,{"Array | Matrix, number | BigNumber, function":function(e,t,r){if(!n(t))throw new TypeError("Integer number expected for dimension");var a=Array.isArray(e)?$(e):e.size();if(t<0||t>=a.length)throw new M(t,a.length);return(0,i.SW)(e)?e.create(xe(e.valueOf(),t,r)):xe(e,t,r)}})}));function xe(e,t,n){var r,a,s;if(t<=0){if(Array.isArray(e[0])){for(s=function(e){var t,n,r=e.length,a=e[0].length,s=[];for(n=0;nMath.pow(2,31)-1||n<-Math.pow(2,31))throw new Error("Value must be in range [-2^31, 2^31-1]");if(!(0,g.U)(n))throw new Error("Value must be an integer");return n<0&&(n+=Math.pow(2,32)),"".concat(t).concat(n.toString(e))}}Math.pow(2,53);var Ce=["typed"];function Se(e,t){return f(e,Ce,(function(n){return(0,n.typed)(e,{number:Ee(t)})}))}Se("oct",8);n(2424);n(7905);var Ne=f("fraction",["typed","Fraction"],(function(e){var t=e.typed,n=e.Fraction;return t("fraction",{number:function(e){if(!isFinite(e)||isNaN(e))throw new Error(e+" cannot be represented as a fraction");return new n(e)},string:function(e){return new n(e)},"number, number":function(e,t){return new n(e,t)},null:function(e){return new n(0)},BigNumber:function(e){return new n(e.toString())},Fraction:function(e){return e},Object:function(e){return new n(e)},"Array | Matrix":function(e){return ne(e,this)}})})),Ie="unaryMinus",Ae=f(Ie,["typed"],(function(e){return(0,e.typed)(Ie,{number:ve,Complex:function(e){return e.neg()},BigNumber:function(e){return e.neg()},Fraction:function(e){return e.neg()},Unit:function(e){var t=e.clone();return t.value=this(e.value),t},"Array | Matrix":function(e){return ne(e,this,!0)}})})),De="addScalar",Te=f(De,["typed"],(function(e){return(0,e.typed)(De,{"number, number":ye,"Complex, Complex":function(e,t){return e.add(t)},"BigNumber, BigNumber":function(e,t){return e.plus(t)},"Fraction, Fraction":function(e,t){return e.add(t)},"Unit, Unit":function(e,t){if(null===e.value||void 0===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value||void 0===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n}})})),Fe=f("sqrt",["config","typed","Complex"],(function(e){var t=e.config,n=e.typed,r=e.Complex;return n("sqrt",{number:a,Complex:function(e){return e.sqrt()},BigNumber:function(e){return!e.isNegative()||t.predictable?e.sqrt():a(e.toNumber())},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.pow(.5)}});function a(e){return isNaN(e)?NaN:e>=0||t.predictable?Math.sqrt(e):new r(e,0).sqrt()}})),Re="conj",Oe=f(Re,["typed"],(function(e){return(0,e.typed)(Re,{number:function(e){return e},BigNumber:function(e){return e},Complex:function(e){return e.conjugate()},"Array | Matrix":function(e){return ne(e,this)}})})),Be="mode",Me=f(Be,["typed","isNaN","isNumeric"],(function(e){var t=e.typed,n=e.isNaN,r=e.isNumeric;return t(Be,{"Array | Matrix":a,"...":function(e){return a(e)}});function a(e){if(0===(e=H(e.valueOf())).length)throw new Error("Cannot calculate mode of an empty array");for(var t={},a=[],s=0,i=0;is&&(s=t[o],a=[o])}return a}}));Se("bin",2);var $e=f("SparseMatrix",["typed","equalScalar","Matrix"],(function(e){var t=e.typed,n=e.equalScalar,r=e.Matrix;function a(e,t){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");if(t&&!(0,i.HD)(t))throw new Error("Invalid datatype: "+t);if((0,i.SW)(e))!function(e,t,n){"SparseMatrix"===t.type?(e._values=t._values?l(t._values):void 0,e._index=l(t._index),e._ptr=l(t._ptr),e._size=l(t._size),e._datatype=n||t._datatype):s(e,t.valueOf(),n||t._datatype)}(this,e,t);else if(e&&(0,i.kJ)(e.index)&&(0,i.kJ)(e.ptr)&&(0,i.kJ)(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=t||e.datatype;else if((0,i.kJ)(e))s(this,e,t);else{if(e)throw new TypeError("Unsupported type of data ("+(0,i.kM)(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=t}}function s(e,r,a){e._values=[],e._index=[],e._ptr=[],e._datatype=a;var s=r.length,o=0,l=n,u=0;if((0,i.HD)(a)&&(l=t.find(n,[a,a])||n,u=t.convert(0,a)),s>0){var c=0;do{e._ptr.push(e._index.length);for(var h=0;h");for(var h=t.min()[0],f=t.min()[1],d=a[0],p=a[1],m=0;mm){for(h=m;hp){if(d){var g=0;for(h=0;hr-1&&(e._values.splice(f,1),e._index.splice(f,1),b++)}e._ptr[h]=e._values.length}return e._size[0]=r,e._size[1]=a,e}function p(e,t,n,r,a){var s,i,o=r[0],u=r[1],c=[];for(s=0;sl-1||o>u-1)&&(d(this,Math.max(s+1,l),Math.max(o+1,u),a),l=this._size[0],u=this._size[1]),z(s,l),z(o,u);var m=h(s,this._ptr[o],this._ptr[o+1],this._index);return m=0&&_<=s&&g(e._values[w],_-0,y-0)}else{for(var x={},k=b;k "+(this._values?R(this._values[l],e):"X");return a},a.prototype.toString=function(){return R(this.toArray())},a.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},a.prototype.diagonal=function(e){if(e){if((0,i.l9)(e)&&(e=e.toNumber()),!(0,i.hj)(e)||!(0,g.U)(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var t=e>0?e:0,n=e<0?-e:0,r=this._size[0],s=this._size[1],o=Math.min(r-n,s-t),l=[],u=[],c=[];c[0]=0;for(var h=t;h0?s:0,d=s<0?-s:0,p=e[0],m=e[1],y=Math.min(p-d,m-f);if((0,i.kJ)(r)){if(r.length!==y)throw new Error("Invalid value array length");h=function(e){return r[e]}}else if((0,i.SW)(r)){var b=r.size();if(1!==b.length||b[0]!==y)throw new Error("Invalid matrix length");h=function(e){return r.get([e])}}else h=function(){return r};for(var v=[],w=[],_=[],x=0;x=0&&k=l||a[c]!==t)){var d=r?r[u]:void 0;a.splice(c,0,t),r&&r.splice(c,0,d),a.splice(c<=u?u+1:u,1),r&&r.splice(c<=u?u+1:u,1)}else if(c=l||a[u]!==e)){var p=r?r[c]:void 0;a.splice(u,0,e),r&&r.splice(u,0,p),a.splice(u<=c?c+1:c,1),r&&r.splice(u<=c?c+1:c,1)}}},a}),{isClass:!0}),Pe="matrix",Le=f(Pe,["typed","Matrix","DenseMatrix","SparseMatrix"],(function(e){var t=e.typed,n=(e.Matrix,e.DenseMatrix),r=e.SparseMatrix;return t(Pe,{"":function(){return a([])},string:function(e){return a([],e)},"string, string":function(e,t){return a([],e,t)},Array:function(e){return a(e)},Matrix:function(e){return a(e,e.storage())},"Array | Matrix, string":a,"Array | Matrix, string, string":a});function a(e,t,a){if("dense"===t||"default"===t||void 0===t)return new n(e,a);if("sparse"===t)return new r(e,a);throw new TypeError("Unknown matrix type "+JSON.stringify(t)+".")}})),ze=f("algorithm01",["typed"],(function(e){var t=e.typed;return function(e,n,r,a){var s=e._data,i=e._size,o=e._datatype,l=n._values,u=n._index,c=n._ptr,h=n._size,f=n._datatype;if(i.length!==h.length)throw new B(i.length,h.length);if(i[0]!==h[0]||i[1]!==h[1])throw new RangeError("Dimension mismatch. Matrix A ("+i+") must match Matrix B ("+h+")");if(!l)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var d,p,m=i[0],g=i[1],y="string"==typeof o&&o===f?o:void 0,b=y?t.find(r,[y,y]):r,v=[];for(d=0;d0?n(p,0,f,f[0],i,u):[];return e.createDenseMatrix({data:m,size:f,datatype:s})};function n(e,t,r,a,s,i){var o=[];if(t===r.length-1)for(var l=0;l0?n(h,0,u,u[0],o,r,s):[];return e.createDenseMatrix({data:f,size:l(u),datatype:i})};function n(e,t,r,a,s,i,o){var l=[];if(t===r.length-1)for(var u=0;ut?1:-1},"number, number":function(e,t){return(0,g.RI)(e,t,n.epsilon)?0:e>t?1:-1},"BigNumber, BigNumber":function(e,t){return ce(e,t,n.epsilon)?new s(0):new s(e.cmp(t))},"Fraction, Fraction":function(e,t){return new i(e.compare(t))},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return l(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return h(e,t,this)},"Array, Array":function(e,t){return this(a(e),a(t)).valueOf()},"Array, Matrix":function(e,t){return this(a(e),t)},"Matrix, Array":function(e,t){return this(e,a(t))},"SparseMatrix, any":function(e,t){return c(e,t,this,!1)},"DenseMatrix, any":function(e,t){return f(e,t,this,!1)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(a(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(a(t),e,this,!0).valueOf()}})})),at="smaller",st=f(at,["typed","config","matrix","DenseMatrix"],(function(e){var t=e.typed,n=e.config,r=e.matrix,a=e.DenseMatrix,s=He({typed:t}),i=qe({typed:t,DenseMatrix:a}),o=Ke({typed:t,DenseMatrix:a}),l=Ve({typed:t}),u=je({typed:t});return t(at,{"boolean, boolean":function(e,t){return et},"number, number":function(e,t){return e>t&&!(0,g.RI)(e,t,n.epsilon)},"BigNumber, BigNumber":function(e,t){return e.gt(t)&&!ce(e,t,n.epsilon)},"Fraction, Fraction":function(e,t){return 1===e.compare(t)},"Complex, Complex":function(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function(e,t){if(!e.equalBase(t))throw new Error("Cannot compare units with different base");return this(e.value,t.value)},"SparseMatrix, SparseMatrix":function(e,t){return i(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return s(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return s(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return l(e,t,this)},"Array, Array":function(e,t){return this(r(e),r(t)).valueOf()},"Array, Matrix":function(e,t){return this(r(e),t)},"Matrix, Array":function(e,t){return this(e,r(t))},"SparseMatrix, any":function(e,t){return o(e,t,this,!1)},"DenseMatrix, any":function(e,t){return u(e,t,this,!1)},"any, SparseMatrix":function(e,t){return o(t,e,this,!0)},"any, DenseMatrix":function(e,t){return u(t,e,this,!0)},"Array, any":function(e,t){return u(r(e),t,this,!1).valueOf()},"any, Array":function(e,t){return u(r(t),e,this,!0).valueOf()}})})),lt="unequal",ut=(f(lt,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(lt,{"any, any":function(e,t){return null===e?null!==t:null===t?null!==e:void 0===e?void 0!==t:void 0===t?void 0!==e:!n(e,t)}})})),f("FibonacciHeap",["smaller","larger"],(function(e){var t=e.smaller,n=e.larger,r=1/Math.log((1+Math.sqrt(5))/2);function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function s(e,t,n){t.left.right=t.right,t.right.left=t.left,n.degree--,n.child===t&&(n.child=t.right),0===n.degree&&(n.child=null),t.left=e,t.right=e.right,e.right=t,t.right.left=t,t.parent=null,t.mark=!1}function i(e,t){var n=t.parent;n&&(t.mark?(s(e,t,n),i(n)):t.mark=!0)}a.prototype.type="FibonacciHeap",a.prototype.isFibonacciHeap=!0,a.prototype.insert=function(e,n){var r={key:e,value:n,degree:0};if(this._minimum){var a=this._minimum;r.left=a,r.right=a.right,a.right=r,r.right.left=r,t(e,a.key)&&(this._minimum=r)}else r.left=r,r.right=r,this._minimum=r;return this._size++,r},a.prototype.size=function(){return this._size},a.prototype.clear=function(){this._minimum=null,this._size=0},a.prototype.isEmpty=function(){return 0===this._size},a.prototype.extractMinimum=function(){var e=this._minimum;if(null===e)return e;for(var a=this._minimum,s=e.degree,i=e.child;s>0;){var l=i.right;i.left.right=i.right,i.right.left=i.left,i.left=a,i.right=a.right,a.right=i,i.right.left=i,i.parent=null,i=l,s--}return e.left.right=e.right,e.right.left=e.left,a=e===e.right?null:function(e,a){var s,i=Math.floor(Math.log(a)*r)+1,l=new Array(i),u=0,c=e;if(c)for(u++,c=c.right;c!==e;)u++,c=c.right;for(;u>0;){for(var h=c.degree,f=c.right;s=l[h];){if(n(c.key,s.key)){var d=s;s=c,c=d}o(s,c),l[h]=null,h++}l[h]=c,c=f,u--}e=null;for(var p=0;pm?d++:p===m&&(u=c(u,h(s[f],l[d])),f++,d++)}return u}});function o(e,t){var n,r,a=l(e),s=l(t);if(1===a.length)n=a[0];else{if(2!==a.length||1!==a[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+a.join(", ")+")");n=a[0]}if(1===s.length)r=s[0];else{if(2!==s.length||1!==s[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+s.join(", ")+")");r=s[0]}if(n!==r)throw new RangeError("Vectors must have equal length ("+n+" != "+r+")");if(0===n)throw new RangeError("Cannot calculate the dot product of empty vectors");return n}function l(e){return(0,i.SW)(e)?e.size():s(e)}})),ft=f("abs",["typed"],(function(e){return(0,e.typed)("abs",{number:ge,Complex:function(e){return e.abs()},BigNumber:function(e){return e.abs()},Fraction:function(e){return e.abs()},"Array | Matrix":function(e){return ne(e,this,!0)},Unit:function(e){return e.abs()}})})),dt="multiply",pt=f(dt,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],(function(e){var t=e.typed,n=e.matrix,r=e.addScalar,a=e.multiplyScalar,s=e.equalScalar,o=e.dot,l=Xe({typed:t,equalScalar:s}),c=je({typed:t});function h(e,t){switch(e.length){case 1:switch(t.length){case 1:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(e[0]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+e[0]+") must match Matrix rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;case 2:switch(t.length){case 1:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+e[1]+") must match Vector length ("+t[0]+")");break;case 2:if(e[1]!==t[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+e[1]+") must match Matrix B rows ("+t[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+t.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+e.length+" dimensions)")}}var f=t("_multiplyMatrixVector",{"DenseMatrix, any":function(e,n){var s,i=e._data,o=e._size,l=e._datatype,u=n._data,c=n._datatype,h=o[0],f=o[1],d=r,p=a;l&&c&&l===c&&"string"==typeof l&&(s=l,d=t.find(r,[s,s]),p=t.find(a,[s,s]));for(var m=[],g=0;gS)for(var I=0,A=0;A1)throw new Error("Only one dimensional matrices supported");return u(e.valueOf(),t,n)}if(Array.isArray(e))return u(e,t,n)}function u(e,t,a){if(t>=e.length)throw new Error("k out of bounds");for(var s=0;s=0){var h=e[u];e[u]=e[l],e[l]=h,--u}else++l;a(e[l],c)>0&&--l,t<=l?o=l:i=l+1}return e[t]}})),bt=f("bignumber",["typed","BigNumber"],(function(e){var t=e.typed,n=e.BigNumber;return t("bignumber",{"":function(){return new n(0)},number:function(e){return new n(e+"")},string:function(e){return new n(e)},BigNumber:function(e){return e},Fraction:function(e){return new n(e.n).div(e.d).times(e.s)},null:function(e){return new n(0)},"Array | Matrix":function(e){return ne(e,this)}})})),vt=f("numeric",["number","?bignumber","?fraction"],(function(e){var t=e.number,n=e.bignumber,r=e.fraction,a={string:!0,number:!0,BigNumber:!0,Fraction:!0},s={number:function(e){return t(e)},BigNumber:n?function(e){return n(e)}:Ze,Fraction:r?function(e){return r(e)}:Qe};return function(e,t){var n=(0,i.kM)(e);if(!(n in a))throw new TypeError("Cannot convert "+e+' of type "'+n+'"; valid input types are '+Object.keys(a).join(", "));if(!(t in s))throw new TypeError("Cannot convert "+e+' to type "'+t+'"; valid output types are '+Object.keys(s).join(", "));return t===n?e:s[t](e)}}));function wt(e,t,n){var r;return-1!==String(e).indexOf("Unexpected type")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":" (type: "+e.data.actual+")",new TypeError("Cannot calculate "+t+", unexpected type of argument"+r)):-1!==String(e).indexOf("complex numbers")?(r=arguments.length>2?" (type: "+(0,i.kM)(n)+", value: "+JSON.stringify(n)+")":"",new TypeError("Cannot calculate "+t+", no ordering relation is defined for complex numbers"+r)):e}var _t="subtract",xt=f(_t,["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],(function(e){var t=e.typed,n=e.matrix,r=e.equalScalar,a=e.addScalar,s=e.unaryMinus,i=e.DenseMatrix,o=ze({typed:t}),l=He({typed:t}),u=Ge({typed:t,equalScalar:r}),c=Ue({typed:t,DenseMatrix:i}),h=Ve({typed:t}),f=je({typed:t});return t(_t,{"number, number":function(e,t){return e-t},"Complex, Complex":function(e,t){return e.sub(t)},"BigNumber, BigNumber":function(e,t){return e.minus(t)},"Fraction, Fraction":function(e,t){return e.sub(t)},"Unit, Unit":function(e,t){if(null===e.value)throw new Error("Parameter x contains a unit with undefined value");if(null===t.value)throw new Error("Parameter y contains a unit with undefined value");if(!e.equalBase(t))throw new Error("Units do not match");var n=e.clone();return n.value=this(n.value,t.value),n.fixPrefix=!1,n},"SparseMatrix, SparseMatrix":function(e,t){return kt(e,t),u(e,t,this)},"SparseMatrix, DenseMatrix":function(e,t){return kt(e,t),l(t,e,this,!0)},"DenseMatrix, SparseMatrix":function(e,t){return kt(e,t),o(e,t,this,!1)},"DenseMatrix, DenseMatrix":function(e,t){return kt(e,t),h(e,t,this)},"Array, Array":function(e,t){return this(n(e),n(t)).valueOf()},"Array, Matrix":function(e,t){return this(n(e),t)},"Matrix, Array":function(e,t){return this(e,n(t))},"SparseMatrix, any":function(e,t){return c(e,s(t),a)},"DenseMatrix, any":function(e,t){return f(e,t,this)},"any, SparseMatrix":function(e,t){return c(t,e,this,!0)},"any, DenseMatrix":function(e,t){return f(t,e,this,!0)},"Array, any":function(e,t){return f(n(e),t,this,!1).valueOf()},"any, Array":function(e,t){return f(n(t),e,this,!0).valueOf()}})}));function kt(e,t){var n=e.size(),r=t.size();if(n.length!==r.length)throw new B(n.length,r.length)}var Et="equal",Ct=(f(Et,["typed","equalScalar"],(function(e){var t=e.typed,n=e.equalScalar;return t(Et,{"any, any":function(e,t){return null===e?null===t:null===t?null===e:void 0===e?void 0===t:void 0===t?void 0===e:n(e,t)}})})),"divideScalar"),St=f(Ct,["typed","numeric"],(function(e){var t=e.typed,n=e.numeric;return t(Ct,{"number, number":function(e,t){return e/t},"Complex, Complex":function(e,t){return e.div(t)},"BigNumber, BigNumber":function(e,t){return e.div(t)},"Fraction, Fraction":function(e,t){return e.div(t)},"Unit, number | Fraction | BigNumber":function(e,t){var r=e.clone(),a=n(1,(0,i.kM)(t));return r.value=this(null===r.value?r._normalize(a):r.value,t),r},"number | Fraction | BigNumber, Unit":function(e,t){var r=t.clone();r=r.pow(-1);var a=n(1,(0,i.kM)(e));return r.value=this(e,null===t.value?t._normalize(a):t.value),r},"Unit, Unit":function(e,t){return e.divide(t)}})})),Nt=f("Spa",["addScalar","equalScalar","FibonacciHeap"],(function(e){var t=e.addScalar,n=e.equalScalar,r=e.FibonacciHeap;function a(){if(!(this instanceof a))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new r}return a.prototype.type="Spa",a.prototype.isSpa=!0,a.prototype.set=function(e,t){if(this._values[e])this._values[e].value=t;else{var n=this._heap.insert(e,t);this._values[e]=n}},a.prototype.get=function(e){var t=this._values[e];return t?t.value:0},a.prototype.accumulate=function(e,n){var r=this._values[e];r?r.value=t(r.value,n):(r=this._heap.insert(e,n),this._values[e]=r)},a.prototype.forEach=function(e,t,r){var a=this._heap,s=this._values,i=[],o=a.extractMinimum();for(o&&i.push(o);o&&o.key<=t;)o.key>=e&&(n(o.value,0)||r(o.key,o.value,this)),(o=a.extractMinimum())&&i.push(o);for(var l=0;l0&&e.forEach(0,n-1,(function(t,n){d._forEachRow(t,b,v,w,(function(r,a){r>t&&e.accumulate(r,h(i(a,n)))}))}));var I,A,D,T,F=n,R=e.get(n),O=r(R);e.forEach(n+1,o-1,(function(e,t){var n=r(t);u(n,O)&&(F=e,O=n,R=t)})),n!==F&&(d._swapRows(n,F,_[1],b,v,w),d._swapRows(n,F,C[1],x,k,E),e.swap(n,F),A=F,D=N[I=n],T=N[A],S[D]=A,S[T]=I,N[I]=T,N[A]=D),e.forEach(0,o-1,(function(e,t){e<=n?(x.push(t),k.push(e)):(t=s(t,R),c(t,0)||(b.push(t),v.push(e)))}))};for(n=0;n0)for(t=0;t=t)break;for(var p=f,m=0;!d[i.p[p]];)d[i.p[p]]=!0,p=i.p[p],m++;m%2==0&&h++}return h%2==0?u:s(u)}(e.clone().valueOf(),u);throw new RangeError("Matrix must be square (size: "+R(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+R(t)+")")}}})})),Dt=f("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],(function(e){var t=e.typed,n=e.matrix,r=e.divideScalar,a=e.addScalar,s=e.multiply,o=e.unaryMinus,l=e.det,u=e.identity,c=e.abs;return t("inv",{"Array | Matrix":function(e){var t=(0,i.SW)(e)?e.size():$(e);switch(t.length){case 1:if(1===t[0])return(0,i.SW)(e)?n([r(1,e.valueOf()[0])]):[r(1,e[0])];throw new RangeError("Matrix must be square (size: "+R(t)+")");case 2:var a=t[0],s=t[1];if(a===s)return(0,i.SW)(e)?n(h(e.valueOf(),a,s),e.storage()):h(e,a,s);throw new RangeError("Matrix must be square (size: "+R(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+R(t)+")")}},any:function(e){return r(1,e)}});function h(e,t,n){var i,h,f,d,p;if(1===t){if(0===(d=e[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[r(1,d)]]}if(2===t){var m=l(e);if(0===m)throw Error("Cannot calculate inverse, determinant is zero");return[[r(e[1][1],m),r(o(e[0][1]),m)],[r(o(e[1][0]),m),r(e[0][0],m)]]}var g=e.concat();for(i=0;iv&&(v=c(g[i][b]),w=i),i++;if(0===v)throw Error("Cannot calculate inverse, determinant is zero");(i=w)!==b&&(p=g[b],g[b]=g[i],g[i]=p,p=y[b],y[b]=y[i],y[i]=p);var _=g[b],x=y[b];for(i=0;i0&&(i=e[o]);return u(i,r)}var c=s(e,(t-1)/2);return l(c)}catch(e){throw wt(e,"median")}}var l=t({"number | BigNumber | Complex | Unit":function(e){return e}}),u=t({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function(e,t){return r(n(e,t),2)}});return t(Mt,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":function(e,t){throw new Error("median(A, dim) is not yet supported")},"...":function(e){if(function(e){for(var t=0;t{"use strict";n.d(t,{gammaG:()=>a.Yc,gammaNumber:()=>a.wZ,gammaP:()=>a.lG,acoshNumber:()=>s.cw,acotNumber:()=>s.y,acothNumber:()=>s.LJ,acscNumber:()=>s.VL,acschNumber:()=>s.F4,asecNumber:()=>s.zq,asechNumber:()=>s.Pe,asinhNumber:()=>s.Rm,atanhNumber:()=>s.Sz,cotNumber:()=>s.Nw,cothNumber:()=>s.ws,cscNumber:()=>s.c$,cschNumber:()=>s.zr,secNumber:()=>s.wX,sechNumber:()=>s.pL,sinhNumber:()=>s.T$,isNaNNumber:()=>i.kU,isNegativeNumber:()=>i.Tk,isPositiveNumber:()=>i.r,isZeroNumber:()=>i.hG});var r=n(6802);n.o(r,"acoshNumber")&&n.d(t,{acoshNumber:function(){return r.acoshNumber}}),n.o(r,"acotNumber")&&n.d(t,{acotNumber:function(){return r.acotNumber}}),n.o(r,"acothNumber")&&n.d(t,{acothNumber:function(){return r.acothNumber}}),n.o(r,"acscNumber")&&n.d(t,{acscNumber:function(){return r.acscNumber}}),n.o(r,"acschNumber")&&n.d(t,{acschNumber:function(){return r.acschNumber}}),n.o(r,"asecNumber")&&n.d(t,{asecNumber:function(){return r.asecNumber}}),n.o(r,"asechNumber")&&n.d(t,{asechNumber:function(){return r.asechNumber}}),n.o(r,"asinhNumber")&&n.d(t,{asinhNumber:function(){return r.asinhNumber}}),n.o(r,"atanhNumber")&&n.d(t,{atanhNumber:function(){return r.atanhNumber}}),n.o(r,"cotNumber")&&n.d(t,{cotNumber:function(){return r.cotNumber}}),n.o(r,"cothNumber")&&n.d(t,{cothNumber:function(){return r.cothNumber}}),n.o(r,"cscNumber")&&n.d(t,{cscNumber:function(){return r.cscNumber}}),n.o(r,"cschNumber")&&n.d(t,{cschNumber:function(){return r.cschNumber}}),n.o(r,"gammaG")&&n.d(t,{gammaG:function(){return r.gammaG}}),n.o(r,"gammaNumber")&&n.d(t,{gammaNumber:function(){return r.gammaNumber}}),n.o(r,"gammaP")&&n.d(t,{gammaP:function(){return r.gammaP}}),n.o(r,"isNaNNumber")&&n.d(t,{isNaNNumber:function(){return r.isNaNNumber}}),n.o(r,"isNegativeNumber")&&n.d(t,{isNegativeNumber:function(){return r.isNegativeNumber}}),n.o(r,"isPositiveNumber")&&n.d(t,{isPositiveNumber:function(){return r.isPositiveNumber}}),n.o(r,"isZeroNumber")&&n.d(t,{isZeroNumber:function(){return r.isZeroNumber}}),n.o(r,"secNumber")&&n.d(t,{secNumber:function(){return r.secNumber}}),n.o(r,"sechNumber")&&n.d(t,{sechNumber:function(){return r.sechNumber}}),n.o(r,"sinhNumber")&&n.d(t,{sinhNumber:function(){return r.sinhNumber}});var a=n(9065),s=n(333),i=n(6493)},9065:(e,t,n)=>{"use strict";n.d(t,{wZ:()=>s,Yc:()=>i,lG:()=>o});var r=n(4008),a=n(2424);function s(e){var t;if((0,r.U)(e))return e<=0?isFinite(e)?1/0:NaN:e>171?1/0:(0,a.O)(1,e-1);if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*s(1-e));if(e>=171.35)return 1/0;if(e>85){var n=e*e,l=n*e,u=l*e,c=u*e;return Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*n)-139/(51840*l)-571/(2488320*u)+163879/(209018880*c)+5246819/(75246796800*c*e))}--e,t=o[0];for(var h=1;h{},333:(e,t,n)=>{"use strict";n.d(t,{cw:()=>s,y:()=>i,LJ:()=>o,VL:()=>l,F4:()=>u,zq:()=>c,Pe:()=>h,Rm:()=>f,Sz:()=>d,Nw:()=>p,ws:()=>m,c$:()=>g,zr:()=>y,wX:()=>b,pL:()=>v,T$:()=>w});var r=n(4008),a="number";function s(e){return(0,r.__)(e)}function i(e){return Math.atan(1/e)}function o(e){return isFinite(e)?(Math.log((e+1)/e)+Math.log(e/(e-1)))/2:0}function l(e){return Math.asin(1/e)}function u(e){var t=1/e;return Math.log(t+Math.sqrt(t*t+1))}function c(e){return Math.acos(1/e)}function h(e){var t=1/e,n=Math.sqrt(t*t-1);return Math.log(n+t)}function f(e){return(0,r.Vf)(e)}function d(e){return(0,r.C8)(e)}function p(e){return 1/Math.tan(e)}function m(e){var t=Math.exp(2*e);return(t+1)/(t-1)}function g(e){return 1/Math.sin(e)}function y(e){return 0===e?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(e)-Math.exp(-e)))*(0,r.Xx)(e)}function b(e){return 1/Math.cos(e)}function v(e){return 2/(Math.exp(e)+Math.exp(-e))}function w(e){return(0,r.R_)(e)}s.signature=a,i.signature=a,o.signature=a,l.signature=a,u.signature=a,c.signature=a,h.signature=a,f.signature=a,d.signature=a,p.signature=a,m.signature=a,g.signature=a,y.signature=a,b.signature=a,v.signature=a,w.signature=a},6493:(e,t,n)=>{"use strict";n.d(t,{Tk:()=>a,r:()=>s,hG:()=>i,kU:()=>o}),n(4008);var r="number";function a(e){return e<0}function s(e){return e>0}function i(e){return 0===e}function o(e){return Number.isNaN(e)}a.signature=r,s.signature=r,i.signature=r,o.signature=r},4080:(e,t,n)=>{"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e){return"number"==typeof e}function s(e){return e&&!0===e.constructor.prototype.isBigNumber||!1}function i(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isComplex||!1}function o(e){return e&&"object"===r(e)&&!0===Object.getPrototypeOf(e).isFraction||!1}function l(e){return e&&!0===e.constructor.prototype.isUnit||!1}function u(e){return"string"==typeof e}n.d(t,{hj:()=>a,l9:()=>s,Mc:()=>i,yQ:()=>o,wr:()=>l,HD:()=>u,kJ:()=>c,SW:()=>h,uZ:()=>f,jH:()=>d,sA:()=>p,bR:()=>m,dh:()=>g,jn:()=>y,cB:()=>b,x1:()=>v,mf:()=>w,J_:()=>_,Kj:()=>x,Kn:()=>k,Ft:()=>E,o8:()=>C,Yz:()=>S,j0:()=>N,Bp:()=>I,zh:()=>A,tS:()=>D,nu:()=>T,l7:()=>F,VO:()=>R,Cl:()=>O,UG:()=>B,Lr:()=>M,bV:()=>$,Ig:()=>P,ex:()=>L,FG:()=>z,qg:()=>W,kM:()=>U});var c=Array.isArray;function h(e){return e&&!0===e.constructor.prototype.isMatrix||!1}function f(e){return Array.isArray(e)||h(e)}function d(e){return e&&e.isDenseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function p(e){return e&&e.isSparseMatrix&&!0===e.constructor.prototype.isMatrix||!1}function m(e){return e&&!0===e.constructor.prototype.isRange||!1}function g(e){return e&&!0===e.constructor.prototype.isIndex||!1}function y(e){return"boolean"==typeof e}function b(e){return e&&!0===e.constructor.prototype.isResultSet||!1}function v(e){return e&&!0===e.constructor.prototype.isHelp||!1}function w(e){return"function"==typeof e}function _(e){return e instanceof Date}function x(e){return e instanceof RegExp}function k(e){return!(!e||"object"!==r(e)||e.constructor!==Object||i(e)||o(e))}function E(e){return null===e}function C(e){return void 0===e}function S(e){return e&&!0===e.isAccessorNode&&!0===e.constructor.prototype.isNode||!1}function N(e){return e&&!0===e.isArrayNode&&!0===e.constructor.prototype.isNode||!1}function I(e){return e&&!0===e.isAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function A(e){return e&&!0===e.isBlockNode&&!0===e.constructor.prototype.isNode||!1}function D(e){return e&&!0===e.isConditionalNode&&!0===e.constructor.prototype.isNode||!1}function T(e){return e&&!0===e.isConstantNode&&!0===e.constructor.prototype.isNode||!1}function F(e){return e&&!0===e.isFunctionAssignmentNode&&!0===e.constructor.prototype.isNode||!1}function R(e){return e&&!0===e.isFunctionNode&&!0===e.constructor.prototype.isNode||!1}function O(e){return e&&!0===e.isIndexNode&&!0===e.constructor.prototype.isNode||!1}function B(e){return e&&!0===e.isNode&&!0===e.constructor.prototype.isNode||!1}function M(e){return e&&!0===e.isObjectNode&&!0===e.constructor.prototype.isNode||!1}function $(e){return e&&!0===e.isOperatorNode&&!0===e.constructor.prototype.isNode||!1}function P(e){return e&&!0===e.isParenthesisNode&&!0===e.constructor.prototype.isNode||!1}function L(e){return e&&!0===e.isRangeNode&&!0===e.constructor.prototype.isNode||!1}function z(e){return e&&!0===e.isSymbolNode&&!0===e.constructor.prototype.isNode||!1}function W(e){return e&&!0===e.constructor.prototype.isChain||!1}function U(e){var t=r(e);return"object"===t?null===e?"null":Array.isArray(e)?"Array":e instanceof Date?"Date":e instanceof RegExp?"RegExp":s(e)?"BigNumber":i(e)?"Complex":o(e)?"Fraction":h(e)?"Matrix":l(e)?"Unit":g(e)?"Index":m(e)?"Range":b(e)?"ResultSet":B(e)?e.type:W(e)?"Chain":v(e)?"Help":"Object":"function"===t?"Function":t}},4008:(e,t,n)=>{"use strict";n.d(t,{U:()=>a,Xx:()=>s,k3:()=>i,mv:()=>o,Kr:()=>l,eK:()=>u,t$:()=>c,WU:()=>h,FH:()=>d,nz:()=>y,RI:()=>v,__:()=>w,Vf:()=>_,C8:()=>x,f9:()=>k,R_:()=>E,AE:()=>C});var r=n(4080);function a(e){return"boolean"==typeof e||!!isFinite(e)&&e===Math.round(e)}var s=Math.sign||function(e){return e>0?1:e<0?-1:0},i=Math.log2||function(e){return Math.log(e)/Math.LN2},o=Math.log10||function(e){return Math.log(e)/Math.LN10},l=Math.log1p||function(e){return Math.log(e+1)},u=Math.cbrt||function(e){if(0===e)return e;var t,n=e<0;return n&&(e=-e),t=isFinite(e)?(e/((t=Math.exp(Math.log(e)/3))*t)+2*t)/3:e,n?-t:t},c=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function h(e,t){if("function"==typeof t)return t(e);if(e===1/0)return"Infinity";if(e===-1/0)return"-Infinity";if(isNaN(e))return"NaN";var n,a="auto";switch(t&&(t.notation&&(a=t.notation),(0,r.hj)(t)?n=t:(0,r.hj)(t.precision)&&(n=t.precision)),a){case"fixed":return d(e,n);case"exponential":return p(e,n);case"engineering":return function(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=m(f(e),t),a=n.exponent,s=n.coefficients,i=a%3==0?a:a<0?a-3-a%3:a-a%3;if((0,r.hj)(t))for(;t>s.length||a-i+1>s.length;)s.push(0);else for(var o=Math.abs(a-i)-(s.length-1),l=0;l0;)c++,u--;var h=s.slice(c).join(""),d=(0,r.hj)(t)&&h.length||h.match(/[1-9]/)?"."+h:"",p=s.slice(0,c).join("")+d+"e"+(a>=0?"+":"")+i.toString();return n.sign+p}(e,n);case"auto":return function(e,t,n){if(isNaN(e)||!isFinite(e))return String(e);var r=n&&void 0!==n.lowerExp?n.lowerExp:-3,a=n&&void 0!==n.upperExp?n.upperExp:5,s=f(e),i=t?m(s,t):s;if(i.exponent=a)return p(e,t);var o=i.coefficients,l=i.exponent;o.length0?l:0;return u<(o=g(-l).concat(o)).length-1&&o.splice(u+1,0,"."),i.sign+o.join("")}(e,n,t&&t).replace(/((\.\d*?)(0+))($|e)/,(function(){var e=arguments[2],t=arguments[4];return"."!==e?e+t:t}));default:throw new Error('Unknown notation "'+a+'". Choose "auto", "exponential", or "fixed".')}}function f(e){var t=String(e).toLowerCase().match(/^0*?(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!t)throw new SyntaxError("Invalid number "+e);var n=t[1],r=t[2],a=parseFloat(t[4]||"0"),s=r.indexOf(".");a+=-1!==s?s-1:r.length-1;var i=r.replace(".","").replace(/^0*/,(function(e){return a-=e.length,""})).replace(/0*$/,"").split("").map((function(e){return parseInt(e)}));return 0===i.length&&(i.push(0),a++),{sign:n,coefficients:i,exponent:a}}function d(e,t){if(isNaN(e)||!isFinite(e))return String(e);var n=f(e),r="number"==typeof t?m(n,n.exponent+1+t):n,a=r.coefficients,s=r.exponent+1,i=s+(t||0);return a.length0?"."+a.join(""):"")+"e"+(s>=0?"+":"")+s}function m(e,t){for(var n={sign:e.sign,coefficients:e.coefficients,exponent:e.exponent},r=n.coefficients;t<=0;)r.unshift(0),n.exponent++,t++;if(r.length>t&&r.splice(t,r.length-t)[0]>=5){var a=t-1;for(r[a]++;10===r[a];)r.pop(),0===a&&(r.unshift(0),n.exponent++,a++),r[--a]++}return n}function g(e){for(var t=[],n=0;n{"use strict";function r(e,t){if(t>1;return r(e,n)*r(n+1,t)}n.d(t,{O:()=>r})},5666:e=>{var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},s=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",o=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof g?t:g,s=Object.create(a.prototype),i=new I(r||[]);return s._invoke=function(e,t,n){var r=h;return function(a,s){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===a)throw s;return D()}for(n.method=a,n.arg=s;;){var i=n.delegate;if(i){var o=C(i,n);if(o){if(o===m)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=c(e,t,n);if("normal"===l.type){if(r=n.done?p:f,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(e,n,i),s}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",m={};function g(){}function y(){}function b(){}var v={};v[s]=function(){return this};var w=Object.getPrototypeOf,_=w&&w(w(A([])));_&&_!==n&&r.call(_,s)&&(v=_);var x=b.prototype=g.prototype=Object.create(v);function k(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(a,s,i,o){var l=c(e[a],e,s);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==typeof h&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){n("next",e,i,o)}),(function(e){n("throw",e,i,o)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,o)}))}o(l.arg)}var a;this._invoke=function(e,r){function s(){return new t((function(t,a){n(e,r,t,a)}))}return a=a?a.then(s,s):s()}}function C(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,C(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var a=c(r,e.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var s=a.arg;return s?s.done?(n[e.resultName]=s.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):s:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function N(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function A(e){if(e){var n=e[s];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,i=function n(){for(;++a=0;--s){var i=this.tryEntries[s],o=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;N(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}},7905:(e,t,n)=>{"use strict";var r=256,a=[],s=void 0===n.g?window:n.g,i=Math.pow(r,6),o=Math.pow(2,52),l=2*o,u=255,c=Math.random;function h(e){var t,n=e.length,a=this,s=0,i=a.i=a.j=0,o=a.S=[];for(n||(e=[n++]);s=l;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=c},d(Math.random(),a)},6377:(e,t,n)=>{var r=n(4832),a=n(8652),s=n(801),i=n(2030),o=n(3618),l=n(9049),u=n(1971);u.alea=r,u.xor128=a,u.xorwow=s,u.xorshift7=i,u.xor4096=o,u.tychei=l,e.exports=u},4832:function(e,t,n){var r;!function(e,a,s){function i(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(" "),n.s1=r(" "),n.s2=r(" "),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e=n.nmd(e),n.amdD)},9049:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.tychei=l}(0,e=n.nmd(e),n.amdD)},8652:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor128=l}(0,e=n.nmd(e),n.amdD)},3618:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,s=t.i;return t.w=r=r+1640531527|0,n=a[s+34&127],e=a[s=s+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[s]=n^e,t.i=s,n+(r^r>>>16)|0},function(e,t){var n,r,a,s,i,o=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,s=-32;s>>15,r^=r<<4,r^=r>>>13,s>=0&&(i=i+1640531527|0,a=0==(n=o[127&s]^=r+i)?a+1:0);for(a>=128&&(o[127&(t&&t.length||0)]=-1),a=127,s=512;s>0;--s)r=o[a+34&127],n=o[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,o[a]=r^n;e.w=i,e.X=o,e.i=a}(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xor4096=l}(0,e=n.nmd(e),n.amdD)},2030:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function l(e,t){null==e&&(e=+new Date);var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorshift7=l}(0,e=n.nmd(e),n.amdD)},801:function(e,t,n){var r;!function(e,a,s){function i(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function l(e,t){var n=new i(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&o(r,n),a.state=function(){return o(n,{})}),a}a&&a.exports?a.exports=l:n.amdD&&n.amdO?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.xorwow=l}(0,e=n.nmd(e),n.amdD)},1971:(e,t,n)=>{var r;!function(a,s){var i,o=this,l=256,u=s.pow(l,6),c=s.pow(2,52),h=2*c,f=255;function d(e,t,n){var r=[],f=y(g((t=1==t?{entropy:!0}:t||{}).entropy?[e,b(a)]:null==e?function(){try{var e;return i&&(e=i.randomBytes)?e=e(l):(e=new Uint8Array(l),(o.crypto||o.msCrypto).getRandomValues(e)),b(e)}catch(e){var t=o.navigator,n=t&&t.plugins;return[+new Date,o,n,o.screen,b(a)]}}():e,3),r),d=new p(r),v=function(){for(var e=d.g(6),t=u,n=0;e=h;)e/=2,t/=2,n>>>=1;return(e+n)/t};return v.int32=function(){return 0|d.g(4)},v.quick=function(){return d.g(4)/4294967296},v.double=v,y(b(d.S),a),(t.pass||n||function(e,t,n,r){return r&&(r.S&&m(r,d),e.state=function(){return m(d,{})}),n?(s.random=e,t):e})(v,f,"global"in t?t.global:this==s,t.state)}function p(e){var t,n=e.length,r=this,a=0,s=r.i=r.j=0,i=r.S=[];for(n||(e=[n++]);a{"use strict";const r=n(1903),a=n(4658),s=n(5413),i=["","›"],o=e=>`${i[0]}[${e}m`;e.exports=(e,t,n)=>{const l=[...e.normalize()];n="number"==typeof n?n:l.length;let u=!1,c=null,h=0,f="";for(const[d,p]of l.entries()){let l=!1;if(i.includes(p)){u=!0;const t=/\d[^m]*/.exec(e.slice(d,d+18));c=39===t?null:t}else u&&"m"===p&&(u=!1,l=!0);if(u||l||++h,!a({exact:!0}).test(p)&&r(p.codePointAt())&&++h,h>t&&h<=n)f+=p;else if(h!==t||u||null===c||39===c){if(h>=n){null!==c&&(f+=o(s.codes.get(parseInt(c,10))||39));break}}else f+=o(c)}return f}},5413:(e,t,n)=>{"use strict";e=n.nmd(e);const r=n(6465),a=(e,t)=>function(){const n=e.apply(r,arguments);return`[${n+t}m`},s=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};5;${n}m`},i=(e,t)=>function(){const n=e.apply(r,arguments);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(const n of Object.keys(t)){const r=t[n];for(const n of Object.keys(r)){const a=r[n];t[n]={open:`[${a[0]}m`,close:`[${a[1]}m`},r[n]=t[n],e.set(a[0],a[1])}Object.defineProperty(t,n,{value:r,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}const n=e=>e,o=(e,t,n)=>[e,t,n];t.color.close="",t.bgColor.close="",t.color.ansi={ansi:a(n,0)},t.color.ansi256={ansi256:s(n,0)},t.color.ansi16m={rgb:i(o,0)},t.bgColor.ansi={ansi:a(n,10)},t.bgColor.ansi256={ansi256:s(n,10)},t.bgColor.ansi16m={rgb:i(o,10)};for(let e of Object.keys(r)){if("object"!=typeof r[e])continue;const n=r[e];"ansi16"===e&&(e="ansi"),"ansi16"in n&&(t.color.ansi[e]=a(n.ansi16,0),t.bgColor.ansi[e]=a(n.ansi16,10)),"ansi256"in n&&(t.color.ansi256[e]=s(n.ansi256,0),t.bgColor.ansi256[e]=s(n.ansi256,10)),"rgb"in n&&(t.color.ansi16m[e]=i(n.rgb,0),t.bgColor.ansi16m[e]=i(n.rgb,10))}return t}})},1025:(e,t,n)=>{var r=n(3645),a={};for(var s in r)r.hasOwnProperty(s)&&(a[r[s]]=s);var i=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in i)if(i.hasOwnProperty(o)){if(!("channels"in i[o]))throw new Error("missing channels property: "+o);if(!("labels"in i[o]))throw new Error("missing channel labels property: "+o);if(i[o].labels.length!==i[o].channels)throw new Error("channel and label counts mismatch: "+o);var l=i[o].channels,u=i[o].labels;delete i[o].channels,delete i[o].labels,Object.defineProperty(i[o],"channels",{value:l}),Object.defineProperty(i[o],"labels",{value:u})}i.rgb.hsl=function(e){var t,n,r=e[0]/255,a=e[1]/255,s=e[2]/255,i=Math.min(r,a,s),o=Math.max(r,a,s),l=o-i;return o===i?t=0:r===o?t=(a-s)/l:a===o?t=2+(s-r)/l:s===o&&(t=4+(r-a)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(i+o)/2,[t,100*(o===i?0:n<=.5?l/(o+i):l/(2-o-i)),100*n]},i.rgb.hsv=function(e){var t,n,r,a,s,i=e[0]/255,o=e[1]/255,l=e[2]/255,u=Math.max(i,o,l),c=u-Math.min(i,o,l),h=function(e){return(u-e)/6/c+.5};return 0===c?a=s=0:(s=c/u,t=h(i),n=h(o),r=h(l),i===u?a=r-n:o===u?a=1/3+t-r:l===u&&(a=2/3+n-t),a<0?a+=1:a>1&&(a-=1)),[360*a,100*s,100*u]},i.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[i.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,r))*100,100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},i.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-a)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-a-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var t=a[e];if(t)return t;var n,s,i,o=1/0;for(var l in r)if(r.hasOwnProperty(l)){var u=(s=e,i=r[l],Math.pow(s[0]-i[0],2)+Math.pow(s[1]-i[1],2)+Math.pow(s[2]-i[2],2));u.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return r/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},i.hsl.rgb=function(e){var t,n,r,a,s,i=e[0]/360,o=e[1]/100,l=e[2]/100;if(0===o)return[s=255*l,s,s];t=2*l-(n=l<.5?l*(1+o):l+o-l*o),a=[0,0,0];for(var u=0;u<3;u++)(r=i+1/3*-(u-1))<0&&r++,r>1&&r--,s=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,a[u]=255*s;return a},i.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,a=n,s=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,a*=s<=1?s:2-s,[t,100*(0===r?2*a/(s+a):2*n/(r+n)),(r+n)/2*100]},i.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,a=Math.floor(t)%6,s=t-Math.floor(t),i=255*r*(1-n),o=255*r*(1-n*s),l=255*r*(1-n*(1-s));switch(r*=255,a){case 0:return[r,l,i];case 1:return[o,r,i];case 2:return[i,r,l];case 3:return[i,o,r];case 4:return[l,i,r];case 5:return[r,i,o]}},i.hsv.hsl=function(e){var t,n,r,a=e[0],s=e[1]/100,i=e[2]/100,o=Math.max(i,.01);return r=(2-s)*i,n=s*o,[a,100*(n=(n/=(t=(2-s)*o)<=1?t:2-t)||0),100*(r/=2)]},i.hwb.rgb=function(e){var t,n,r,a,s,i,o,l=e[0]/360,u=e[1]/100,c=e[2]/100,h=u+c;switch(h>1&&(u/=h,c/=h),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),a=u+r*((n=1-c)-u),t){default:case 6:case 0:s=n,i=a,o=u;break;case 1:s=a,i=n,o=u;break;case 2:s=u,i=n,o=a;break;case 3:s=u,i=a,o=n;break;case 4:s=a,i=u,o=n;break;case 5:s=n,i=u,o=a}return[255*s,255*i,255*o]},i.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,a=e[3]/100;return[255*(1-Math.min(1,t*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,r*(1-a)+a))]},i.xyz.rgb=function(e){var t,n,r,a=e[0]/100,s=e[1]/100,i=e[2]/100;return n=-.9689*a+1.8758*s+.0415*i,r=.0557*a+-.204*s+1.057*i,t=(t=3.2406*a+-1.5372*s+-.4986*i)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},i.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.lab.xyz=function(e){var t,n,r,a=e[0];t=e[1]/500+(n=(a+16)/116),r=n-e[2]/200;var s=Math.pow(n,3),i=Math.pow(t,3),o=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=i>.008856?i:(t-16/116)/7.787,r=o>.008856?o:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},i.lab.lch=function(e){var t,n=e[0],r=e[1],a=e[2];return(t=360*Math.atan2(a,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+a*a),t]},i.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],a=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(a=Math.round(a/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===a&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},i.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,a=e[2]/255,s=Math.max(Math.max(n,r),a),i=Math.min(Math.min(n,r),a),o=s-i;return t=o<=0?0:s===n?(r-a)/o%6:s===r?2+(a-n)/o:4+(n-r)/o+4,t/=6,[360*(t%=1),100*o,100*(o<1?i/(1-o):0)]},i.hsl.hcg=function(e){var t,n=e[1]/100,r=e[2]/100,a=0;return(t=r<.5?2*n*r:2*n*(1-r))<1&&(a=(r-.5*t)/(1-t)),[e[0],100*t,100*a]},i.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var a,s=[0,0,0],i=t%1*6,o=i%1,l=1-o;switch(Math.floor(i)){case 0:s[0]=1,s[1]=o,s[2]=0;break;case 1:s[0]=l,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=o;break;case 3:s[0]=0,s[1]=l,s[2]=1;break;case 4:s[0]=o,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=l}return a=(1-n)*r,[255*(n*s[0]+a),255*(n*s[1]+a),255*(n*s[2]+a)]},i.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},i.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},i.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},i.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,a=0;return r<1&&(a=(n-r)/(1-r)),[e[0],100*r,100*a]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},6465:(e,t,n)=>{var r=n(1025),a=n(3340),s={};Object.keys(r).forEach((function(e){s[e]={},Object.defineProperty(s[e],"channels",{value:r[e].channels}),Object.defineProperty(s[e],"labels",{value:r[e].labels});var t=a(e);Object.keys(t).forEach((function(n){var r=t[n];s[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,a=0;a1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))})),e.exports=s},3340:(e,t,n)=>{var r=n(1025);function a(e,t){return function(n){return t(e(n))}}function s(e,t){for(var n=[t[e].parent,e],s=r[t[e].parent][e],i=t[e].parent;t[i].parent;)n.unshift(t[i].parent),s=a(r[t[i].parent][i],s),i=t[i].parent;return s.conversion=n,s}e.exports=function(e){for(var t=function(e){var t=function(){for(var e={},t=Object.keys(r),n=t.length,a=0;a{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},6484:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(1763)),a=i(n(7037)),s=i(n(3393));function i(e){return e&&e.__esModule?e:{default:e}}const o=["left","right","center"];t.default=(e,t,n)=>{if(!(0,a.default)(e))throw new TypeError("Subject parameter value must be a string.");if(!(0,r.default)(t))throw new TypeError("Container width parameter value must be a number.");const i=(0,s.default)(e);if(i>t)throw new Error("Subject parameter value width cannot be greater than the container width.");if(!(0,a.default)(n))throw new TypeError("Alignment parameter value must be a string.");if(!o.includes(n))throw new Error("Alignment parameter value must be a known alignment parameter value (left, right, center).");if(0===i)return" ".repeat(t);const l=t-i;return"left"===n?((e,t)=>e+" ".repeat(t))(e,l):"right"===n?((e,t)=>" ".repeat(t)+e)(e,l):((e,t)=>{let n;return n=t/2,n%2==0?" ".repeat(n)+e+" ".repeat(n):(n=Math.floor(n)," ".repeat(n)+e+" ".repeat(n+1))})(e,l)}},6411:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(3393)),a=s(n(6484));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const s=t.columns[n];return(0,r.default)(e)===s.width?e:(0,a.default)(e,s.width,s.alignment)}))))},8247:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(7037)),a=s(n(7810));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n=!1)=>{if(!(0,r.default)(e))throw new TypeError("Value must be a string.");if(!Number.isInteger(t))throw new TypeError("Column width must be an integer.");if(t<1)throw new Error("Column width must be greater than 0.");return(0,a.default)(e,t,n).length}},6078:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(3393))&&r.__esModule?r:{default:r};t.default=e=>e.map((e=>Math.max(...e.split("\n").map((e=>(0,a.default)(e))))))},3819:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(6078))&&r.__esModule?r:{default:r};t.default=e=>{if(!e[0])throw new Error("Dataset must have at least one row.");const t=new Array(e[0].length).fill(0);return e.forEach((e=>{(0,a.default)(e).forEach(((e,n)=>{t[n]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(6162)),a=o(n(1584)),s=o(n(1763)),i=o(n(8247));function o(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{const n=e[0].length,o=[];return e.forEach((e=>{const l=new Array(n).fill(1);e.forEach(((e,n)=>{if(!(0,s.default)(t.columns[n].width))throw new TypeError("column[index].width must be a number.");if(!(0,a.default)(t.columns[n].wrapWord))throw new TypeError("column[index].wrapWord must be a boolean.");l[n]=(0,i.default)(e,t.columns[n].width,t.columns[n].wrapWord)})),o.push((0,r.default)(l))})),o}},6955:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=m(n(6604)),a=m(n(2628)),s=m(n(691)),i=m(n(7884)),o=m(n(9045)),l=n(8417),u=m(n(9466)),c=m(n(8381)),h=m(n(1741)),f=m(n(6411)),d=m(n(4220)),p=m(n(5970));function m(e){return e&&e.__esModule?e:{default:e}}const g=(e,t)=>{let n;n=(0,u.default)(e),n=(0,c.default)(e,t);const r=(0,p.default)(n,t);return n=(0,h.default)(n,r,t),n=(0,f.default)(n,t),n=(0,d.default)(n,t),n};t.default=(e={})=>{const t=(0,i.default)(e),n=(0,a.default)((0,r.default)(t.columns,(e=>e.width+e.paddingLeft+e.paddingRight)));let u;return u=!0,{write:e=>{if(e.length!==t.columnCount)throw new Error("Row cell count does not match the config.columnCount.");return u?(u=!1,((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a;a="",a+=(0,l.drawBorderTop)(t,n.border),a+=r,a+=(0,l.drawBorderBottom)(t,n.border),a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)):((e,t,n)=>{const r=g([e],n).map((e=>(0,o.default)(e,n.border))).join("");let a="";const i=(0,l.drawBorderBottom)(t,n.border);"\n"!==i&&(a="\r"),a+=(0,l.drawBorderJoin)(t,n.border),a+=r,a+=i,a=(0,s.default)(a),process.stdout.write(a)})(e,n,t)}}}},8417:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drawBorderTop=t.drawBorderJoin=t.drawBorderBottom=t.drawBorder=void 0;const n=(e,t)=>{const n=e.map((e=>t.body.repeat(e))).join(t.join);return t.left+n+t.right+"\n"};t.drawBorder=n,t.drawBorderTop=(e,t)=>{const r=n(e,{body:t.topBody,join:t.topJoin,left:t.topLeft,right:t.topRight});return"\n"===r?"":r},t.drawBorderJoin=(e,t)=>n(e,{body:t.joinBody,join:t.joinJoin,left:t.joinLeft,right:t.joinRight}),t.drawBorderBottom=(e,t)=>n(e,{body:t.bottomBody,join:t.bottomJoin,left:t.bottomLeft,right:t.bottomRight})},9045:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>t.bodyLeft+e.join(t.bodyJoin)+t.bodyRight+"\n"},9658:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=n(8417),s=(r=n(9045))&&r.__esModule?r:{default:r};t.default=(e,t,n,r,i,o)=>{let l,u,c;const h=e.length;return u=0,l="",i(u,h)&&(l+=(0,a.drawBorderTop)(n,t)),e.forEach(((e,f)=>{l+=(0,s.default)(e,t),c||(c=r[u],u++),c--,!o&&0===c&&f!==h-1&&i(u,h)&&(l+=(0,a.drawBorderJoin)(n,t))})),i(u,h)&&(l+=(0,a.drawBorderBottom)(n,t)),l}},9487:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if("honeywell"===e)return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼"};if("norc"===e)return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼"};if("ramac"===e)return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|"};if("void"===e)return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:""};throw new Error('Unknown border template "'+e+'".')}},107:(e,t,n)=>{"use strict";Object.defineProperty(t,"Kz",{enumerable:!0,get:function(){return r.default}});var r=a(n(3848));a(n(6955)),a(n(9487));function a(e){return e&&e.__esModule?e:{default:e}}},6482:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(361)),a=u(n(2353)),s=u(n(8913)),i=u(n(9487)),o=u(n(11)),l=u(n(3819));function u(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{(0,o.default)("config.json",t);const n=(0,r.default)(t);return n.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(n.border),n.columns=((e,t={},n={})=>{const r=(0,l.default)(e);return(0,s.default)(e[0].length,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,width:r[e],wrapWord:!1},n,t[e])})),t})(e,n.columns,n.columnDefault),n.drawHorizontalLine||(n.drawHorizontalLine=()=>!0),void 0===n.singleLine&&(n.singleLine=!1),n}},7884:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(361)),a=l(n(2353)),s=l(n(8913)),i=l(n(9487)),o=l(n(11));function l(e){return e&&e.__esModule?e:{default:e}}t.default=(e={})=>{(0,o.default)("streamConfig.json",e);const t=(0,r.default)(e);if(!t.columnDefault||!t.columnDefault.width)throw new Error("Must provide config.columnDefault.width when creating a stream.");if(!t.columnCount)throw new Error("Must provide config.columnCount.");return t.border=((e={})=>Object.assign({},(0,i.default)("honeywell"),e))(t.border),t.columns=((e,t={},n={})=>((0,s.default)(e,(e=>{(0,a.default)(t[e])&&(t[e]={}),t[e]=Object.assign({alignment:"left",paddingLeft:1,paddingRight:1,truncate:1/0,wrapWord:!1},n,t[e])})),t))(t.columnCount,t.columns,t.columnDefault),t}},1741:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(5564)),a=i(n(8913)),s=i(n(7810));function i(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const i=e[0].length,o=e.map(((e,r)=>{const o=(0,a.default)(t[r],(()=>new Array(i).fill("")));return e.forEach(((e,t)=>{(0,s.default)(e,n.columns[t].width,n.columns[t].wrapWord).forEach(((e,n)=>{o[n][t]=e}))})),o}));return(0,r.default)(o)}},4220:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>e.map((e=>e.map(((e,n)=>{const r=t.columns[n];return" ".repeat(r.paddingLeft)+e+" ".repeat(r.paddingRight)}))))},9466:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>e.map((e=>e.map(String)))},3848:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=d(n(9658)),a=d(n(6078)),s=d(n(6482)),i=d(n(5970)),o=d(n(1741)),l=d(n(6411)),u=d(n(4220)),c=d(n(3522)),h=d(n(9466)),f=d(n(8381));function d(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t={})=>{let n;(0,c.default)(e),n=(0,h.default)(e);const d=(0,s.default)(n,t);n=(0,f.default)(e,d);const p=(0,i.default)(n,d);n=(0,o.default)(n,p,d),n=(0,l.default)(n,d),n=(0,u.default)(n,d);const m=(0,a.default)(n[0]);return(0,r.default)(n,d.border,m,p,d.drawHorizontalLine,d.singleLine)}},8381:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(9138))&&r.__esModule?r:{default:r};t.default=(e,t)=>e.map((e=>e.map(((e,n)=>(0,a.default)(e,{length:t.columns[n].truncate})))))},11:(e,t,n)=>{"use strict";var r=n(4538),a=function(){new RegExp("^[0-9]+$");var e=[],t=(new RegExp("^[0-9]+$"),function t(r,a,s,i,o){var l=null,u=0;if(void 0===o&&(o=r),r&&"object"==typeof r&&!Array.isArray(r)){for(var c in r)if(!t.schema.properties.hasOwnProperty(c)){var h={keyword:"additionalProperties",dataPath:(a||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}void 0!==r.topBody&&(n(r.topBody,(a||"")+".topBody",r,"topBody",o)||(u=(l=null===l?n.errors:l.concat(n.errors)).length)),void 0!==r.topJoin&&(e[2](r.topJoin,(a||"")+".topJoin",r,"topJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topLeft&&(e[2](r.topLeft,(a||"")+".topLeft",r,"topLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.topRight&&(e[2](r.topRight,(a||"")+".topRight",r,"topRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomBody&&(e[2](r.bottomBody,(a||"")+".bottomBody",r,"bottomBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomJoin&&(e[2](r.bottomJoin,(a||"")+".bottomJoin",r,"bottomJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomLeft&&(e[2](r.bottomLeft,(a||"")+".bottomLeft",r,"bottomLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bottomRight&&(e[2](r.bottomRight,(a||"")+".bottomRight",r,"bottomRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyLeft&&(e[2](r.bodyLeft,(a||"")+".bodyLeft",r,"bodyLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyRight&&(e[2](r.bodyRight,(a||"")+".bodyRight",r,"bodyRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.bodyJoin&&(e[2](r.bodyJoin,(a||"")+".bodyJoin",r,"bodyJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinBody&&(e[2](r.joinBody,(a||"")+".joinBody",r,"joinBody",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinLeft&&(e[2](r.joinLeft,(a||"")+".joinLeft",r,"joinLeft",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinRight&&(e[2](r.joinRight,(a||"")+".joinRight",r,"joinRight",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length)),void 0!==r.joinJoin&&(e[2](r.joinJoin,(a||"")+".joinJoin",r,"joinJoin",o)||(u=(l=null===l?e[2].errors:l.concat(e[2].errors)).length))}else h={keyword:"type",dataPath:(a||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return t.errors=l,0===u});t.schema={type:"object",properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"}},additionalProperties:!1},t.errors=null,e[1]=t;var n=(new RegExp("^[0-9]+$"),function e(t,n,r,a,s){var i=null,o=0;if("string"!=typeof t){var l={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"string"},message:"should be string"};null===i?i=[l]:i.push(l),o++}return e.errors=i,0===o});n.schema={type:"string"},n.errors=null,e[2]=n;var a,s=(a=new RegExp("^[0-9]+$"),function e(t,n,r,s,o){var l=null,u=0;if(void 0===o&&(o=t),t&&"object"==typeof t&&!Array.isArray(t)){for(var c in t)if(!a.test(c)){var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===l?l=[h]:l.push(h),u++}for(var c in t)a.test(c)&&(i(t[c],(n||"")+"['"+c+"']",t,c,o)||(u=(l=null===l?i.errors:l.concat(i.errors)).length))}else h={keyword:"type",dataPath:(n||"")+"",schemaPath:"#/type",params:{type:"object"},message:"should be object"},null===l?l=[h]:l.push(h),u++;return e.errors=l,0===u});s.schema={type:"object",patternProperties:{"^[0-9]+$":{$ref:"#/definitions/column"}},additionalProperties:!1},s.errors=null,e[3]=s;var i=(new RegExp("^[0-9]+$"),function e(t,n,a,s,i){var o=null,l=0;if(t&&"object"==typeof t&&!Array.isArray(t)){var u=!0;for(var c in t)if("alignment"!=c&&"width"!=c&&"wrapWord"!=c&&"truncate"!=c&&"paddingLeft"!=c&&"paddingRight"!=c){u=!1;var h={keyword:"additionalProperties",dataPath:(n||"")+"",schemaPath:"#/additionalProperties",params:{additionalProperty:""+c},message:"should NOT have additional properties"};null===o?o=[h]:o.push(h),l++}var f=t.alignment;if(void 0!==f){var d=l;"string"!=typeof f&&(h={keyword:"type",dataPath:(n||"")+".alignment",schemaPath:"#/properties/alignment/type",params:{type:"string"},message:"should be string"},null===o?o=[h]:o.push(h),l++);var p=e.schema.properties.alignment.enum;u=!1;for(var m=0;m{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=e=>{if(!Array.isArray(e))throw new TypeError("Table data must be an array.");if(0===e.length)throw new Error("Table must define at least one row.");if(0===e[0].length)throw new Error("Table must define at least one column.");const t=e[0].length;var n=!0,r=!1,a=void 0;try{for(var s,i=e[Symbol.iterator]();!(n=(s=i.next()).done);n=!0){const e=s.value;if(!Array.isArray(e))throw new TypeError("Table row data must be an array.");if(e.length!==t)throw new Error("Table must have a consistent number of cells.");var o=!0,l=!1,u=void 0;try{for(var c,h=e[Symbol.iterator]();!(o=(c=h.next()).done);o=!0){const e=c.value;if(/[\u0001-\u0006\u0008-\u0009\u000B-\u001A]/.test(e))throw new Error("Table data must not contain control characters.")}}catch(e){l=!0,u=e}finally{try{o||null==h.return||h.return()}finally{if(l)throw u}}}}catch(e){r=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(r)throw a}}}},7810:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(6213)),a=s(n(8624));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t,n)=>{const s=e.split("\n");for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[];do{s.push((0,r.default)(n,0,t)),n=(0,r.default)(n,t).trim()}while((0,a.default)(n));return s}},8624:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(5119)),a=s(n(3393));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(e,t)=>{let n;n=e;const s=[],i=new RegExp("(^.{1,"+t+"}(\\s+|$))|(^.{1,"+(t-1)+"}(\\\\|/|_|\\.|,|;|-))");do{let e;e=n.match(i),e?(e=e[0],n=(0,r.default)(n,(0,a.default)(e)),e=e.trim()):(e=(0,r.default)(n,0,t),n=(0,r.default)(n,t)),s.push(e)}while((0,a.default)(n));return s}},5113:e=>{"use strict";e.exports=e=>{e=Object.assign({onlyFirst:!1},e);const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e.onlyFirst?void 0:"g")}},8175:e=>{"use strict";e.exports=function(){return/\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g}},3393:(e,t,n)=>{"use strict";const r=n(3377),a=n(1903),s=n(8175)();e.exports=e=>{if("string"!=typeof(e=e.replace(s," "))||0===e.length)return 0;e=r(e);let t=0;for(let n=0;n=127&&r<=159||r>=768&&r<=879||(r>65535&&n++,t+=a(r)?2:1)}return t}},3377:(e,t,n)=>{"use strict";const r=n(5113),a=e=>"string"==typeof e?e.replace(r(),""):e;e.exports=a,e.exports.default=a},2287:function(e,t){"use strict";var n,r;void 0===(r="function"==typeof(n=function(){function e(){return!0}function t(){return!1}function n(){}return function r(){var a=[{name:"number",test:function(e){return"number"==typeof e}},{name:"string",test:function(e){return"string"==typeof e}},{name:"boolean",test:function(e){return"boolean"==typeof e}},{name:"Function",test:function(e){return"function"==typeof e}},{name:"Array",test:Array.isArray},{name:"Date",test:function(e){return e instanceof Date}},{name:"RegExp",test:function(e){return e instanceof RegExp}},{name:"Object",test:function(e){return"object"==typeof e&&null!==e&&e.constructor===Object}},{name:"null",test:function(e){return null===e}},{name:"undefined",test:function(e){return void 0===e}}],s={name:"any",test:e},i=[],o=[],l={types:a,conversions:o,ignore:i};function u(e){var t=L(l.types,(function(t){return t.name===e}));if(t)return t;if("any"===e)return s;var n=L(l.types,(function(t){return t.name.toLowerCase()===e.toLowerCase()}));throw new TypeError('Unknown type "'+e+'"'+(n?'. Did you mean "'+n.name+'"?':""))}function c(e){return e===s?999:l.types.indexOf(e)}function h(e){var t=L(l.types,(function(t){return t.test(e)}));if(t)return t.name;throw new TypeError("Value has unknown type. Value: "+e)}function f(e){return e.map((function(e){var t=e.types.map(w);return(e.restParam?"...":"")+t.join("|")})).join(",")}function d(e,t){var n=0===e.indexOf("..."),r=(n?e.length>3?e.slice(3):"any":e).split("|").map(F).filter(R).filter(T),a=function(e,t){var n={};return e.forEach((function(e){-1!==t.indexOf(e.from)||-1===t.indexOf(e.to)||n[e.from]||(n[e.from]=e)})),Object.keys(n).map((function(e){return n[e]}))}(t,r),s=r.map((function(e){var t=u(e);return{name:e,typeIndex:c(t),test:t.test,conversion:null,conversionIndex:-1}})),i=a.map((function(e){var n=u(e.from);return{name:e.from,typeIndex:c(n),test:n.test,conversion:e,conversionIndex:t.indexOf(e)}}));return{types:s.concat(i),restParam:n}}function p(e){var t=M(e);return!!t&&t.restParam}function m(e){return e.types.some((function(e){return null!=e.conversion}))}function g(t){if(t&&0!==t.types.length){if(1===t.types.length)return u(t.types[0].name).test;if(2===t.types.length){var n=u(t.types[0].name).test,r=u(t.types[1].name).test;return function(e){return n(e)||r(e)}}var a=t.types.map((function(e){return u(e.name).test}));return function(e){for(var t=0;t=s+1}}return 0===e.length?function(e){return 0===e.length}:1===e.length?(n=g(e[0]),function(e){return n(e[0])&&1===e.length}):2===e.length?(n=g(e[0]),r=g(e[1]),function(e){return n(e[0])&&r(e[1])&&2===e.length}):(t=e.map(g),function(e){for(var n=0;n0){var u=h(t[s]);return(r=new TypeError("Unexpected type of argument in function "+i+" (expected: "+a.join(" or ")+", actual: "+u+", index: "+s+")")).data={category:"wrongType",fn:i,index:s,actual:u,expected:a},r}}else o=l}var c=o.map((function(e){return p(e.params)?1/0:e.params.length}));if(t.lengthf?((r=new TypeError("Too many arguments in function "+i+" (expected: "+f+", actual: "+t.length+")")).data={category:"tooManyArgs",fn:i,index:t.length,expectedLength:f},r):((r=new TypeError('Arguments of type "'+t.join(", ")+'" do not match any of the defined signatures of function '+i+".")).data={category:"mismatch",actual:t.map(h)},r)}function E(e){for(var t=999,n=0;n=a:o?a>=s:a===s}(t,e)}));if(t)throw new TypeError('Conflicting signatures "'+f(t.params)+'" and "'+f(e.params)+'".');a.push(e)}));var s=z(a,(function(e){return(e?A(e.params,!1):[]).map((function(t){return{params:t,fn:e.fn}}))})).filter(O);s.sort(N);var i=s[0]&&s[0].params.length<=2&&!p(s[0].params),o=s[1]&&s[1].params.length<=2&&!p(s[1].params),u=s[2]&&s[2].params.length<=2&&!p(s[2].params),c=s[3]&&s[3].params.length<=2&&!p(s[3].params),h=s[4]&&s[4].params.length<=2&&!p(s[4].params),b=s[5]&&s[5].params.length<=2&&!p(s[5].params),w=i&&o&&u&&c&&h&&b,_=s.map((function(e){return y(e.params)})),x=i?g(s[0].params[0]):t,E=o?g(s[1].params[0]):t,C=u?g(s[2].params[0]):t,S=c?g(s[3].params[0]):t,D=h?g(s[4].params[0]):t,T=b?g(s[5].params[0]):t,R=i?g(s[0].params[1]):t,M=o?g(s[1].params[1]):t,W=u?g(s[2].params[1]):t,U=c?g(s[3].params[1]):t,V=h?g(s[4].params[1]):t,j=b?g(s[5].params[1]):t,H=s.map((function(e){return function(e,t){var n=t;if(e.some(m)){var r=p(e),a=e.map(I);n=function(){for(var e=[],n=r?arguments.length-1:arguments.length,s=0;s?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[620]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖÜ¢Ł¥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[737]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[850]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[852]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[857]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[861]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[865]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[866]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[874]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[895]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[932]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[135]="����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[224]="����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[237]="����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[250]="����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);return{enc:n,dec:t}}(),t[936]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);for(r[254]="����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[254].length;++e)65533!==r[254][e].charCodeAt(0)&&(n[r[254][e]]=65024+e,t[65024+e]=r[254][e]);return{enc:n,dec:t}}(),t[949]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[129]="�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�".split(""),e=0;e!=r[129].length;++e)65533!==r[129][e].charCodeAt(0)&&(n[r[129][e]]=33024+e,t[33024+e]=r[129][e]);for(r[130]="�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�".split(""),e=0;e!=r[130].length;++e)65533!==r[130][e].charCodeAt(0)&&(n[r[130][e]]=33280+e,t[33280+e]=r[130][e]);for(r[131]="�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�".split(""),e=0;e!=r[131].length;++e)65533!==r[131][e].charCodeAt(0)&&(n[r[131][e]]=33536+e,t[33536+e]=r[131][e]);for(r[132]="�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�".split(""),e=0;e!=r[132].length;++e)65533!==r[132][e].charCodeAt(0)&&(n[r[132][e]]=33792+e,t[33792+e]=r[132][e]);for(r[133]="�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�".split(""),e=0;e!=r[133].length;++e)65533!==r[133][e].charCodeAt(0)&&(n[r[133][e]]=34048+e,t[34048+e]=r[133][e]);for(r[134]="�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�".split(""),e=0;e!=r[134].length;++e)65533!==r[134][e].charCodeAt(0)&&(n[r[134][e]]=34304+e,t[34304+e]=r[134][e]);for(r[135]="�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�".split(""),e=0;e!=r[135].length;++e)65533!==r[135][e].charCodeAt(0)&&(n[r[135][e]]=34560+e,t[34560+e]=r[135][e]);for(r[136]="�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�".split(""),e=0;e!=r[136].length;++e)65533!==r[136][e].charCodeAt(0)&&(n[r[136][e]]=34816+e,t[34816+e]=r[136][e]);for(r[137]="�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�".split(""),e=0;e!=r[137].length;++e)65533!==r[137][e].charCodeAt(0)&&(n[r[137][e]]=35072+e,t[35072+e]=r[137][e]);for(r[138]="�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�".split(""),e=0;e!=r[138].length;++e)65533!==r[138][e].charCodeAt(0)&&(n[r[138][e]]=35328+e,t[35328+e]=r[138][e]);for(r[139]="�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�".split(""),e=0;e!=r[139].length;++e)65533!==r[139][e].charCodeAt(0)&&(n[r[139][e]]=35584+e,t[35584+e]=r[139][e]);for(r[140]="�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�".split(""),e=0;e!=r[140].length;++e)65533!==r[140][e].charCodeAt(0)&&(n[r[140][e]]=35840+e,t[35840+e]=r[140][e]);for(r[141]="�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�".split(""),e=0;e!=r[141].length;++e)65533!==r[141][e].charCodeAt(0)&&(n[r[141][e]]=36096+e,t[36096+e]=r[141][e]);for(r[142]="�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�".split(""),e=0;e!=r[142].length;++e)65533!==r[142][e].charCodeAt(0)&&(n[r[142][e]]=36352+e,t[36352+e]=r[142][e]);for(r[143]="�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�".split(""),e=0;e!=r[143].length;++e)65533!==r[143][e].charCodeAt(0)&&(n[r[143][e]]=36608+e,t[36608+e]=r[143][e]);for(r[144]="�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�".split(""),e=0;e!=r[144].length;++e)65533!==r[144][e].charCodeAt(0)&&(n[r[144][e]]=36864+e,t[36864+e]=r[144][e]);for(r[145]="�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�".split(""),e=0;e!=r[145].length;++e)65533!==r[145][e].charCodeAt(0)&&(n[r[145][e]]=37120+e,t[37120+e]=r[145][e]);for(r[146]="�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�".split(""),e=0;e!=r[146].length;++e)65533!==r[146][e].charCodeAt(0)&&(n[r[146][e]]=37376+e,t[37376+e]=r[146][e]);for(r[147]="�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�".split(""),e=0;e!=r[147].length;++e)65533!==r[147][e].charCodeAt(0)&&(n[r[147][e]]=37632+e,t[37632+e]=r[147][e]);for(r[148]="�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�".split(""),e=0;e!=r[148].length;++e)65533!==r[148][e].charCodeAt(0)&&(n[r[148][e]]=37888+e,t[37888+e]=r[148][e]);for(r[149]="�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�".split(""),e=0;e!=r[149].length;++e)65533!==r[149][e].charCodeAt(0)&&(n[r[149][e]]=38144+e,t[38144+e]=r[149][e]);for(r[150]="�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�".split(""),e=0;e!=r[150].length;++e)65533!==r[150][e].charCodeAt(0)&&(n[r[150][e]]=38400+e,t[38400+e]=r[150][e]);for(r[151]="�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�".split(""),e=0;e!=r[151].length;++e)65533!==r[151][e].charCodeAt(0)&&(n[r[151][e]]=38656+e,t[38656+e]=r[151][e]);for(r[152]="�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�".split(""),e=0;e!=r[152].length;++e)65533!==r[152][e].charCodeAt(0)&&(n[r[152][e]]=38912+e,t[38912+e]=r[152][e]);for(r[153]="�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�".split(""),e=0;e!=r[153].length;++e)65533!==r[153][e].charCodeAt(0)&&(n[r[153][e]]=39168+e,t[39168+e]=r[153][e]);for(r[154]="�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split(""),e=0;e!=r[154].length;++e)65533!==r[154][e].charCodeAt(0)&&(n[r[154][e]]=39424+e,t[39424+e]=r[154][e]);for(r[155]="�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split(""),e=0;e!=r[155].length;++e)65533!==r[155][e].charCodeAt(0)&&(n[r[155][e]]=39680+e,t[39680+e]=r[155][e]);for(r[156]="�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split(""),e=0;e!=r[156].length;++e)65533!==r[156][e].charCodeAt(0)&&(n[r[156][e]]=39936+e,t[39936+e]=r[156][e]);for(r[157]="�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split(""),e=0;e!=r[157].length;++e)65533!==r[157][e].charCodeAt(0)&&(n[r[157][e]]=40192+e,t[40192+e]=r[157][e]);for(r[158]="�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split(""),e=0;e!=r[158].length;++e)65533!==r[158][e].charCodeAt(0)&&(n[r[158][e]]=40448+e,t[40448+e]=r[158][e]);for(r[159]="�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split(""),e=0;e!=r[159].length;++e)65533!==r[159][e].charCodeAt(0)&&(n[r[159][e]]=40704+e,t[40704+e]=r[159][e]);for(r[160]="�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split(""),e=0;e!=r[160].length;++e)65533!==r[160][e].charCodeAt(0)&&(n[r[160][e]]=40960+e,t[40960+e]=r[160][e]);for(r[161]="�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);for(r[250]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split(""),e=0;e!=r[250].length;++e)65533!==r[250][e].charCodeAt(0)&&(n[r[250][e]]=64e3+e,t[64e3+e]=r[250][e]);for(r[251]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split(""),e=0;e!=r[251].length;++e)65533!==r[251][e].charCodeAt(0)&&(n[r[251][e]]=64256+e,t[64256+e]=r[251][e]);for(r[252]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split(""),e=0;e!=r[252].length;++e)65533!==r[252][e].charCodeAt(0)&&(n[r[252][e]]=64512+e,t[64512+e]=r[252][e]);for(r[253]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split(""),e=0;e!=r[253].length;++e)65533!==r[253][e].charCodeAt(0)&&(n[r[253][e]]=64768+e,t[64768+e]=r[253][e]);return{enc:n,dec:t}}(),t[950]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[170]="����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split(""),e=0;e!=r[170].length;++e)65533!==r[170][e].charCodeAt(0)&&(n[r[170][e]]=43520+e,t[43520+e]=r[170][e]);for(r[171]="����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split(""),e=0;e!=r[171].length;++e)65533!==r[171][e].charCodeAt(0)&&(n[r[171][e]]=43776+e,t[43776+e]=r[171][e]);for(r[172]="����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split(""),e=0;e!=r[172].length;++e)65533!==r[172][e].charCodeAt(0)&&(n[r[172][e]]=44032+e,t[44032+e]=r[172][e]);for(r[173]="����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split(""),e=0;e!=r[173].length;++e)65533!==r[173][e].charCodeAt(0)&&(n[r[173][e]]=44288+e,t[44288+e]=r[173][e]);for(r[174]="����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split(""),e=0;e!=r[174].length;++e)65533!==r[174][e].charCodeAt(0)&&(n[r[174][e]]=44544+e,t[44544+e]=r[174][e]);for(r[175]="����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split(""),e=0;e!=r[175].length;++e)65533!==r[175][e].charCodeAt(0)&&(n[r[175][e]]=44800+e,t[44800+e]=r[175][e]);for(r[176]="����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[201]="����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);for(r[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split(""),e=0;e!=r[248].length;++e)65533!==r[248][e].charCodeAt(0)&&(n[r[248][e]]=63488+e,t[63488+e]=r[248][e]);for(r[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split(""),e=0;e!=r[249].length;++e)65533!==r[249][e].charCodeAt(0)&&(n[r[249][e]]=63744+e,t[63744+e]=r[249][e]);return{enc:n,dec:t}}(),t[1250]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1251]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1252]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1253]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1254]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1255]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1256]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1257]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1258]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[1e4]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10006]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10007]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10008]=function(){var e,t=[],n={},r=[];for(r[0]="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������".split(""),e=0;e!=r[0].length;++e)65533!==r[0][e].charCodeAt(0)&&(n[r[0][e]]=0+e,t[0+e]=r[0][e]);for(r[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split(""),e=0;e!=r[161].length;++e)65533!==r[161][e].charCodeAt(0)&&(n[r[161][e]]=41216+e,t[41216+e]=r[161][e]);for(r[162]="���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split(""),e=0;e!=r[162].length;++e)65533!==r[162][e].charCodeAt(0)&&(n[r[162][e]]=41472+e,t[41472+e]=r[162][e]);for(r[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split(""),e=0;e!=r[163].length;++e)65533!==r[163][e].charCodeAt(0)&&(n[r[163][e]]=41728+e,t[41728+e]=r[163][e]);for(r[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split(""),e=0;e!=r[164].length;++e)65533!==r[164][e].charCodeAt(0)&&(n[r[164][e]]=41984+e,t[41984+e]=r[164][e]);for(r[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split(""),e=0;e!=r[165].length;++e)65533!==r[165][e].charCodeAt(0)&&(n[r[165][e]]=42240+e,t[42240+e]=r[165][e]);for(r[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������".split(""),e=0;e!=r[166].length;++e)65533!==r[166][e].charCodeAt(0)&&(n[r[166][e]]=42496+e,t[42496+e]=r[166][e]);for(r[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split(""),e=0;e!=r[167].length;++e)65533!==r[167][e].charCodeAt(0)&&(n[r[167][e]]=42752+e,t[42752+e]=r[167][e]);for(r[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split(""),e=0;e!=r[168].length;++e)65533!==r[168][e].charCodeAt(0)&&(n[r[168][e]]=43008+e,t[43008+e]=r[168][e]);for(r[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split(""),e=0;e!=r[169].length;++e)65533!==r[169][e].charCodeAt(0)&&(n[r[169][e]]=43264+e,t[43264+e]=r[169][e]);for(r[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split(""),e=0;e!=r[176].length;++e)65533!==r[176][e].charCodeAt(0)&&(n[r[176][e]]=45056+e,t[45056+e]=r[176][e]);for(r[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split(""),e=0;e!=r[177].length;++e)65533!==r[177][e].charCodeAt(0)&&(n[r[177][e]]=45312+e,t[45312+e]=r[177][e]);for(r[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split(""),e=0;e!=r[178].length;++e)65533!==r[178][e].charCodeAt(0)&&(n[r[178][e]]=45568+e,t[45568+e]=r[178][e]);for(r[179]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split(""),e=0;e!=r[179].length;++e)65533!==r[179][e].charCodeAt(0)&&(n[r[179][e]]=45824+e,t[45824+e]=r[179][e]);for(r[180]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split(""),e=0;e!=r[180].length;++e)65533!==r[180][e].charCodeAt(0)&&(n[r[180][e]]=46080+e,t[46080+e]=r[180][e]);for(r[181]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split(""),e=0;e!=r[181].length;++e)65533!==r[181][e].charCodeAt(0)&&(n[r[181][e]]=46336+e,t[46336+e]=r[181][e]);for(r[182]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split(""),e=0;e!=r[182].length;++e)65533!==r[182][e].charCodeAt(0)&&(n[r[182][e]]=46592+e,t[46592+e]=r[182][e]);for(r[183]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split(""),e=0;e!=r[183].length;++e)65533!==r[183][e].charCodeAt(0)&&(n[r[183][e]]=46848+e,t[46848+e]=r[183][e]);for(r[184]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split(""),e=0;e!=r[184].length;++e)65533!==r[184][e].charCodeAt(0)&&(n[r[184][e]]=47104+e,t[47104+e]=r[184][e]);for(r[185]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split(""),e=0;e!=r[185].length;++e)65533!==r[185][e].charCodeAt(0)&&(n[r[185][e]]=47360+e,t[47360+e]=r[185][e]);for(r[186]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split(""),e=0;e!=r[186].length;++e)65533!==r[186][e].charCodeAt(0)&&(n[r[186][e]]=47616+e,t[47616+e]=r[186][e]);for(r[187]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split(""),e=0;e!=r[187].length;++e)65533!==r[187][e].charCodeAt(0)&&(n[r[187][e]]=47872+e,t[47872+e]=r[187][e]);for(r[188]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split(""),e=0;e!=r[188].length;++e)65533!==r[188][e].charCodeAt(0)&&(n[r[188][e]]=48128+e,t[48128+e]=r[188][e]);for(r[189]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split(""),e=0;e!=r[189].length;++e)65533!==r[189][e].charCodeAt(0)&&(n[r[189][e]]=48384+e,t[48384+e]=r[189][e]);for(r[190]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split(""),e=0;e!=r[190].length;++e)65533!==r[190][e].charCodeAt(0)&&(n[r[190][e]]=48640+e,t[48640+e]=r[190][e]);for(r[191]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split(""),e=0;e!=r[191].length;++e)65533!==r[191][e].charCodeAt(0)&&(n[r[191][e]]=48896+e,t[48896+e]=r[191][e]);for(r[192]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split(""),e=0;e!=r[192].length;++e)65533!==r[192][e].charCodeAt(0)&&(n[r[192][e]]=49152+e,t[49152+e]=r[192][e]);for(r[193]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split(""),e=0;e!=r[193].length;++e)65533!==r[193][e].charCodeAt(0)&&(n[r[193][e]]=49408+e,t[49408+e]=r[193][e]);for(r[194]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split(""),e=0;e!=r[194].length;++e)65533!==r[194][e].charCodeAt(0)&&(n[r[194][e]]=49664+e,t[49664+e]=r[194][e]);for(r[195]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split(""),e=0;e!=r[195].length;++e)65533!==r[195][e].charCodeAt(0)&&(n[r[195][e]]=49920+e,t[49920+e]=r[195][e]);for(r[196]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split(""),e=0;e!=r[196].length;++e)65533!==r[196][e].charCodeAt(0)&&(n[r[196][e]]=50176+e,t[50176+e]=r[196][e]);for(r[197]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split(""),e=0;e!=r[197].length;++e)65533!==r[197][e].charCodeAt(0)&&(n[r[197][e]]=50432+e,t[50432+e]=r[197][e]);for(r[198]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split(""),e=0;e!=r[198].length;++e)65533!==r[198][e].charCodeAt(0)&&(n[r[198][e]]=50688+e,t[50688+e]=r[198][e]);for(r[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split(""),e=0;e!=r[199].length;++e)65533!==r[199][e].charCodeAt(0)&&(n[r[199][e]]=50944+e,t[50944+e]=r[199][e]);for(r[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split(""),e=0;e!=r[200].length;++e)65533!==r[200][e].charCodeAt(0)&&(n[r[200][e]]=51200+e,t[51200+e]=r[200][e]);for(r[201]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split(""),e=0;e!=r[201].length;++e)65533!==r[201][e].charCodeAt(0)&&(n[r[201][e]]=51456+e,t[51456+e]=r[201][e]);for(r[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split(""),e=0;e!=r[202].length;++e)65533!==r[202][e].charCodeAt(0)&&(n[r[202][e]]=51712+e,t[51712+e]=r[202][e]);for(r[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split(""),e=0;e!=r[203].length;++e)65533!==r[203][e].charCodeAt(0)&&(n[r[203][e]]=51968+e,t[51968+e]=r[203][e]);for(r[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split(""),e=0;e!=r[204].length;++e)65533!==r[204][e].charCodeAt(0)&&(n[r[204][e]]=52224+e,t[52224+e]=r[204][e]);for(r[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split(""),e=0;e!=r[205].length;++e)65533!==r[205][e].charCodeAt(0)&&(n[r[205][e]]=52480+e,t[52480+e]=r[205][e]);for(r[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split(""),e=0;e!=r[206].length;++e)65533!==r[206][e].charCodeAt(0)&&(n[r[206][e]]=52736+e,t[52736+e]=r[206][e]);for(r[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split(""),e=0;e!=r[207].length;++e)65533!==r[207][e].charCodeAt(0)&&(n[r[207][e]]=52992+e,t[52992+e]=r[207][e]);for(r[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""),e=0;e!=r[208].length;++e)65533!==r[208][e].charCodeAt(0)&&(n[r[208][e]]=53248+e,t[53248+e]=r[208][e]);for(r[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split(""),e=0;e!=r[209].length;++e)65533!==r[209][e].charCodeAt(0)&&(n[r[209][e]]=53504+e,t[53504+e]=r[209][e]);for(r[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split(""),e=0;e!=r[210].length;++e)65533!==r[210][e].charCodeAt(0)&&(n[r[210][e]]=53760+e,t[53760+e]=r[210][e]);for(r[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split(""),e=0;e!=r[211].length;++e)65533!==r[211][e].charCodeAt(0)&&(n[r[211][e]]=54016+e,t[54016+e]=r[211][e]);for(r[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split(""),e=0;e!=r[212].length;++e)65533!==r[212][e].charCodeAt(0)&&(n[r[212][e]]=54272+e,t[54272+e]=r[212][e]);for(r[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split(""),e=0;e!=r[213].length;++e)65533!==r[213][e].charCodeAt(0)&&(n[r[213][e]]=54528+e,t[54528+e]=r[213][e]);for(r[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split(""),e=0;e!=r[214].length;++e)65533!==r[214][e].charCodeAt(0)&&(n[r[214][e]]=54784+e,t[54784+e]=r[214][e]);for(r[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split(""),e=0;e!=r[215].length;++e)65533!==r[215][e].charCodeAt(0)&&(n[r[215][e]]=55040+e,t[55040+e]=r[215][e]);for(r[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split(""),e=0;e!=r[216].length;++e)65533!==r[216][e].charCodeAt(0)&&(n[r[216][e]]=55296+e,t[55296+e]=r[216][e]);for(r[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split(""),e=0;e!=r[217].length;++e)65533!==r[217][e].charCodeAt(0)&&(n[r[217][e]]=55552+e,t[55552+e]=r[217][e]);for(r[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split(""),e=0;e!=r[218].length;++e)65533!==r[218][e].charCodeAt(0)&&(n[r[218][e]]=55808+e,t[55808+e]=r[218][e]);for(r[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split(""),e=0;e!=r[219].length;++e)65533!==r[219][e].charCodeAt(0)&&(n[r[219][e]]=56064+e,t[56064+e]=r[219][e]);for(r[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split(""),e=0;e!=r[220].length;++e)65533!==r[220][e].charCodeAt(0)&&(n[r[220][e]]=56320+e,t[56320+e]=r[220][e]);for(r[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split(""),e=0;e!=r[221].length;++e)65533!==r[221][e].charCodeAt(0)&&(n[r[221][e]]=56576+e,t[56576+e]=r[221][e]);for(r[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split(""),e=0;e!=r[222].length;++e)65533!==r[222][e].charCodeAt(0)&&(n[r[222][e]]=56832+e,t[56832+e]=r[222][e]);for(r[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split(""),e=0;e!=r[223].length;++e)65533!==r[223][e].charCodeAt(0)&&(n[r[223][e]]=57088+e,t[57088+e]=r[223][e]);for(r[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split(""),e=0;e!=r[224].length;++e)65533!==r[224][e].charCodeAt(0)&&(n[r[224][e]]=57344+e,t[57344+e]=r[224][e]);for(r[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split(""),e=0;e!=r[225].length;++e)65533!==r[225][e].charCodeAt(0)&&(n[r[225][e]]=57600+e,t[57600+e]=r[225][e]);for(r[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split(""),e=0;e!=r[226].length;++e)65533!==r[226][e].charCodeAt(0)&&(n[r[226][e]]=57856+e,t[57856+e]=r[226][e]);for(r[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split(""),e=0;e!=r[227].length;++e)65533!==r[227][e].charCodeAt(0)&&(n[r[227][e]]=58112+e,t[58112+e]=r[227][e]);for(r[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split(""),e=0;e!=r[228].length;++e)65533!==r[228][e].charCodeAt(0)&&(n[r[228][e]]=58368+e,t[58368+e]=r[228][e]);for(r[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split(""),e=0;e!=r[229].length;++e)65533!==r[229][e].charCodeAt(0)&&(n[r[229][e]]=58624+e,t[58624+e]=r[229][e]);for(r[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split(""),e=0;e!=r[230].length;++e)65533!==r[230][e].charCodeAt(0)&&(n[r[230][e]]=58880+e,t[58880+e]=r[230][e]);for(r[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split(""),e=0;e!=r[231].length;++e)65533!==r[231][e].charCodeAt(0)&&(n[r[231][e]]=59136+e,t[59136+e]=r[231][e]);for(r[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split(""),e=0;e!=r[232].length;++e)65533!==r[232][e].charCodeAt(0)&&(n[r[232][e]]=59392+e,t[59392+e]=r[232][e]);for(r[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split(""),e=0;e!=r[233].length;++e)65533!==r[233][e].charCodeAt(0)&&(n[r[233][e]]=59648+e,t[59648+e]=r[233][e]);for(r[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split(""),e=0;e!=r[234].length;++e)65533!==r[234][e].charCodeAt(0)&&(n[r[234][e]]=59904+e,t[59904+e]=r[234][e]);for(r[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split(""),e=0;e!=r[235].length;++e)65533!==r[235][e].charCodeAt(0)&&(n[r[235][e]]=60160+e,t[60160+e]=r[235][e]);for(r[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split(""),e=0;e!=r[236].length;++e)65533!==r[236][e].charCodeAt(0)&&(n[r[236][e]]=60416+e,t[60416+e]=r[236][e]);for(r[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split(""),e=0;e!=r[237].length;++e)65533!==r[237][e].charCodeAt(0)&&(n[r[237][e]]=60672+e,t[60672+e]=r[237][e]);for(r[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split(""),e=0;e!=r[238].length;++e)65533!==r[238][e].charCodeAt(0)&&(n[r[238][e]]=60928+e,t[60928+e]=r[238][e]);for(r[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split(""),e=0;e!=r[239].length;++e)65533!==r[239][e].charCodeAt(0)&&(n[r[239][e]]=61184+e,t[61184+e]=r[239][e]);for(r[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split(""),e=0;e!=r[240].length;++e)65533!==r[240][e].charCodeAt(0)&&(n[r[240][e]]=61440+e,t[61440+e]=r[240][e]);for(r[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split(""),e=0;e!=r[241].length;++e)65533!==r[241][e].charCodeAt(0)&&(n[r[241][e]]=61696+e,t[61696+e]=r[241][e]);for(r[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split(""),e=0;e!=r[242].length;++e)65533!==r[242][e].charCodeAt(0)&&(n[r[242][e]]=61952+e,t[61952+e]=r[242][e]);for(r[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split(""),e=0;e!=r[243].length;++e)65533!==r[243][e].charCodeAt(0)&&(n[r[243][e]]=62208+e,t[62208+e]=r[243][e]);for(r[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split(""),e=0;e!=r[244].length;++e)65533!==r[244][e].charCodeAt(0)&&(n[r[244][e]]=62464+e,t[62464+e]=r[244][e]);for(r[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split(""),e=0;e!=r[245].length;++e)65533!==r[245][e].charCodeAt(0)&&(n[r[245][e]]=62720+e,t[62720+e]=r[245][e]);for(r[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split(""),e=0;e!=r[246].length;++e)65533!==r[246][e].charCodeAt(0)&&(n[r[246][e]]=62976+e,t[62976+e]=r[246][e]);for(r[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split(""),e=0;e!=r[247].length;++e)65533!==r[247][e].charCodeAt(0)&&(n[r[247][e]]=63232+e,t[63232+e]=r[247][e]);return{enc:n,dec:t}}(),t[10029]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10079]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),t[10081]=function(){for(var e="\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",t=[],n={},r=0;r!=e.length;++r)65533!==e.charCodeAt(r)&&(n[e.charAt(r)]=r),t[r]=e.charAt(r);return{enc:n,dec:t}}(),e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE&&(e.exports=t),function(n,r){"use strict";if(void 0===t){var a=t;e.exports&&"undefined"==typeof DO_NOT_EXPORT_CODEPAGE?e.exports=r(a):n.cptable=r(a)}else t=r(t)}(this,(function(e){"use strict";var t={1200:"utf16le",1201:"utf16be",12e3:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65e3:"utf7",65001:"utf8"},n=[874,1250,1251,1252,1253,1254,1255,1256,1e4],r=[932,936,949,950],a=[65001],s={},i={},o={},l={},u=function(e){return String.fromCharCode(e)},c=function(e){return e.charCodeAt(0)},h="undefined"!=typeof Buffer,f=function(){};if(h){var d=!Buffer.from;if(!d)try{Buffer.from("foo","utf8")}catch(e){d=!0}f=d?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)});var p=1024,m=Buffer.allocUnsafe(p),g=function(t){var n=function(e){for(var t=Buffer.allocUnsafe(65536),n=0;n<65536;++n)t[n]=0;for(var r=Object.keys(e),a=r.length,s=0,i=r[s];s>10&1023)],r[i++]=n[56320+(1023&l)]));r=r.slice(0,i)}else for(r=Buffer.allocUnsafe(a),s=0;s>8}return function(e){var t=e.length,n=0,a=0;if(2*t>p&&(p=2*t,m=Buffer.allocUnsafe(p)),Buffer.isBuffer(e))for(n=0;n>8}return function(e,t){var n=e.length,a=Buffer.allocUnsafe(2*n),s=0,i=0,o=0,l=0,u=0;if("string"==typeof e){for(s=l=0;s0&&(a[l++]=r[i]);a=a.slice(0,l)}else if(Buffer.isBuffer(e)){for(s=l=0;s0&&(a[l++]=r[i])):(i=2*(55296+((o=i-65536)>>10&1023)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]),i=2*(56320+(1023&o)),a[l++]=r[i+1]||r[i],r[i+1]>0&&(a[l++]=r[i]));a=a.slice(0,l)}else for(s=l=0;s0&&(a[l++]=r[i]);return t&&"buf"!==t?"arr"!==t?a.toString("binary"):[].slice.call(a):a}},v=function(t){var n,r=e[t].dec,a=Buffer.allocUnsafe(131072),s=0,i=0,o=0,l=0;for(l=0;l<65536;++l)a[2*l]=255,a[2*l+1]=253;for(s=0;s>8);return function(e){var t=e.length,n=Buffer.allocUnsafe(2*t),r=0,s=0,i=0;if(Buffer.isBuffer(e))for(r=0;rp&&(p=4*n,m=Buffer.allocUnsafe(p));var s=0;n>=3&&239==t[0]&&187==t[1]&&191==t[2]&&(s=3);for(var i=1,o=0,l=0;s>8):(a=55296+((r-=65536)>>10&1023),r=56320+(1023&r),m[o++]=255&a,m[o++]=a>>>8,m[o++]=255&r,m[o++]=r>>>8&255);return m.slice(0,o).toString("ucs2")},i[65001]=function(e,t){if(h&&Buffer.isBuffer(e))return t&&"buf"!==t?"arr"!==t?e.toString("binary"):[].slice.call(e):e;var n=e.length,r=0,a=0,s=0,i="string"==typeof e;4*n>p&&(p=4*n,m=Buffer.allocUnsafe(p));for(var o=0;o>6),m[s++]=128+(63&r)):r>=55296&&r<=57343?(r-=55296,++o,a=(i?e.charCodeAt(o):e[o].charCodeAt(0))-56320+(r<<10),m[s++]=240+(a>>>18&7),m[s++]=144+(a>>>12&63),m[s++]=128+(a>>>6&63),m[s++]=128+(63&a)):(m[s++]=224+(r>>12),m[s++]=128+(r>>6&63),m[s++]=128+(63&r));return t&&"buf"!==t?"arr"!==t?m.slice(0,s).toString("binary"):[].slice.call(m,0,s):m.slice(0,s)}}var w=function(){if(h){if(o[n[0]])return;var t=0,u=0;for(t=0;t=3&&239==a[0]&&187==a[1]&&191==a[2]&&(p=3);p>10&1023),d=56320+(1023&d),u[g++]=String.fromCharCode(y)),u[g++]=String.fromCharCode(d);break;case"ascii":if(h&&Buffer.isBuffer(a))return a.toString(v);for(p=0;p=2&&255==a[0]&&254==a[1]&&(p=2),h&&Buffer.isBuffer(a))return a.toString(v);for(m=2;p+1=2&&254==a[0]&&255==a[1]&&(p=2),m=2;p+1=4&&255==a[0]&&254==a[1]&&0===a[2]&&0===a[3]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf32be":for(l>=4&&255==a[3]&&254==a[2]&&0===a[1]&&0===a[0]&&(p=4),m=4;p65535?(d-=65536,u[g++]=String.fromCharCode(55296+(d>>10&1023)),u[g++]=String.fromCharCode(56320+(1023&d))):u[g++]=String.fromCharCode(d);break;case"utf7":for(l>=4&&43==a[0]&&47==a[1]&&118==a[2]&&(l>=5&&56==a[3]&&45==a[4]?p=5:56!=a[3]&&57!=a[3]&&43!=a[3]&&47!=a[3]||(p=4));p>4,_.push(k),-1!==(I=E.indexOf(String.fromCharCode(a[p+D++]))))&&(C=(15&N)<<4|I>>2,_.push(C),-1!==(A=E.indexOf(String.fromCharCode(a[p+D++]))));)S=(3&I)<<6|A,A<64&&_.push(S);for(x=n(1201,_),D=0;D255?(c[m]=d>>8,c[++m]=255&d):c[m]=255&d;else{if(!(b=t[r]))throw new Error("Unrecognized CP: "+r);switch(b){case"utf8":if(h&&v){m=(c=f(a,b)).length;break}for(p=0;p>6),c[++m]=128+(63&d)):d>=55296&&d<=57343?(d-=55296,g=(v?a.charCodeAt(++p):a[++p].charCodeAt(0))-56320+(d<<10),c[m]=240+(g>>>18&7),c[++m]=144+(g>>>12&63),c[++m]=128+(g>>>6&63),c[++m]=128+(63&g)):(c[m]=224+(d>>12),c[++m]=128+(d>>6&63),c[++m]=128+(63&d));break;case"ascii":if(h&&"string"==typeof a){m=(c=f(a,b)).length;break}for(p=0;p>8;break;case"utf16be":for(p=0;p>8,c[m++]=255&d;break;case"utf32le":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d,d>>=8,c[m++]=255&d;break;case"utf32be":for(p=0;p=55296&&d<=57343&&(d=65536+(d-55296<<10)+(a[++p].charCodeAt(0)-56320)),c[m+3]=255&d,d>>=8,c[m+2]=255&d,d>>=8,c[m+1]=255&d,d>>=8,c[m]=255&d,m+=4;break;case"utf7":for(p=0;p-1)c[m++]=w.charCodeAt(0);else{var _=n(1201,w);c[m++]=43,c[m++]=E.charCodeAt(_[0]>>2),c[m++]=E.charCodeAt(((3&_[0])<<4)+((_[1]||0)>>4)),c[m++]=E.charCodeAt(((15&_[1])<<2)+((_[2]||0)>>6)),c[m++]=45}else c[m++]=43,c[m++]=45}break;default:throw new Error("Unsupported magic: "+r+" "+t[r])}}return c=c.slice(0,m),h?s&&"buf"!==s?"arr"!==s?c.toString("binary"):[].slice.call(c):c:"str"==s?c.map(u).join(""):c},hascp:function(n){return!(!e[n]&&!t[n])},magic:t,cache:k},e}))},2903:(e,t,n)=>{var r,a,s;!function(i){if("undefined"==typeof DO_NOT_EXPORT_JSZIP)e.exports=i();else if("undefined"==typeof DO_NOT_EXPORT_JSZIP)JSZipSync=i(),a=[],void 0===(s="function"==typeof(r=i)?r.apply(t,a):r)||(e.exports=s);else{var o;"undefined"!=typeof globalThis?o=globalThis:"undefined"!=typeof window?o=window:void 0!==n.g?o=n.g:"undefined"!=typeof $&&$.global?o=$.global:"undefined"!=typeof self&&(o=self),o.JSZipSync=i()}}((function(){return function e(t,n,r){function a(i,o){if(!n[i]){if(!t[i]){if(s)return s(i,!0);throw new Error("Cannot find module '"+i+"'")}var l=n[i]={exports:{}};t[i][0].call(l.exports,(function(e){return a(t[i][1][e]||e)}),l,l.exports,e,t,n,r)}return n[i].exports}for(var s=void 0,i=0;i>2,o=(3&n)<<4|(a=e.charCodeAt(h++))>>4,l=(15&a)<<2|(s=e.charCodeAt(h++))>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),c=c+r.charAt(i)+r.charAt(o)+r.charAt(l)+r.charAt(u);return c},n.decode=function(e,t){var n,a,s,i,o,l,u="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c>4,a=(15&i)<<4|(o=r.indexOf(e.charAt(c++)))>>2,s=(3&o)<<6|(l=r.indexOf(e.charAt(c++))),u+=String.fromCharCode(n),64!=o&&(u+=String.fromCharCode(a)),64!=l&&(u+=String.fromCharCode(s));return u}},{}],2:[function(e,t,n){"use strict";function r(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}r.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},t.exports=r},{}],3:[function(e,t,n){"use strict";n.STORE={magic:"\0\0",compress:function(e){return e},uncompress:function(e){return e},compressInputType:null,uncompressInputType:null},n.DEFLATE=e("./flate")},{"./flate":8}],4:[function(e,t,n){"use strict";var r=e("./utils"),a=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];t.exports=function(e,t){if(void 0===e||!e.length)return 0;var n="string"!==r.getTypeOf(e);void 0===t&&(t=0);var s=0;t^=-1;for(var i=0,o=e.length;i>>8^a[255&(t^s)];return-1^t}},{"./utils":21}],5:[function(e,t,n){"use strict";var r=e("./utils");function a(e){this.data=null,this.length=0,this.index=0}a.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1)}},t.exports=a},{"./utils":21}],6:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!1,n.date=null,n.compression=null,n.comment=null},{}],7:[function(e,t,n){"use strict";var r=e("./utils");n.string2binary=function(e){return r.string2binary(e)},n.string2Uint8Array=function(e){return r.transformTo("uint8array",e)},n.uint8Array2String=function(e){return r.transformTo("string",e)},n.string2Blob=function(e){var t=r.transformTo("arraybuffer",e);return r.arrayBuffer2Blob(t)},n.arrayBuffer2Blob=function(e){return r.arrayBuffer2Blob(e)},n.transformTo=function(e,t){return r.transformTo(e,t)},n.getTypeOf=function(e){return r.getTypeOf(e)},n.checkSupport=function(e){return r.checkSupport(e)},n.MAX_VALUE_16BITS=r.MAX_VALUE_16BITS,n.MAX_VALUE_32BITS=r.MAX_VALUE_32BITS,n.pretty=function(e){return r.pretty(e)},n.findCompression=function(e){return r.findCompression(e)},n.isRegExp=function(e){return r.isRegExp(e)}},{"./utils":21}],8:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,a=e("pako");n.uncompressInputType=r?"uint8array":"array",n.compressInputType=r?"uint8array":"array",n.magic="\b\0",n.compress=function(e){return a.deflateRaw(e)},n.uncompress=function(e){return a.inflateRaw(e)}},{pako:24}],9:[function(e,t,n){"use strict";var r=e("./base64");function a(e,t){if(!(this instanceof a))return new a(e,t);this.files={},this.comment=null,this.root="",e&&this.load(e,t),this.clone=function(){var e=new a;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}a.prototype=e("./object"),a.prototype.load=e("./load"),a.support=e("./support"),a.defaults=e("./defaults"),a.utils=e("./deprecatedPublicUtils"),a.base64={encode:function(e){return r.encode(e)},decode:function(e){return r.decode(e)}},a.compressions=e("./compressions"),t.exports=a},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(e,t,n){"use strict";var r=e("./base64"),a=e("./zipEntries");t.exports=function(e,t){var n,s,i,o;for((t=t||{}).base64&&(e=r.decode(e)),n=(s=new a(e,t)).files,i=0;i>>=8;return r},w=function(){var e,t,n={};for(e=0;e0?e.substring(0,t):""},k=function(e,t){return"/"!=e.slice(-1)&&(e+="/"),t=void 0!==t&&t,this.files[e]||_.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]},E=function(e,t){var n,r=new c;return e._data instanceof c?(r.uncompressedSize=e._data.uncompressedSize,r.crc32=e._data.crc32,0===r.uncompressedSize||e.dir?(t=u.STORE,r.compressedContent="",r.crc32=0):e._data.compressionMethod===t.magic?r.compressedContent=e._data.getCompressedContent():(n=e._data.getContent(),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n)))):((n=g(e))&&0!==n.length&&!e.dir||(t=u.STORE,n=""),r.uncompressedSize=n.length,r.crc32=s(n),r.compressedContent=t.compress(a.transformTo(t.compressInputType,n))),r.compressedSize=r.compressedContent.length,r.compressionMethod=t.magic,r},C=function(e,t,n,r){n.compressedContent;var o,l,u,c,h=a.transformTo("string",f.utf8encode(t.name)),d=t.comment||"",p=a.transformTo("string",f.utf8encode(d)),m=h.length!==t.name.length,g=p.length!==d.length,y=t.options,b="",w="",_="";u=t._initialMetadata.dir!==t.dir?t.dir:y.dir,o=(c=t._initialMetadata.date!==t.date?t.date:y.date).getHours(),o<<=6,o|=c.getMinutes(),o<<=5,o|=c.getSeconds()/2,l=c.getFullYear()-1980,l<<=4,l|=c.getMonth()+1,l<<=5,l|=c.getDate(),m&&(w=v(1,1)+v(s(h),4)+h,b+="up"+v(w.length,2)+w),g&&(_=v(1,1)+v(this.crc32(p),4)+p,b+="uc"+v(_.length,2)+_);var x="";return x+="\n\0",x+=m||g?"\0\b":"\0\0",x+=n.compressionMethod,x+=v(o,2),x+=v(l,2),x+=v(n.crc32,4),x+=v(n.compressedSize,4),x+=v(n.uncompressedSize,4),x+=v(h.length,2),x+=v(b.length,2),{fileRecord:i.LOCAL_FILE_HEADER+x+h+b,dirRecord:i.CENTRAL_FILE_HEADER+"\0"+x+v(p.length,2)+"\0\0\0\0"+(!0===u?"\0\0\0":"\0\0\0\0")+v(r,4)+h+b+p,compressedObject:n}},S={load:function(e,t){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(e){var t,n,r,a,s=[];for(t in this.files)this.files.hasOwnProperty(t)&&(r=this.files[t],a=new b(r.name,r._data,w(r.options)),n=t.slice(this.root.length,t.length),t.slice(0,this.root.length)===this.root&&e(n,a)&&s.push(a));return s},file:function(e,t,n){if(1===arguments.length){if(a.isRegExp(e)){var r=e;return this.filter((function(e,t){return!t.dir&&r.test(e)}))}return this.filter((function(t,n){return!n.dir&&t===e}))[0]||null}return e=this.root+e,_.call(this,e,t,n),this},folder:function(e){if(!e)return this;if(a.isRegExp(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=k.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!=e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r=0;--s)if(this.data[s]===t&&this.data[s+1]===n&&this.data[s+2]===r&&this.data[s+3]===a)return s;return-1},a.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.index,this.index+e);return this.index+=e,t},t.exports=a},{"./dataReader":5}],19:[function(e,t,n){"use strict";var r=e("./utils"),a=function(e){this.data=new Uint8Array(e),this.index=0};a.prototype={append:function(e){0!==e.length&&(e=r.transformTo("uint8array",e),this.data.set(e,this.index),this.index+=e.length)},finalize:function(){return this.data}},t.exports=a},{"./utils":21}],20:[function(e,t,n){"use strict";for(var r=e("./utils"),a=e("./support"),s=e("./nodeBuffer"),i=new Array(256),o=0;o<256;o++)i[o]=o>=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;i[254]=i[254]=1;var l=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t},u=function(e){var t,n,a,s,o=e.length,l=new Array(2*o);for(n=0,t=0;t4)l[n++]=65533,t+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&t1?l[n++]=65533:a<65536?l[n++]=a:(a-=65536,l[n++]=55296|a>>10&1023,l[n++]=56320|1023&a)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)};n.utf8encode=function(e){return a.nodebuffer?s(e,"utf-8"):function(e){var t,n,r,s,i,o=e.length,l=0;for(s=0;s>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t}(e)},n.utf8decode=function(e){if(a.nodebuffer)return r.transformTo("nodebuffer",e).toString("utf-8");for(var t=[],n=0,s=(e=r.transformTo(a.uint8array?"uint8array":"array",e)).length;n1;)try{"array"===i||"nodebuffer"===i?r.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+t,a)))):r.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+t,a)))),o+=t}catch(e){t=Math.floor(t/2)}return r.join("")}function u(e,t){for(var n=0;n1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==n)throw new Error(i[n]);t.header&&r.deflateSetHeader(this.strm,t.header)};function u(e,t){var n=new l(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}l.prototype.push=function(e,t){var n,i,o=this.strm,l=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,o.input="string"==typeof e?s.string2buf(e):e,o.next_in=0,o.avail_in=o.input.length;do{if(0===o.avail_out&&(o.output=new a.Buf8(l),o.next_out=0,o.avail_out=l),1!==(n=r.deflate(o,i))&&0!==n)return this.onEnd(n),this.ended=!0,!1;(0===o.avail_out||0===o.avail_in&&4===i)&&("string"===this.options.to?this.onData(s.buf2binstring(a.shrinkBuf(o.output,o.next_out))):this.onData(a.shrinkBuf(o.output,o.next_out)))}while((o.avail_in>0||0===o.avail_out)&&1!==n);return 4!==i||(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n)},l.prototype.onData=function(e){this.chunks.push(e)},l.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=l,n.deflate=u,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,u(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,u(e,t)}},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(e,t,n){"use strict";var r=e("./zlib/inflate.js"),a=e("./utils/common"),s=e("./utils/strings"),i=e("./zlib/constants"),o=e("./zlib/messages"),l=e("./zlib/zstream"),u=e("./zlib/gzheader"),c=function(e){this.options=a.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==i.Z_OK)throw new Error(o[n]);this.header=new u,r.inflateGetHeader(this.strm,this.header)};function h(e,t){var n=new c(t);if(n.push(e,!0),n.err)throw n.msg;return n.result}c.prototype.push=function(e,t){var n,o,l,u,c,h=this.strm,f=this.options.chunkSize;if(this.ended)return!1;o=t===~~t?t:!0===t?i.Z_FINISH:i.Z_NO_FLUSH,h.input="string"==typeof e?s.binstring2buf(e):e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new a.Buf8(f),h.next_out=0,h.avail_out=f),(n=r.inflate(h,i.Z_NO_FLUSH))!==i.Z_STREAM_END&&n!==i.Z_OK)return this.onEnd(n),this.ended=!0,!1;h.next_out&&(0===h.avail_out||n===i.Z_STREAM_END||0===h.avail_in&&o===i.Z_FINISH)&&("string"===this.options.to?(l=s.utf8border(h.output,h.next_out),u=h.next_out-l,c=s.buf2string(h.output,l),h.next_out=u,h.avail_out=f-u,u&&a.arraySet(h.output,h.output,l,u,0),this.onData(c)):this.onData(a.shrinkBuf(h.output,h.next_out)))}while(h.avail_in>0&&n!==i.Z_STREAM_END);return n===i.Z_STREAM_END&&(o=i.Z_FINISH),o!==i.Z_FINISH||(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===i.Z_OK)},c.prototype.onData=function(e){this.chunks.push(e)},c.prototype.onEnd=function(e){e===i.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=c,n.inflate=h,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},n.ungzip=h},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var a={arraySet:function(e,t,n,r,a){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),a);else for(var s=0;s=252?6:o>=248?5:o>=240?4:o>=224?3:o>=192?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&a))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",i=0;i>>6,t[i++]=128|63&n):n<65536?(t[i++]=224|n>>>12,t[i++]=128|n>>>6&63,t[i++]=128|63&n):(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63,t[i++]=128|n>>>6&63,t[i++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,a=t.length;n4)u[r++]=65533,n+=s-1;else{for(a&=2===s?31:3===s?15:7;s>1&&n1?u[r++]=65533:a<65536?u[r++]=a:(a-=65536,u[r++]=55296|a>>10&1023,u[r++]=56320|1023&a)}return l(u,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t}},{"./common":27}],29:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var a=65535&e|0,s=e>>>16&65535|0,i=0;0!==n;){n-=i=n>2e3?2e3:n;do{s=s+(a=a+t[r++]|0)|0}while(--i);a%=65521,s%=65521}return a|s<<16|0}},{}],30:[function(e,t,n){t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,a){var s=r,i=a+n;e^=-1;for(var o=a;o>>8^s[255&(e^t[o])];return-1^e}},{}],32:[function(e,t,n){"use strict";var r=e("../utils/common"),a=e("./trees"),s=e("./adler32"),i=e("./crc32"),o=e("./messages"),l=-2,u=258,c=262,h=103,f=113,d=666;function p(e,t){return e.msg=o[t],t}function m(e){return(e<<1)-(e>4?9:0)}function g(e){for(var t=e.length;--t>=0;)e[t]=0}function y(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(r.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function b(e,t){a._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,y(e.strm)}function v(e,t){e.pending_buf[e.pending++]=t}function w(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function _(e,t){var n,r,a=e.max_chain_length,s=e.strstart,i=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-c?e.strstart-(e.w_size-c):0,h=e.window,f=e.w_mask,d=e.prev,p=e.strstart+u,m=h[s+i-1],g=h[s+i];e.prev_length>=e.good_match&&(a>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(n=t)+i]===g&&h[n+i-1]===m&&h[n]===h[s]&&h[++n]===h[s+1]){s+=2,n++;do{}while(h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&si){if(e.match_start=t,i=r,r>=o)break;m=h[s+i-1],g=h[s+i]}}}while((t=d[t&f])>l&&0!=--a);return i<=e.lookahead?i:e.lookahead}function x(e){var t,n,a,o,l,u,h,f,d,p,m=e.w_size;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-c)){r.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=n=e.hash_size;do{a=e.head[--t],e.head[t]=a>=m?a-m:0}while(--n);t=n=m;do{a=e.prev[--t],e.prev[t]=a>=m?a-m:0}while(--n);o+=m}if(0===e.strm.avail_in)break;if(u=e.strm,h=e.window,f=e.strstart+e.lookahead,d=o,p=void 0,(p=u.avail_in)>d&&(p=d),n=0===p?0:(u.avail_in-=p,r.arraySet(h,u.input,u.next_in,p,f),1===u.state.wrap?u.adler=s(u.adler,h,p,f):2===u.state.wrap&&(u.adler=i(u.adler,h,p,f)),u.next_in+=p,u.total_in+=p,p),e.lookahead+=n,e.lookahead+e.insert>=3)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<=3)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<=3&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=(e.ins_h<15&&(o=2,a-=16),s<1||s>9||8!==n||a<8||a>15||t<0||t>9||i<0||i>4)return p(e,l);8===a&&(a=9);var u=new N;return e.state=u,u.strm=e,u.wrap=o,u.gzhead=null,u.w_bits=a,u.w_size=1<>1,u.l_buf=3*u.lit_bufsize,u.level=t,u.strategy=i,u.method=n,A(e)}C=[new S(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(x(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,b(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-c&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(b(e,!1),e.strm.avail_out),1)})),new S(4,4,8,4,k),new S(4,5,16,8,k),new S(4,6,32,32,k),new S(4,4,16,16,E),new S(8,16,32,32,E),new S(8,16,128,128,E),new S(8,32,128,256,E),new S(32,128,258,1024,E),new S(32,258,258,4096,E)],n.deflateInit=function(e,t){return D(e,t,8,15,8,0)},n.deflateInit2=D,n.deflateReset=A,n.deflateResetKeep=I,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?l:(e.state.gzhead=t,0):l},n.deflate=function(e,t){var n,r,s,o;if(!e||!e.state||t>5||t<0)return e?p(e,l):l;if(r=e.state,!e.output||!e.input&&0!==e.avail_in||r.status===d&&4!==t)return p(e,0===e.avail_out?-5:l);if(r.strm=e,n=r.last_flush,r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,v(r,31),v(r,139),v(r,8),r.gzhead?(v(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),v(r,255&r.gzhead.time),v(r,r.gzhead.time>>8&255),v(r,r.gzhead.time>>16&255),v(r,r.gzhead.time>>24&255),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(v(r,255&r.gzhead.extra.length),v(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=i(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(v(r,0),v(r,0),v(r,0),v(r,0),v(r,0),v(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),v(r,3),r.status=f);else{var c=8+(r.w_bits-8<<4)<<8;c|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(c|=32),c+=31-c%31,r.status=f,w(r,c),0!==r.strstart&&(w(r,e.adler>>>16),w(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(s=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending!==r.pending_buf_size));)v(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){s=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>s&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),y(e),s=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexs&&(e.adler=i(e.adler,r.pending_buf,r.pending-s,s)),0===o&&(r.status=h)}else r.status=h;if(r.status===h&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&y(e),r.pending+2<=r.pending_buf_size&&(v(r,255&e.adler),v(r,e.adler>>8&255),e.adler=0,r.status=f)):r.status=f),0!==r.pending){if(y(e),0===e.avail_out)return r.last_flush=-1,0}else if(0===e.avail_in&&m(t)<=m(n)&&4!==t)return p(e,-5);if(r.status===d&&0!==e.avail_in)return p(e,-5);if(0!==e.avail_in||0!==r.lookahead||0!==t&&r.status!==d){var _=2===r.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(x(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):3===r.strategy?function(e,t){for(var n,r,s,i,o=e.window;;){if(e.lookahead<=u){if(x(e),e.lookahead<=u&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=o[s=e.strstart-1])===o[++s]&&r===o[++s]&&r===o[++s]){i=e.strstart+u;do{}while(r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&r===o[++s]&&se.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(b(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(b(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(b(e,!1),0===e.strm.avail_out)?1:2}(r,t):C[r.level].func(r,t);if(3!==_&&4!==_||(r.status=d),1===_||3===_)return 0===e.avail_out&&(r.last_flush=-1),0;if(2===_&&(1===t?a._tr_align(r):5!==t&&(a._tr_stored_block(r,0,0,!1),3===t&&(g(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),y(e),0===e.avail_out))return r.last_flush=-1,0}return 4!==t?0:r.wrap<=0?1:(2===r.wrap?(v(r,255&e.adler),v(r,e.adler>>8&255),v(r,e.adler>>16&255),v(r,e.adler>>24&255),v(r,255&e.total_in),v(r,e.total_in>>8&255),v(r,e.total_in>>16&255),v(r,e.total_in>>24&255)):(w(r,e.adler>>>16),w(r,65535&e.adler)),y(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},n.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&t!==h&&t!==f&&t!==d?p(e,l):(e.state=null,t===f?p(e,-3):0):l},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],34:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,a,s,i,o,l,u,c,h,f,d,p,m,g,y,b,v,w,_,x,k,E,C,S;n=e.state,r=e.next_in,C=e.input,a=r+(e.avail_in-5),s=e.next_out,S=e.output,i=s-(t-e.avail_out),o=s+(e.avail_out-257),l=n.dmax,u=n.wsize,c=n.whave,h=n.wnext,f=n.window,d=n.hold,p=n.bits,m=n.lencode,g=n.distcode,y=(1<>>=w=v>>>24,p-=w,0==(w=v>>>16&255))S[s++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=m[(65535&v)+(d&(1<>>=w,p-=w),p<15&&(d+=C[r++]<>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=g[(65535&v)+(d&(1<l){e.msg="invalid distance too far back",n.mode=30;break e}if(d>>>=w,p-=w,x>(w=s-i)){if((w=x-w)>c&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(k=0,E=f,0===h){if(k+=u-w,w<_){_-=w;do{S[s++]=f[k++]}while(--w);k=s-x,E=S}}else if(h2;)S[s++]=E[k++],S[s++]=E[k++],S[s++]=E[k++],_-=3;_&&(S[s++]=E[k++],_>1&&(S[s++]=E[k++]))}else{k=s-x;do{S[s++]=S[k++],S[s++]=S[k++],S[s++]=S[k++],_-=3}while(_>2);_&&(S[s++]=S[k++],_>1&&(S[s++]=S[k++]))}break}}break}}while(r>3,d&=(1<<(p-=_<<3))-1,e.next_in=r,e.next_out=s,e.avail_in=r>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function d(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(852),t.distcode=t.distdyn=new r.Buf32(592),t.sane=1,t.back=-1,0):l}function p(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,d(e)):l}function m(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?l:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,p(e))):l}function g(e,t){var n,r;return e?(r=new f,e.state=r,r.window=null,0!==(n=m(e,t))&&(e.state=null),n):l}var y,b,v=!0;function w(e){if(v){var t;for(y=new r.Buf32(512),b=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(o(1,e.lens,0,288,y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;o(2,e.lens,0,32,b,0,e.work,{bits:5}),v=!1}e.lencode=y,e.lenbits=9,e.distcode=b,e.distbits=5}n.inflateReset=p,n.inflateReset2=m,n.inflateResetKeep=d,n.inflateInit=function(e){return g(e,15)},n.inflateInit2=g,n.inflate=function(e,t){var n,f,d,p,m,g,y,b,v,_,x,k,E,C,S,N,I,A,D,T,F,R,O,B,M=0,$=new r.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return l;(n=e.state).mode===u&&(n.mode=13),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,_=g,x=y,R=0;e:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0),b=0,v=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",n.mode=c;break}if(8!=(15&b)){e.msg="unknown compression method",n.mode=c;break}if(v-=4,F=8+(15&(b>>>=4)),0===n.wbits)n.wbits=F;else if(F>n.wbits){e.msg="invalid window size",n.mode=c;break}n.dmax=1<>8&1),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=3;case 3:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>8&255,$[2]=b>>>16&255,$[3]=b>>>24&255,n.check=s(n.check,$,4,0)),b=0,v=0,n.mode=4;case 4:for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>8),512&n.flags&&($[0]=255&b,$[1]=b>>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0,n.mode=5;case 5:if(1024&n.flags){for(;v<16;){if(0===g)break e;g--,b+=f[p++]<>>8&255,n.check=s(n.check,$,2,0)),b=0,v=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((k=n.length)>g&&(k=g),k&&(n.head&&(F=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,f,p,k,F)),512&n.flags&&(n.check=s(n.check,f,k,p)),g-=k,p+=k,n.length-=k),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===g)break e;k=0;do{F=f[p+k++],n.head&&F&&n.length<65536&&(n.head.name+=String.fromCharCode(F))}while(F&&k>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=u;break;case 10:for(;v<32;){if(0===g)break e;g--,b+=f[p++]<>>=7&v,v-=7&v,n.mode=27;break}for(;v<3;){if(0===g)break e;g--,b+=f[p++]<>>=1)){case 0:n.mode=14;break;case 1:if(w(n),n.mode=20,6===t){b>>>=2,v-=2;break e}break;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=c}b>>>=2,v-=2;break;case 14:for(b>>>=7&v,v-=7&v;v<32;){if(0===g)break e;g--,b+=f[p++]<>>16^65535)){e.msg="invalid stored block lengths",n.mode=c;break}if(n.length=65535&b,b=0,v=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(k=n.length){if(k>g&&(k=g),k>y&&(k=y),0===k)break e;r.arraySet(d,f,p,k,m),g-=k,p+=k,y-=k,m+=k,n.length-=k;break}n.mode=u;break;case 17:for(;v<14;){if(0===g)break e;g--,b+=f[p++]<>>=5,v-=5,n.ndist=1+(31&b),b>>>=5,v-=5,n.ncode=4+(15&b),b>>>=4,v-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=c;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,v-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},R=o(0,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,R){e.msg="invalid code lengths set",n.mode=c;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=S,v-=S,n.lens[n.have++]=I;else{if(16===I){for(B=S+2;v>>=S,v-=S,0===n.have){e.msg="invalid bit length repeat",n.mode=c;break}F=n.lens[n.have-1],k=3+(3&b),b>>>=2,v-=2}else if(17===I){for(B=S+3;v>>=S)),b>>>=3,v-=3}else{for(B=S+7;v>>=S)),b>>>=7,v-=7}if(n.have+k>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=c;break}for(;k--;)n.lens[n.have++]=F}}if(n.mode===c)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=c;break}if(n.lenbits=9,O={bits:n.lenbits},R=o(1,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,R){e.msg="invalid literal/lengths set",n.mode=c;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},R=o(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,R){e.msg="invalid distances set",n.mode=c;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(g>=6&&y>=258){e.next_out=m,e.avail_out=y,e.next_in=p,e.avail_in=g,n.hold=b,n.bits=v,i(e,x),m=e.next_out,d=e.output,y=e.avail_out,p=e.next_in,f=e.input,g=e.avail_in,b=n.hold,v=n.bits,n.mode===u&&(n.back=-1);break}for(n.back=0;N=(M=n.lencode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&M,!(A+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=A,v-=A,n.back+=A}if(b>>>=S,v-=S,n.back+=S,n.length=I,0===N){n.mode=26;break}if(32&N){n.back=-1,n.mode=u;break}if(64&N){e.msg="invalid literal/length code",n.mode=c;break}n.extra=15&N,n.mode=22;case 22:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;N=(M=n.distcode[b&(1<>>16&255,I=65535&M,!((S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>A)])>>>16&255,I=65535&M,!(A+(S=M>>>24)<=v);){if(0===g)break e;g--,b+=f[p++]<>>=A,v-=A,n.back+=A}if(b>>>=S,v-=S,n.back+=S,64&N){e.msg="invalid distance code",n.mode=c;break}n.offset=I,n.extra=15&N,n.mode=24;case 24:if(n.extra){for(B=n.extra;v>>=n.extra,v-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=c;break}n.mode=25;case 25:if(0===y)break e;if(k=x-y,n.offset>k){if((k=n.offset-k)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=c;break}k>n.wnext?(k-=n.wnext,E=n.wsize-k):E=n.wnext-k,k>n.length&&(k=n.length),C=n.window}else C=d,E=m-n.offset,k=n.length;k>y&&(k=y),y-=k,n.length-=k;do{d[m++]=C[E++]}while(--k);0===n.length&&(n.mode=21);break;case 26:if(0===y)break e;d[m++]=n.length,y--,n.mode=21;break;case 27:if(n.wrap){for(;v<32;){if(0===g)break e;g--,b|=f[p++]<=i.wsize?(r.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):((s=i.wsize-i.wnext)>a&&(s=a),r.arraySet(i.window,t,n-a,s,i.wnext),(a-=s)?(r.arraySet(i.window,t,n-a,a,0),i.wnext=a,i.whave=i.wsize):(i.wnext+=s,i.wnext===i.wsize&&(i.wnext=0),i.whave=1&&0===B[S];S--);if(N>S&&(N=S),0===S)return u[c++]=20971520,u[c++]=20971520,f.bits=1,0;for(C=1;C0&&(0===e||1!==S))return-1;for(M[1]=0,k=1;k<15;k++)M[k+1]=M[k]+B[k];for(E=0;E852||2===e&&T>592)return 1;for(;;){v=k-A,h[E]b?(w=$[P+h[E]],_=R[O+h[E]]):(w=96,_=0),d=1<>A)+(p-=d)]=v<<24|w<<16|_|0}while(0!==p);for(d=1<>=1;if(0!==d?(F&=d-1,F+=d):F=0,E++,0==--B[k]){if(k===S)break;k=t[n+h[E]]}if(k>N&&(F&g)!==m){for(0===A&&(A=N),y+=C,D=1<<(I=k-A);I+A852||2===e&&T>592)return 1;u[m=F&g]=N<<24|I<<16|y-c|0}}return 0!==F&&(u[y+F]=k-A<<24|64<<16|0),f.bits=N,0}},{"../utils/common":27}],37:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(e,t,n){"use strict";var r=e("../utils/common");function a(e){for(var t=e.length;--t>=0;)e[t]=0}var s=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],i=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],l=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],u=new Array(576);a(u);var c=new Array(60);a(c);var h=new Array(512);a(h);var f=new Array(256);a(f);var d=new Array(29);a(d);var p=new Array(30);a(p);var m,g,y,b=function(e,t,n,r,a){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=a,this.has_stree=e&&e.length},v=function(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t};function w(e){return e<256?h[e]:h[256+(e>>>7)]}function _(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function x(e,t,n){e.bi_valid>16-n?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<>>=1,n<<=1}while(--t>0);return n>>>1}function C(e,t,n){var r,a,s=new Array(16),i=0;for(r=1;r<=15;r++)s[r]=i=i+n[r-1]<<1;for(a=0;a<=t;a++){var o=e[2*a+1];0!==o&&(e[2*a]=E(s[o]++,o))}}function S(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function N(e){e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function I(e,t,n,r){var a=2*t,s=2*n;return e[a]>1;n>=1;n--)A(e,s,n);a=l;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],A(e,s,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,s[2*a]=s[2*n]+s[2*r],e.depth[a]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,s[2*n+1]=s[2*r+1]=a,e.heap[1]=a++,A(e,s,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,a,s,i,o,l=t.dyn_tree,u=t.max_code,c=t.stat_desc.static_tree,h=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=15;s++)e.bl_count[s]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)(s=l[2*l[2*(r=e.heap[n])+1]+1]+1)>p&&(s=p,m++),l[2*r+1]=s,r>u||(e.bl_count[s]++,i=0,r>=d&&(i=f[r-d]),o=l[2*r],e.opt_len+=o*(s+i),h&&(e.static_len+=o*(c[2*r+1]+i)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(m>0);for(s=p;0!==s;s--)for(r=e.bl_count[s];0!==r;)(a=e.heap[--n])>u||(l[2*a+1]!==s&&(e.opt_len+=(s-l[2*a+1])*l[2*a],l[2*a+1]=s),r--)}}(e,t),C(s,u,e.bl_count)}function F(e,t,n){var r,a,s=-1,i=t[1],o=0,l=7,u=4;for(0===i&&(l=138,u=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)a=i,i=t[2*(r+1)+1],++o>=7;r<30;r++)for(p[r]=a<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),T(e,e.l_desc),T(e,e.d_desc),i=function(e){var t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),T(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*l[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),a=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=a&&(a=s)):a=s=n+5,n+4<=a&&-1!==t?B(e,t,n,r):4===e.strategy||s===a?(x(e,2+(r?1:0),3),D(e,u,c)):(x(e,4+(r?1:0),3),function(e,t,n,r){var a;for(x(e,t-257,5),x(e,n-1,5),x(e,r-4,4),a=0;a>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(f[n]+256+1)]++,e.dyn_dtree[2*w(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){x(e,2,3),k(e,256,u),function(e){16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":27}],39:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}]},{},[9])(9)}))},7869:(e,t,n)=>{!function(t){t.version="0.16.9";var r=1200,a=1252;"undefined"==typeof cptable&&(void 0!==n.g?n.g.cptable=n(6113):"undefined"!=typeof window&&(window.cptable=n(6113)));for(var s=[874,932,936,949,950],i=0;i<=8;++i)s.push(1250+i);var o={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},l=function(e){-1!=s.indexOf(e)&&(a=o[0]=e)},u=function(e){r=e,l(e)};function c(){u(1200),l(1252)}function h(e){for(var t=[],n=0,r=e.length;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n)+(e.charCodeAt(2*n+1)<<8));return t.join("")}(e.slice(2)):254==t&&255==n?function(e){for(var t=[],n=0;n>1;++n)t[n]=String.fromCharCode(e.charCodeAt(2*n+1)+(e.charCodeAt(2*n)<<8));return t.join("")}(e.slice(2)):65279==t?e.slice(1):e},d=function(e){return String.fromCharCode(e)},p=function(e){return String.fromCharCode(e)};"undefined"!=typeof cptable&&(u=function(e){r=e,l(e)},f=function(e){return 255===e.charCodeAt(0)&&254===e.charCodeAt(1)?cptable.utils.decode(1200,h(e.slice(2))):e},d=function(e){return 1200===r?String.fromCharCode(e):cptable.utils.decode(r,[255&e,e>>8])[0]},p=function(e){return cptable.utils.decode(a,[e])[0]});var m,g=(m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",{encode:function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0,l=0,u=0;u>2,i=(3&n)<<4|(r=e.charCodeAt(u++))>>4,o=(15&r)<<2|(a=e.charCodeAt(u++))>>6,l=63&a,isNaN(r)?o=l=64:isNaN(a)&&(l=64),t+=m.charAt(s)+m.charAt(i)+m.charAt(o)+m.charAt(l);return t},decode:function(e){var t="",n=0,r=0,a=0,s=0,i=0,o=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var l=0;l>4,t+=String.fromCharCode(n),r=(15&s)<<4|(i=m.indexOf(e.charAt(l++)))>>2,64!==i&&(t+=String.fromCharCode(r)),a=(3&i)<<6|(o=m.indexOf(e.charAt(l++))),64!==o&&(t+=String.fromCharCode(a));return t}}),y="undefined"!=typeof Buffer&&"undefined"!=typeof process&&void 0!==process.versions&&!!process.versions.node,b=function(){};if("undefined"!=typeof Buffer){var v=!Buffer.from;if(!v)try{Buffer.from("foo","utf8")}catch(e){v=!0}b=v?function(e,t){return t?new Buffer(e,t):new Buffer(e)}:Buffer.from.bind(Buffer),Buffer.alloc||(Buffer.alloc=function(e){return new Buffer(e)}),Buffer.allocUnsafe||(Buffer.allocUnsafe=function(e){return new Buffer(e)})}function w(e){return y?Buffer.alloc(e):new Array(e)}function _(e){return y?Buffer.allocUnsafe(e):new Array(e)}var x=function(e){return y?b(e,"binary"):e.split("").map((function(e){return 255&e.charCodeAt(0)}))};function k(e){if("undefined"==typeof ArrayBuffer)return x(e);for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r!=e.length;++r)n[r]=255&e.charCodeAt(r);return t}function E(e){if(Array.isArray(e))return e.map((function(e){return String.fromCharCode(e)})).join("");for(var t=[],n=0;n=0;)t+=e.charAt(n--);return t}function n(e,t){for(var n="";n.length=t?r:n("0",t-r.length)+r}function a(e,t){var r=""+e;return r.length>=t?r:n(" ",t-r.length)+r}function s(e,t){var r=""+e;return r.length>=t?r:r+n(" ",t-r.length)}e.version="0.11.2";var i=Math.pow(2,32);function o(e,t){return e>i||e<-i?function(e,t){var r=""+Math.round(e);return r.length>=t?r:n("0",t-r.length)+r}(e,t):function(e,t){var r=""+e;return r.length>=t?r:n("0",t-r.length)+r}(Math.round(e),t)}function l(e,t){return t=t||0,e.length>=7+t&&103==(32|e.charCodeAt(t))&&101==(32|e.charCodeAt(t+1))&&110==(32|e.charCodeAt(t+2))&&101==(32|e.charCodeAt(t+3))&&114==(32|e.charCodeAt(t+4))&&97==(32|e.charCodeAt(t+5))&&108==(32|e.charCodeAt(t+6))}var u=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],c=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function h(e){e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "'}var f={};h(f);var d=[],p=0;for(p=5;p<=8;++p)d[p]=32+p;for(p=23;p<=26;++p)d[p]=0;for(p=27;p<=31;++p)d[p]=14;for(p=50;p<=58;++p)d[p]=14;for(p=59;p<=62;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-58;for(p=72;p<=75;++p)d[p]=p-58;for(p=67;p<=68;++p)d[p]=p-57;for(p=76;p<=78;++p)d[p]=p-56;for(p=79;p<=81;++p)d[p]=p-34;var m=[];function g(e,t,n){for(var r=e<0?-1:1,a=e*r,s=0,i=1,o=0,l=1,u=0,c=0,h=Math.floor(a);ut&&(u>t?(c=l,o=s):(c=u,o=i)),!n)return[0,r*o,c];var f=Math.floor(r*o/c);return[f,r*o-f*c,c]}function y(e,t,n){if(e>2958465||e<0)return null;var r=0|e,a=Math.floor(86400*(e-r)),s=0,i=[],o={D:r,T:a,u:86400*(e-r)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(o.u)<1e-6&&(o.u=0),t&&t.date1904&&(r+=1462),o.u>.9999&&(o.u=0,86400==++a&&(o.T=a=0,++r,++o.D)),60===r)i=n?[1317,10,29]:[1900,2,29],s=3;else if(0===r)i=n?[1317,8,29]:[1900,1,0],s=6;else{r>60&&--r;var l=new Date(1900,0,1);l.setDate(l.getDate()+r-1),i=[l.getFullYear(),l.getMonth()+1,l.getDate()],s=l.getDay(),r<60&&(s=(s+6)%7),n&&(s=function(e,t){t[0]-=581;var n=e.getDay();return e<60&&(n=(n+6)%7),n}(l,i))}return o.y=i[0],o.m=i[1],o.d=i[2],o.S=a%60,a=Math.floor(a/60),o.M=a%60,a=Math.floor(a/60),o.H=a,o.q=s,o}m[5]=m[63]='"$"#,##0_);\\("$"#,##0\\)',m[6]=m[64]='"$"#,##0_);[Red]\\("$"#,##0\\)',m[7]=m[65]='"$"#,##0.00_);\\("$"#,##0.00\\)',m[8]=m[66]='"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',m[41]='_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',m[42]='_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',m[43]='_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',m[44]='_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)',e.parse_date_code=y;var b=new Date(1899,11,31,0,0,0),v=b.getTime(),w=new Date(1900,2,1,0,0,0);function _(e,t){var n=e.getTime();return t?n-=1262304e5:e>=w&&(n+=864e5),(n-(v+6e4*(e.getTimezoneOffset()-b.getTimezoneOffset())))/864e5}e._general_int=function(e){return e.toString(10)};var x=function(){var e=/(?:\.0*|(\.\d*[1-9])0+)$/;function t(t){return-1==t.indexOf(".")?t:t.replace(e,"$1")}var n=/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,r=/(E[+-])(\d)$/;return function(e){var a,s=Math.floor(Math.log(Math.abs(e))*Math.LOG10E);return a=s>=-4&&s<=-1?e.toPrecision(10+s):Math.abs(s)<=9?function(e){var n=e<0?12:11,r=t(e.toFixed(12));return r.length<=n||(r=e.toPrecision(10)).length<=n?r:e.toExponential(5)}(e):10===s?e.toFixed(10).substr(0,12):function(e){var n=t(e.toFixed(11));return n.length>(e<0?12:11)||"0"===n||"-0"===n?e.toPrecision(6):n}(e),t(function(e){return-1==e.indexOf("E")?e:e.replace(n,"$1E").replace(r,"$10$2")}(a.toUpperCase()))}}();function k(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(0|e)===e?e.toString(10):x(e);case"undefined":return"";case"object":if(null==e)return"";if(e instanceof Date)return O(14,_(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function E(e,t,n,a){var s,i="",o=0,l=0,h=n.y,f=0;switch(e){case 98:h=n.y+543;case 121:switch(t.length){case 1:case 2:s=h%100,f=2;break;default:s=h%1e4,f=4}break;case 109:switch(t.length){case 1:case 2:s=n.m,f=t.length;break;case 3:return c[n.m-1][1];case 5:return c[n.m-1][0];default:return c[n.m-1][2]}break;case 100:switch(t.length){case 1:case 2:s=n.d,f=t.length;break;case 3:return u[n.q][0];default:return u[n.q][1]}break;case 104:switch(t.length){case 1:case 2:s=1+(n.H+11)%12,f=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:s=n.H,f=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:s=n.M,f=t.length;break;default:throw"bad minute format: "+t}break;case 115:if("s"!=t&&"ss"!=t&&".0"!=t&&".00"!=t&&".000"!=t)throw"bad second format: "+t;return 0!==n.u||"s"!=t&&"ss"!=t?(l=a>=2?3===a?1e3:100:1===a?10:1,(o=Math.round(l*(n.S+n.u)))>=60*l&&(o=0),"s"===t?0===o?"0":""+o/l:(i=r(o,2+a),"ss"===t?i.substr(0,2):"."+i.substr(2,t.length-1))):r(n.S,t.length);case 90:switch(t){case"[h]":case"[hh]":s=24*n.D+n.H;break;case"[m]":case"[mm]":s=60*(24*n.D+n.H)+n.M;break;case"[s]":case"[ss]":s=60*(60*(24*n.D+n.H)+n.M)+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+t}f=3===t.length?1:2;break;case 101:s=h,f=1}return f>0?r(s,f):""}function C(e){if(e.length<=3)return e;for(var t=e.length%3,n=e.substr(0,t);t!=e.length;t+=3)n+=(n.length>0?",":"")+e.substr(t,3);return n}e._general_num=x,e._general=k;var S=function(){var e=/%/g;function i(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+i(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),-1===(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).indexOf("e")){var o=Math.floor(Math.log(t)*Math.LOG10E);for(-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(o-n.length+s):n+="E+"+(o-s);"0."===n.substr(0,2);)n=(n=n.charAt(0)+n.substr(2,a)+"."+n.substr(2+a)).replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}var l=/# (\?+)( ?)\/( ?)(\d+)/,u=/^#*0*\.([0#]+)/,c=/\).*[0#]/,h=/\(###\) ###\\?-####/;function f(e){for(var t,n="",r=0;r!=e.length;++r)switch(t=e.charCodeAt(r)){case 35:break;case 63:n+=" ";break;case 48:n+="0";break;default:n+=String.fromCharCode(t)}return n}function d(e,t){var n=Math.pow(10,t);return""+Math.round(e*n)/n}function p(e,t){var n=e-Math.floor(e),r=Math.pow(10,t);return t<(""+Math.round(n*r)).length?0:Math.round(n*r)}function m(y,b,v){if(40===y.charCodeAt(0)&&!b.match(c)){var w=b.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return v>=0?m("n",w,v):"("+m("n",w,-v)+")"}if(44===b.charCodeAt(b.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(y,b,v);if(-1!==b.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(y,b,v);if(-1!==b.indexOf("E"))return i(b,v);if(36===b.charCodeAt(0))return"$"+m(y,b.substr(" "==b.charAt(1)?2:1),v);var _,x,k,E,N=Math.abs(v),I=v<0?"-":"";if(b.match(/^00+$/))return I+o(N,b.length);if(b.match(/^[#?]+$/))return"0"===(_=o(v,0))&&(_=""),_.length>b.length?_:f(b.substr(0,b.length-_.length))+_;if(x=b.match(l))return function(e,t,s){var i=parseInt(e[4],10),o=Math.round(t*i),l=Math.floor(o/i),u=o-l*i,c=i;return s+(0===l?"":""+l)+" "+(0===u?n(" ",e[1].length+1+e[4].length):a(u,e[1].length)+e[2]+"/"+e[3]+r(c,e[4].length))}(x,N,I);if(b.match(/^#+0+$/))return I+o(N,b.length-b.indexOf("0"));if(x=b.match(u))return _=d(v,x[1].length).replace(/^([^\.]+)$/,"$1."+f(x[1])).replace(/\.$/,"."+f(x[1])).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(x[1]).length-t.length)})),-1!==b.indexOf("0.")?_:_.replace(/^0\./,".");if(b=b.replace(/^#+([0.])/,"$1"),x=b.match(/^(0*)\.(#*)$/))return I+d(N,x[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,x[1].length?"0.":".");if(x=b.match(/^#{1,3},##0(\.?)$/))return I+C(o(N,0));if(x=b.match(/^#,##0\.([#0]*0)$/))return v<0?"-"+m(y,b,-v):C(""+(Math.floor(v)+function(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}(v,x[1].length)))+"."+r(p(v,x[1].length),x[1].length);if(x=b.match(/^#,#*,#0/))return m(y,b.replace(/^#,#*,/,""),v);if(x=b.match(/^([0#]+)(\\?-([0#]+))+$/))return _=t(m(y,b.replace(/[\\-]/g,""),v)),k=0,t(t(b.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return k<_.length?_.charAt(k++):"0"===e?"0":""})));if(b.match(h))return"("+(_=m(y,"##########",v)).substr(0,3)+") "+_.substr(3,3)+"-"+_.substr(6);var A="";if(x=b.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/))return k=Math.min(x[4].length,7),E=g(N,Math.pow(10,k)-1,!1),_=""+I," "==(A=S("n",x[1],E[1])).charAt(A.length-1)&&(A=A.substr(0,A.length-1)+"0"),_+=A+x[2]+"/"+x[3],(A=s(E[2],k)).length-2147483648?""+(e>=0?0|e:e-1|0):""+Math.floor(e)}(v)).replace(/^\d,\d{3}$/,"0$&").replace(/^\d*$/,(function(e){return"00,"+(e.length<3?r(0,3-e.length):"")+e}))+"."+r(k,x[1].length);switch(b){case"###,##0.00":return m(y,"#,##0.00",v);case"###,###":case"##,###":case"#,###":var F=C(o(N,0));return"0"!==F?I+F:"";case"###,###.00":return m(y,"###,##0.00",v).replace(/^0\./,".");case"#,###.00":return m(y,"#,##0.00",v).replace(/^0\./,".")}throw new Error("unsupported format |"+b+"|")}function y(e,t){var n,r=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(0==t)return"0.0E+0";if(t<0)return"-"+y(e,-t);var a=e.indexOf(".");-1===a&&(a=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%a;if(s<0&&(s+=a),!(n=(t/Math.pow(10,s)).toPrecision(r+1+(a+s)%a)).match(/[Ee]/)){var i=Math.floor(Math.log(t)*Math.LOG10E);-1===n.indexOf(".")?n=n.charAt(0)+"."+n.substr(1)+"E+"+(i-n.length+s):n+="E+"+(i-s),n=n.replace(/\+-/,"-")}n=n.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,(function(e,t,n,r){return t+n+r.substr(0,(a+s)%a)+"."+r.substr(s)+"E"}))}else n=t.toExponential(r);return e.match(/E\+00$/)&&n.match(/e[+-]\d$/)&&(n=n.substr(0,n.length-1)+"0"+n.charAt(n.length-1)),e.match(/E\-/)&&n.match(/e\+/)&&(n=n.replace(/e\+/,"e")),n.replace("e","E")}function b(i,o,d){if(40===i.charCodeAt(0)&&!o.match(c)){var p=o.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return d>=0?b("n",p,d):"("+b("n",p,-d)+")"}if(44===o.charCodeAt(o.length-1))return function(e,t,n){for(var r=t.length-1;44===t.charCodeAt(r-1);)--r;return S(e,t.substr(0,r),n/Math.pow(10,3*(t.length-r)))}(i,o,d);if(-1!==o.indexOf("%"))return function(t,r,a){var s=r.replace(e,""),i=r.length-s.length;return S(t,s,a*Math.pow(10,2*i))+n("%",i)}(i,o,d);if(-1!==o.indexOf("E"))return y(o,d);if(36===o.charCodeAt(0))return"$"+b(i,o.substr(" "==o.charAt(1)?2:1),d);var m,v,w,_,x=Math.abs(d),k=d<0?"-":"";if(o.match(/^00+$/))return k+r(x,o.length);if(o.match(/^[#?]+$/))return m=""+d,0===d&&(m=""),m.length>o.length?m:f(o.substr(0,o.length-m.length))+m;if(v=o.match(l))return function(e,t,r){return r+(0===t?"":""+t)+n(" ",e[1].length+2+e[4].length)}(v,x,k);if(o.match(/^#+0+$/))return k+r(x,o.length-o.indexOf("0"));if(v=o.match(u))return m=(m=(""+d).replace(/^([^\.]+)$/,"$1."+f(v[1])).replace(/\.$/,"."+f(v[1]))).replace(/\.(\d*)$/,(function(e,t){return"."+t+n("0",f(v[1]).length-t.length)})),-1!==o.indexOf("0.")?m:m.replace(/^0\./,".");if(o=o.replace(/^#+([0.])/,"$1"),v=o.match(/^(0*)\.(#*)$/))return k+(""+x).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,v[1].length?"0.":".");if(v=o.match(/^#{1,3},##0(\.?)$/))return k+C(""+x);if(v=o.match(/^#,##0\.([#0]*0)$/))return d<0?"-"+b(i,o,-d):C(""+d)+"."+n("0",v[1].length);if(v=o.match(/^#,#*,#0/))return b(i,o.replace(/^#,#*,/,""),d);if(v=o.match(/^([0#]+)(\\?-([0#]+))+$/))return m=t(b(i,o.replace(/[\\-]/g,""),d)),w=0,t(t(o.replace(/\\/g,"")).replace(/[0#]/g,(function(e){return w-1||"\\"==n&&"-"==e.charAt(t+1)&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===n;);break;case"*":++t," "!=e.charAt(t)&&"*"!=e.charAt(t)||++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t-1;);break;case" ":default:++t}return!1}function D(e,t,n,r){for(var a,s,i,o=[],u="",c=0,h="",f="t",d="H";c=12?"P":"A"),g.t="T",d="h",c+=3):"AM/PM"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"PM":"AM"),g.t="T",c+=5,d="h"):"上午/下午"===e.substr(c,5).toUpperCase()?(null!=a&&(g.v=a.H>=12?"下午":"上午"),g.t="T",c+=5,d="h"):(g.t="t",++c),null==a&&"T"===g.t)return"";o[o.length]=g,f=h;break;case"[":for(u=h;"]"!==e.charAt(c++)&&c-1&&(u=(u.match(/\$([^-\[\]]*)/)||[])[1]||"$",A(e)||(o[o.length]={t:"t",v:u}));break;case".":if(null!=a){for(u=h;++c-1;)u+=h;o[o.length]={t:"n",v:u};break;case"?":for(u=h;e.charAt(++c)===h;)u+=h;o[o.length]={t:h,v:u},f=h;break;case"*":++c," "!=e.charAt(c)&&"*"!=e.charAt(c)||++c;break;case"(":case")":o[o.length]={t:1===r?"t":h,v:h},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(u=h;c-1;)u+=e.charAt(c);o[o.length]={t:"D",v:u};break;case" ":o[o.length]={t:h,v:h},++c;break;case"$":o[o.length]={t:"t",v:"$"},++c;break;default:if(-1===",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h))throw new Error("unrecognized character "+h+" in "+e);o[o.length]={t:"t",v:h},++c}var b,v=0,w=0;for(c=o.length-1,f="t";c>=0;--c)switch(o[c].t){case"h":case"H":o[c].t=d,f="h",v<1&&(v=1);break;case"s":(b=o[c].v.match(/\.0+$/))&&(w=Math.max(w,b[0].length-1)),v<3&&(v=3);case"d":case"y":case"M":case"e":f=o[c].t;break;case"m":"s"===f&&(o[c].t="M",v<2&&(v=2));break;case"X":break;case"Z":v<1&&o[c].v.match(/[Hh]/)&&(v=1),v<2&&o[c].v.match(/[Mm]/)&&(v=2),v<3&&o[c].v.match(/[Ss]/)&&(v=3)}switch(v){case 0:break;case 1:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M),a.M>=60&&(a.M=0,++a.H);break;case 2:a.u>=.5&&(a.u=0,++a.S),a.S>=60&&(a.S=0,++a.M)}var _,x="";for(c=0;c0){40==x.charCodeAt(0)?(C=t<0&&45===x.charCodeAt(0)?-t:t,N=S("n",x,C)):(N=S("n",x,C=t<0&&r>1?-t:t),C<0&&o[0]&&"t"==o[0].t&&(N=N.substr(1),o[0].v="-"+o[0].v)),_=N.length-1;var T=o.length;for(c=0;c-1){T=c;break}var F=o.length;if(T===o.length&&-1===N.indexOf("E")){for(c=o.length-1;c>=0;--c)null!=o[c]&&-1!=="n?".indexOf(o[c].t)&&(_>=o[c].v.length-1?(_-=o[c].v.length,o[c].v=N.substr(_+1,o[c].v.length)):_<0?o[c].v="":(o[c].v=N.substr(0,_+1),_=-1),o[c].t="t",F=c);_>=0&&F=0;--c)if(null!=o[c]&&-1!=="n?".indexOf(o[c].t)){for(s=o[c].v.indexOf(".")>-1&&c===T?o[c].v.indexOf(".")-1:o[c].v.length-1,D=o[c].v.substr(s+1);s>=0;--s)_>=0&&("0"===o[c].v.charAt(s)||"#"===o[c].v.charAt(s))&&(D=N.charAt(_--)+D);o[c].v=D,o[c].t="t",F=c}for(_>=0&&F-1&&c===T?o[c].v.indexOf(".")+1:0,D=o[c].v.substr(0,s);s-1&&(C=r>1&&t<0&&c>0&&"-"===o[c-1].v?-t:t,o[c].v=S(o[c].t,o[c].v,C),o[c].t="t");var R="";for(c=0;c!==o.length;++c)null!=o[c]&&(R+=o[c].v);return R}e.is_date=A,e._eval=D;var T=/\[[=<>]/,F=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function R(e,t){if(null==t)return!1;var n=parseFloat(t[2]);switch(t[1]){case"=":if(e==n)return!0;break;case">":if(e>n)return!0;break;case"<":if(e":if(e!=n)return!0;break;case">=":if(e>=n)return!0;break;case"<=":if(e<=n)return!0}return!1}function O(e,t,n){null==n&&(n={});var r="";switch(typeof e){case"string":r="m/d/yy"==e&&n.dateNF?n.dateNF:e;break;case"number":null==(r=14==e&&n.dateNF?n.dateNF:(null!=n.table?n.table:f)[e])&&(r=n.table&&n.table[d[e]]||f[d[e]]),null==r&&(r=m[e]||"General")}if(l(r,0))return k(t,n);t instanceof Date&&(t=_(t,n.date1904));var a=function(e,t){var n=N(e),r=n.length,a=n[r-1].indexOf("@");if(r<4&&a>-1&&--r,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if("number"!=typeof t)return[4,4===n.length||a>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=a>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=a>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=a>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"]}var s=t>0?n[0]:t<0?n[1]:n[2];if(-1===n[0].indexOf("[")&&-1===n[1].indexOf("["))return[r,s];if(null!=n[0].match(T)||null!=n[1].match(T)){var i=n[0].match(F),o=n[1].match(F);return R(t,i)?[r,n[0]]:R(t,o)?[r,n[1]]:[r,n[null!=i&&null!=o?2:1]]}return[r,s]}(r,t);if(l(a[1]))return k(t,n);if(!0===t)t="TRUE";else if(!1===t)t="FALSE";else if(""===t||null==t)return"";return D(a[1],t,n,a[0])}function B(e,t){if("number"!=typeof t){t=+t||-1;for(var n=0;n<392;++n)if(null!=f[n]){if(f[n]==e){t=n;break}}else t<0&&(t=n);t<0&&(t=391)}return f[t]=e,t}e.load=B,e._table=f,e.get_table=function(){return f},e.load_table=function(e){for(var t=0;392!=t;++t)void 0!==e[t]&&B(e[t],t)},e.init_table=h,e.format=O};D(A);var T,F={"General Number":"General","General Date":A._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":A._table[15],"Short Date":A._table[14],"Long Time":A._table[19],"Medium Time":A._table[18],"Short Time":A._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:A._table[2],Standard:A._table[4],Percent:A._table[10],Scientific:A._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'},R={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},O=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;!function(e){e.version="1.2.0";var t=function(){for(var e=0,t=new Array(256),n=0;256!=n;++n)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=n)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[n]=e;return"undefined"!=typeof Int32Array?new Int32Array(t):t}();e.table=t,e.bstr=function(e,n){for(var r=-1^n,a=e.length-1,s=0;s>>8^t[255&(r^e.charCodeAt(s++))])>>>8^t[255&(r^e.charCodeAt(s++))];return s===a&&(r=r>>>8^t[255&(r^e.charCodeAt(s))]),-1^r},e.buf=function(e,n){if(e.length>1e4)return function(e,n){for(var r=-1^n,a=e.length-7,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r}(e,n);for(var r=-1^n,a=e.length-3,s=0;s>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])])>>>8^t[255&(r^e[s++])];for(;s>>8^t[255&(r^e[s++])];return-1^r},e.str=function(e,n){for(var r,a,s=-1^n,i=0,o=e.length;i>>8^t[255&(s^r)]:r<2048?s=(s=s>>>8^t[255&(s^(192|r>>6&31))])>>>8^t[255&(s^(128|63&r))]:r>=55296&&r<57344?(r=64+(1023&r),a=1023&e.charCodeAt(i++),s=(s=(s=(s=s>>>8^t[255&(s^(240|r>>8&7))])>>>8^t[255&(s^(128|r>>2&63))])>>>8^t[255&(s^(128|a>>6&15|(3&r)<<4))])>>>8^t[255&(s^(128|63&a))]):s=(s=(s=s>>>8^t[255&(s^(224|r>>12&15))])>>>8^t[255&(s^(128|r>>6&63))])>>>8^t[255&(s^(128|63&r))];return-1^s}}(T={});var B,M=function(){var e,t={};function r(e){if("/"==e.charAt(e.length-1))return-1===e.slice(0,-1).indexOf("/")?e:r(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(0,t+1)}function a(e){if("/"==e.charAt(e.length-1))return a(e.slice(0,-1));var t=e.lastIndexOf("/");return-1===t?e:e.slice(t+1)}function s(e,t){"string"==typeof t&&(t=new Date(t));var n=t.getHours();n=(n=n<<6|t.getMinutes())<<5|t.getSeconds()>>>1,e.write_shift(2,n);var r=t.getFullYear()-1980;r=(r=r<<4|t.getMonth()+1)<<5|t.getDate(),e.write_shift(2,r)}function i(e){Bt(e,0);for(var t={},n=0;e.l<=e.length-4;){var r=e.read_shift(2),a=e.read_shift(2),s=e.l+a,i={};switch(r){case 21589:1&(n=e.read_shift(1))&&(i.mtime=e.read_shift(4)),a>5&&(2&n&&(i.atime=e.read_shift(4)),4&n&&(i.ctime=e.read_shift(4))),i.mtime&&(i.mt=new Date(1e3*i.mtime))}e.l=s,t[r]=i}return t}function o(){return e||(e=n(2993))}function l(e,t){if(80==e[0]&&75==e[1])return he(e,t);if(e.length<512)throw new Error("CFB file size "+e.length+" < 512");var n,r,a,s,i,o,l=512,d=[],p=e.slice(0,512);Bt(p,0);var m=function(e){if(80==e[e.l]&&75==e[e.l+1])return[0,0];e.chk(E,"Header Signature: "),e.l+=16;var t=e.read_shift(2,"u");return[e.read_shift(2,"u"),t]}(p);switch(n=m[0]){case 3:l=512;break;case 4:l=4096;break;case 0:if(0==m[1])return he(e,t);default:throw new Error("Major Version: Expected 3 or 4 saw "+n)}512!==l&&Bt(p=e.slice(0,l),28);var g=e.slice(0,l);!function(e,t){var n;switch(e.l+=2,n=e.read_shift(2)){case 9:if(3!=t)throw new Error("Sector Shift: Expected 9 saw "+n);break;case 12:if(4!=t)throw new Error("Sector Shift: Expected 12 saw "+n);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+n)}e.chk("0600","Mini Sector Shift: "),e.chk("000000000000","Reserved: ")}(p,n);var y=p.read_shift(4,"i");if(3===n&&0!==y)throw new Error("# Directory Sectors: Expected 0 saw "+y);p.l+=4,s=p.read_shift(4,"i"),p.l+=4,p.chk("00100000","Mini Stream Cutoff Size: "),i=p.read_shift(4,"i"),r=p.read_shift(4,"i"),o=p.read_shift(4,"i"),a=p.read_shift(4,"i");for(var b=-1,v=0;v<109&&!((b=p.read_shift(4,"i"))<0);++v)d[v]=b;var w=function(e,t){for(var n=Math.ceil(e.length/t)-1,r=[],a=1;a=a&&(f-=a),!i[f]){l=[];var p=[];for(h=f;h>=0;){p[h]=!0,i[h]=!0,o[o.length]=h,l.push(e[h]);var m=n[Math.floor(4*h/r)];if(r<4+(d=4*h&u))throw new Error("FAT boundary crossed: "+h+" 4 "+r);if(!e[m])break;if(p[h=At(e[m],d)])break}s[f]={nodes:o,data:it([l])}}return s}(w,s,d,l);_[s].name="!Directory",r>0&&i!==k&&(_[i].name="!MiniFAT"),_[d[0]].name="!FAT",_.fat_addrs=d,_.ssz=l;var x=[],C=[],S=[];!function(e,t,n,r,a,s,i,o){for(var l,c=0,d=r.length?2:0,p=t[e].data,m=0,g=0;m0&&c!==k&&(t[c].name="!StreamData")):b.size>=4096?(b.storage="fat",void 0===t[b.start]&&(t[b.start]=h(n,b.start,t.fat_addrs,t.ssz)),t[b.start].name=b.name,b.content=t[b.start].data.slice(0,b.size)):(b.storage="minifat",b.size<0?b.size=0:c!==k&&b.start!==k&&t[c]&&(b.content=u(b,t[c].data,(t[o]||{}).data))),b.content&&Bt(b.content,0),s[l]=b,i.push(b)}}(s,_,w,x,r,{},C,i),function(e,t,n){for(var r=0,a=0,s=0,i=0,o=0,l=n.length,u=[],c=[];r0&&i>=0;)s.push(t.slice(i*v,i*v+v)),a-=v,i=At(n,4*i);return 0===s.length?$t(0):S(s).slice(0,e.size)}function c(e,t,n,r,a){var s=k;if(e===k){if(0!==t)throw new Error("DIFAT chain shorter than expected")}else if(-1!==e){var i=n[e],o=(r>>>2)-1;if(!i)return;for(var l=0;l=0;){a[l]=!0,s[s.length]=l,i.push(e[l]);var c=n[Math.floor(4*l/r)];if(r<4+(u=4*l&o))throw new Error("FAT boundary crossed: "+l+" 4 "+r);if(!e[c])break;l=At(e[c],u)}return{nodes:s,data:it([i])}}function f(e,t){return new Date(1e3*(It(e,t+4)/1e7*Math.pow(2,32)+It(e,t)/1e7-11644473600))}function d(e,t){var n=t||{},r=n.root||"Root Entry";if(e.FullPaths||(e.FullPaths=[]),e.FileIndex||(e.FileIndex=[]),e.FullPaths.length!==e.FileIndex.length)throw new Error("inconsistent CFB structure");0===e.FullPaths.length&&(e.FullPaths[0]=r+"/",e.FileIndex[0]={name:r,type:5}),n.CLSID&&(e.FileIndex[0].clsid=n.CLSID),function(e){var t="Sh33tJ5";if(!M.find(e,"/"+t)){var n=$t(4);n[0]=55,n[1]=n[3]=50,n[2]=54,e.FileIndex.push({name:t,type:2,content:n,size:4,L:69,R:69,C:69}),e.FullPaths.push(e.FullPaths[0]+t),p(e)}}(e)}function p(e,t){d(e);for(var n=!1,s=!1,i=e.FullPaths.length-1;i>=0;--i){var o=e.FileIndex[i];switch(o.type){case 0:s?n=!0:(e.FileIndex.pop(),e.FullPaths.pop());break;case 1:case 2:case 5:s=!0,isNaN(o.R*o.L*o.C)&&(n=!0),o.R>-1&&o.L>-1&&o.R==o.L&&(n=!0);break;default:n=!0}}if(n||t){var l=new Date(1987,1,19),u=0,c=[];for(i=0;i1?1:-1,f.size=0,f.type=5;else if("/"==p.slice(-1)){for(u=i+1;u=c.length?-1:u,u=i+1;u=c.length?-1:u,f.type=1}else r(e.FullPaths[i+1]||"")==r(p)&&(f.R=i+1),f.type=2}}}function m(e,t){var n=t||{};if(p(e),"zip"==n.fileType)return function(e,t){var n=t||{},r=[],a=[],i=$t(1),o=n.compression?8:0,l=0,u=0,c=0,h=0,f=e.FullPaths[0],d=f,p=e.FileIndex[0],m=[],g=0;for(l=1;l0&&(s<4096?t+=s+63>>6:n+=s+511>>9)}}for(var i=e.FullPaths.length+3>>2,o=t+127>>7,l=(t+7>>3)+n+i+o,u=l+127>>7,c=u<=109?0:Math.ceil((u-109)/127);l+u+c+127>>7>u;)c=++u<=109?0:Math.ceil((u-109)/127);var h=[1,c,u,o,i,n,t,0];return e.FileIndex[0].size=t<<6,h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3),h}(e),a=$t(r[7]<<9),i=0,o=0;for(i=0;i<8;++i)a.write_shift(1,C[i]);for(i=0;i<8;++i)a.write_shift(2,0);for(a.write_shift(2,62),a.write_shift(2,3),a.write_shift(2,65534),a.write_shift(2,9),a.write_shift(2,6),i=0;i<3;++i)a.write_shift(2,0);for(a.write_shift(4,0),a.write_shift(4,r[2]),a.write_shift(4,r[0]+r[1]+r[2]+r[3]-1),a.write_shift(4,0),a.write_shift(4,4096),a.write_shift(4,r[3]?r[0]+r[1]+r[2]-1:k),a.write_shift(4,r[3]),a.write_shift(-4,r[1]?r[0]-1:k),a.write_shift(4,r[1]),i=0;i<109;++i)a.write_shift(-4,i>9)));for(l(r[6]+7>>3);511&a.l;)a.write_shift(-4,D.ENDOFCHAIN);for(o=i=0,u=0;u=4096||(h.start=o,l(c+63>>6)));for(;511&a.l;)a.write_shift(-4,D.ENDOFCHAIN);for(i=0;i=4096){for(a.l=h.start+1<<9,u=0;u0&&h.size<4096){for(u=0;u>16|B>>8|B));function V(e,t){var n=W[255&e];return t<=8?n>>>8-t:(n=n<<8|W[e>>8&255],t<=16?n>>>16-t:(n=n<<8|W[e>>16&255])>>>24-t)}function j(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=6?0:e[r+1]<<8))>>>n&3}function H(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=5?0:e[r+1]<<8))>>>n&7}function G(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=3?0:e[r+1]<<8))>>>n&31}function X(e,t){var n=7&t,r=t>>>3;return(e[r]|(n<=1?0:e[r+1]<<8))>>>n&127}function K(e,t,n){var r=7&t,a=t>>>3,s=(1<>>r;return n<8-r?i&s:(i|=e[a+1]<<8-r,n<16-r?i&s:(i|=e[a+2]<<16-r,n<24-r?i&s:(i|=e[a+3]<<24-r)&s))}function q(e,t){var n=e.length,r=2*n>t?2*n:t+5,a=0;if(n>=t)return e;if(y){var s=_(r);if(e.copy)e.copy(s);else for(;a0;)t[t.l++]=e[n++]}return t.l},function(e){var t=$t(50+Math.floor(1.1*e.length)),n=J(e,t);return t.slice(0,n)});function Q(e,t,n){var r=1,a=0,s=0,i=0,o=0,l=e.length,u=z?new Uint16Array(32):Y(32);for(s=0;s<32;++s)u[s]=0;for(s=l;s>r-h,i=(1<=0;--i)t[o|i<>>3;return(e[r]|(n<=4?0:e[r+1]<<8))>>>n&15}(e,t+=5)+4;t+=4;for(var s=0,i=z?new Uint8Array(19):Y(19),o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=1,u=z?new Uint8Array(8):Y(8),c=z?new Uint8Array(8):Y(8),h=i.length,f=0;f>8-p;for(var m=(1<<7-p)-1;m>=0;--m)se[d|m<>>=3){case 16:for(s=3+j(e,t),t+=2,d=g[g.length-1];s-- >0;)g.push(d);break;case 17:for(s=3+H(e,t),t+=3;s-- >0;)g.push(0);break;case 18:for(s=11+X(e,t),t+=7;s-- >0;)g.push(0);break;default:g.push(d),l>>0,o=0,l=0;0==(1&r);)if(r=H(e,n),n+=3,r>>>1!=0)for(r>>>1==1?(o=9,l=5):(n=le(e,n),o=ie,l=oe),!t&&i>>1==1?ee[u]:re[u];if(n+=15&c,0==((c>>>=4)>>>8&255))a[s++]=c;else{if(256==c)break;var h=(c-=257)<8?0:c-4>>2;h>5&&(h=0);var f=s+P[c];h>0&&(f+=K(e,n,h),n+=h),u=K(e,n,l),n+=15&(c=r>>>1==1?te[u]:ae[u]);var d=(c>>>=4)<4?0:c-2>>1,p=L[c];for(d>0&&(p+=K(e,n,d),n+=d),!t&&i>>3]|e[1+(n>>>3)]<<8;if(n+=32,!t&&i>>3,(n>>>3)+m),s+=m,n+=8*m;else for(;m-- >0;)a[s++]=e[n>>>3],n+=8}return[t?a:a.slice(0,s),n+7>>>3]}(e.slice(e.l||0),t);return e.l+=n[1],n[0]}function ce(e,t){if(!e)throw new Error(t);"undefined"!=typeof console&&console.error(t)}function he(e,t){var n=e;Bt(n,0);var r={FileIndex:[],FullPaths:[]};d(r,{root:t.root});for(var a=n.length-4;(80!=n[a]||75!=n[a+1]||5!=n[a+2]||6!=n[a+3])&&a>=0;)--a;n.l=a+4,n.l+=4;var s=n.read_shift(2);n.l+=6;var o=n.read_shift(4);for(n.l=o,a=0;a>>=5);n>>>=4,r.setMilliseconds(0),r.setFullYear(n+1980),r.setMonth(s-1),r.setDate(a);var i=31&t,o=63&(t>>>=5);return t>>>=6,r.setHours(t),r.setMinutes(o),r.setSeconds(i<<1),r}(e);if(8257&s)throw new Error("Unsupported ZIP encryption");for(var u=e.read_shift(4),c=e.read_shift(4),h=e.read_shift(4),f=e.read_shift(2),d=e.read_shift(2),p="",m=0;m3&&(r=!0),a[s].slice(a[s].length-1)){case"Y":throw new Error("Unsupported ISO Duration Field: "+a[s].slice(a[s].length-1));case"D":n*=24;case"H":n*=60;case"M":if(!r)throw new Error("Unsupported ISO Duration Field: M");n*=60}t+=n*parseInt(a[s],10)}return t}var J=new Date("2017-02-19T19:06:09.000Z");isNaN(J.getFullYear())&&(J=new Date("2/19/17"));var Z=2017==J.getFullYear();function Q(e,t){var n=new Date(e);if(Z)return t>0?n.setTime(n.getTime()+60*n.getTimezoneOffset()*1e3):t<0&&n.setTime(n.getTime()-60*n.getTimezoneOffset()*1e3),n;if(e instanceof Date)return e;if(1917==J.getFullYear()&&!isNaN(n.getFullYear())){var r=n.getFullYear();return e.indexOf(""+r)>-1||n.setFullYear(n.getFullYear()+100),n}var a=e.match(/\d+/g)||["2017","2","19","0","0","0"],s=new Date(+a[0],+a[1]-1,+a[2],+a[3]||0,+a[4]||0,+a[5]||0);return e.indexOf("Z")>-1&&(s=new Date(s.getTime()-60*s.getTimezoneOffset()*1e3)),s}function ee(e){for(var t="",n=0;n!=e.length;++n)t+=String.fromCharCode(e[n]);return t}function te(e){if("undefined"!=typeof JSON&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if("object"!=typeof e||null==e)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=te(e[n]));return t}function ne(e,t){for(var n="";n.length8099?n:(a>0||s>1)&&101!=r||e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)?t:e.match(/[^-0-9:,\/\\]/)?n:t}var se,ie=5=="abacaba".split(/(:?b)/i).length;function oe(e){return e?e.data?f(e.data):e.asNodeBuffer&&y?f(e.asNodeBuffer().toString("binary")):e.asBinary?f(e.asBinary()):e._data&&e._data.getContent?f(ee(Array.prototype.slice.call(e._data.getContent(),0))):e.content&&e.type?f(ee(e.content)):null:null}function le(e,t){for(var n=e.FullPaths||z(e.files),r=t.toLowerCase(),a=r.replace(/\//g,"\\"),s=0;s\/]+)\s*=\s*((?:")([^"]*)(?:")|(?:')([^']*)(?:')|([^'">\s]+))/g,ye=/<[\/\?]?[a-zA-Z0-9:_-]+(?:\s+[^"\s?>\/]+\s*=\s*(?:"[^"]*"|'[^']*'|[^'">\s=]+))*\s?[\/\?]?>/gm;me.match(ye)||(ye=/<[^>]*>/g);var be=/<\w*:/,ve=/<(\/?)\w+:/;function we(e,t,n){for(var r={},a=0,s=0;a!==e.length&&32!==(s=e.charCodeAt(a))&&10!==s&&13!==s;++a);if(t||(r[0]=e.slice(0,a)),a===e.length)return r;var i=e.match(ge),o=0,l="",u=0,c="",h="",f=1;if(i)for(u=0;u!=i.length;++u){for(h=i[u],s=0;s!=h.length&&61!==h.charCodeAt(s);++s);for(c=h.slice(0,s).trim();32==h.charCodeAt(s+1);)++s;for(f=34==(a=h.charCodeAt(s+1))||39==a?1:0,l=h.slice(s+1+f,h.length-f),o=0;o!=c.length&&58!==c.charCodeAt(o);++o);if(o===c.length)c.indexOf("_")>0&&(c=c.slice(0,c.indexOf("_"))),r[c]=l,n||(r[c.toLowerCase()]=l);else{var d=(5===o&&"xmlns"===c.slice(0,5)?"xmlns":"")+c.slice(o+1);if(r[d]&&"ext"==c.slice(o-3,o))continue;r[d]=l,n||(r[d.toLowerCase()]=l)}}return r}function _e(e){return e.replace(ve,"<$1")}var xe,ke,Ee={""":'"',"'":"'",">":">","<":"<","&":"&"},Ce=U(Ee),Se=(xe=/&(?:quot|apos|gt|lt|amp|#x?([\da-fA-F]+));/gi,ke=/_x([\da-fA-F]{4})_/gi,function e(t){var n=t+"",r=n.indexOf("-1?16:10))||e})).replace(ke,(function(e,t){return String.fromCharCode(parseInt(t,16))}));var a=n.indexOf("]]>");return e(n.slice(0,r))+n.slice(r+9,a)+e(n.slice(a+3))}),Ne=/[&<>'"]/g,Ie=/[\u0000-\u0008\u000b-\u001f]/g;function Ae(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(Ie,(function(e){return"_x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+"_"}))}function De(e){return Ae(e).replace(/ /g,"_x0020_")}var Te=/[\u0000-\u001f]/g;function Fe(e){return(e+"").replace(Ne,(function(e){return Ce[e]})).replace(/\n/g,"
").replace(Te,(function(e){return"&#x"+("000"+e.charCodeAt(0).toString(16)).slice(-4)+";"}))}var Re=function(){var e=/&#(\d+);/g;function t(e,t){return String.fromCharCode(parseInt(t,10))}return function(n){return n.replace(e,t)}}();function Oe(e){switch(e){case 1:case!0:case"1":case"true":case"TRUE":return!0;default:return!1}}var Be=function(e){for(var t="",n=0,r=0,a=0,s=0,i=0,o=0;n191&&r<224?(i=(31&r)<<6,i|=63&a,t+=String.fromCharCode(i)):(s=e.charCodeAt(n++),r<240?t+=String.fromCharCode((15&r)<<12|(63&a)<<6|63&s):(o=((7&r)<<18|(63&a)<<12|(63&s)<<6|63&(i=e.charCodeAt(n++)))-65536,t+=String.fromCharCode(55296+(o>>>10&1023)),t+=String.fromCharCode(56320+(1023&o)))));return t},Me=function(e){for(var t=[],n=0,r=0,a=0;n>6))),t.push(String.fromCharCode(128+(63&r)));break;case r>=55296&&r<57344:r-=55296,a=e.charCodeAt(n++)-56320+(r<<10),t.push(String.fromCharCode(240+(a>>18&7))),t.push(String.fromCharCode(144+(a>>12&63))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(63&a)));break;default:t.push(String.fromCharCode(224+(r>>12))),t.push(String.fromCharCode(128+(r>>6&63))),t.push(String.fromCharCode(128+(63&r)))}return t.join("")};if(y){var $e=function(e){var t,n,r,a=Buffer.alloc(2*e.length),s=1,i=0,o=0;for(n=0;n>>10&1023),t=56320+(1023&t)),0!==o&&(a[i++]=255&o,a[i++]=o>>>8,o=0),a[i++]=t%256,a[i++]=t>>>8;return a.slice(0,i).toString("ucs2")},Pe="foo bar baz☃🍣";Be(Pe)==$e(Pe)&&(Be=$e);var Le=function(e){return b(e,"binary").toString("utf8")};Be(Pe)==Le(Pe)&&(Be=Le),Me=function(e){return b(e,"utf8").toString("binary")}}var ze,We,Ue,Ve=(ze={},function(e,t){var n=e+"|"+(t||"");return ze[n]?ze[n]:ze[n]=new RegExp("<(?:\\w+:)?"+e+'(?: xml:space="preserve")?(?:[^>]*)>([\\s\\S]*?)",t||"")}),je=(We=[["nbsp"," "],["middot","·"],["quot",'"'],["apos","'"],["gt",">"],["lt","<"],["amp","&"]].map((function(e){return[new RegExp("&"+e[0]+";","ig"),e[1]]})),function(e){for(var t=e.replace(/^[\t\n\r ]+/,"").replace(/[\t\n\r ]+$/,"").replace(/>\s+/g,">").replace(/\s+/g,"\n").replace(/<[^>]*>/g,""),n=0;n([\\s\\S]*?)","g")}),Ge=/<\/?(?:vt:)?variant>/g,Xe=/<(?:vt:)([^>]*)>([\s\S]*)"+t+""}function Je(e){return z(e).map((function(t){return" "+t+'="'+e[t]+'"'})).join("")}function Ze(e,t,n){return"<"+e+(null!=n?Je(n):"")+(null!=t?(t.match(qe)?' xml:space="preserve"':"")+">"+t+""}function Qe(e,t){try{return e.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}return""}var et,tt,nt={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",main:["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"]},rt="urn:schemas-microsoft-com:office:office",at="urn:schemas-microsoft-com:office:excel",st="urn:schemas-microsoft-com:office:spreadsheet",it=function(e){for(var t=[],n=0;n0?ft(e,t+4,t+4+n-1):""},mt=pt,gt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},yt=gt,bt=function(e,t){var n=2*It(e,t);return n>0?ft(e,t+4,t+4+n-1):""},vt=bt;et=tt=function(e,t){var n=It(e,t);return n>0?lt(e,t+4,t+4+n):""};var wt,_t,xt=function(e,t){var n=It(e,t);return n>0?ft(e,t+4,t+4+n):""},kt=xt;wt=_t=function(e,t){return function(e,t){for(var n=1-2*(e[t+7]>>>7),r=((127&e[t+7])<<4)+(e[t+6]>>>4&15),a=15&e[t+6],s=5;s>=0;--s)a=256*a+e[t+s];return 2047==r?0==a?n*(1/0):NaN:(0==r?r=-1022:(r-=1023,a+=Math.pow(2,52)),n*Math.pow(2,r-52)*a)}(e,t)};var Et=function(e){return Array.isArray(e)};y&&(lt=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf16le",t,n).replace(N,""):ut(e,t,n)},ct=function(e,t,n){return Buffer.isBuffer(e)?e.toString("hex",t,t+n):ht(e,t,n)},pt=function(e,t){if(!Buffer.isBuffer(e))return mt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},gt=function(e,t){if(!Buffer.isBuffer(e))return yt(e,t);var n=e.readUInt32LE(t);return n>0?e.toString("utf8",t+4,t+4+n-1):""},bt=function(e,t){if(!Buffer.isBuffer(e))return vt(e,t);var n=2*e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n-1)},et=function(e,t){if(!Buffer.isBuffer(e))return tt(e,t);var n=e.readUInt32LE(t);return e.toString("utf16le",t+4,t+4+n)},xt=function(e,t){if(!Buffer.isBuffer(e))return kt(e,t);var n=e.readUInt32LE(t);return e.toString("utf8",t+4,t+4+n)},ft=function(e,t,n){return Buffer.isBuffer(e)?e.toString("utf8",t,n):dt(e,t,n)},it=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):ot(e)},S=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)},wt=function(e,t){return Buffer.isBuffer(e)?e.readDoubleLE(t):_t(e,t)},Et=function(e){return Buffer.isBuffer(e)||Array.isArray(e)}),"undefined"!=typeof cptable&&(lt=function(e,t,n){return cptable.utils.decode(1200,e.slice(t,n)).replace(N,"")},ft=function(e,t,n){return cptable.utils.decode(65001,e.slice(t,n))},pt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(a,e.slice(t+4,t+4+n-1)):""},gt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(r,e.slice(t+4,t+4+n-1)):""},bt=function(e,t){var n=2*It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n-1)):""},et=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(1200,e.slice(t+4,t+4+n)):""},xt=function(e,t){var n=It(e,t);return n>0?cptable.utils.decode(65001,e.slice(t+4,t+4+n)):""});var Ct=function(e,t){return e[t]},St=function(e,t){return 256*e[t+1]+e[t]},Nt=function(e,t){var n=256*e[t+1]+e[t];return n<32768?n:-1*(65535-n+1)},It=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},At=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},Dt=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function Tt(e,t){var n,a,s,i,o,l,u="",c=[];switch(t){case"dbcs":if(l=this.l,y&&Buffer.isBuffer(this))u=this.slice(this.l,this.l+2*e).toString("utf16le");else for(o=0;o0?At:Dt)(this,this.l),this.l+=4,n):(a=It(this,this.l),this.l+=4,a);case 8:case-8:if("f"===t)return a=8==e?wt(this,this.l):wt([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),this.l+=8,a;e=8;case 16:u=ct(this,this.l,e)}}return this.l+=e,u}var Ft=function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255};function Rt(e,t,n){var r=0,s=0;if("dbcs"===n){for(s=0;s!=t.length;++s)Ft(this,t.charCodeAt(s),this.l+2*s);r=2*t.length}else if("sbcs"===n){if("undefined"!=typeof cptable&&874==a)for(s=0;s!=t.length;++s){var i=cptable.utils.encode(a,t.charAt(s));this[this.l+s]=i[0]}else for(t=t.replace(/[^\x00-\x7F]/g,"_"),s=0;s!=t.length;++s)this[this.l+s]=255&t.charCodeAt(s);r=t.length}else{if("hex"===n){for(;s>8}for(;this.l>>=8,this[this.l+1]=255&t;break;case 3:r=3,this[this.l]=255&t,t>>>=8,this[this.l+1]=255&t,t>>>=8,this[this.l+2]=255&t;break;case 4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255,e[n+3]=t>>>24&255}(this,t,this.l);break;case 8:if(r=8,"f"===n){!function(e,t,n){var r=(t<0||1/t==-1/0?1:0)<<7,a=0,s=0,i=r?-t:t;isFinite(i)?0==i?a=s=0:(a=Math.floor(Math.log(i)/Math.LN2),s=i*Math.pow(2,52-a),a<=-1023&&(!isFinite(s)||s>4|r}(this,t,this.l);break}case 16:break;case-4:r=4,function(e,t,n){e[n]=255&t,e[n+1]=t>>8&255,e[n+2]=t>>16&255,e[n+3]=t>>24&255}(this,t,this.l)}}return this.l+=r,this}function Ot(e,t){var n=ct(this,this.l,e.length>>1);if(n!==e)throw new Error(t+"Expected "+e+" saw "+n);this.l+=e.length>>1}function Bt(e,t){e.l=t,e.read_shift=Tt,e.chk=Ot,e.write_shift=Rt}function Mt(e,t){e.l+=t}function $t(e){var t=w(e);return Bt(t,0),t}function Pt(e,t,n){if(e){var r,a,s;Bt(e,e.l||0);for(var i=e.length,o=0,l=0;e.lr.l&&((r=r.slice(0,r.l)).l=r.length),r.length>0&&e.push(r),r=null)},s=function(e){return r&&e=128?1:0)+1,r>=128&&++a,r>=16384&&++a,r>=2097152&&++a;var i=e.next(a);s<=127?i.write_shift(1,s):(i.write_shift(1,128+(127&s)),i.write_shift(1,s>>7));for(var o=0;4!=o;++o){if(!(r>=128)){i.write_shift(1,r);break}i.write_shift(1,128+(127&r)),r>>=7}r>0&&Et(n)&&e.push(n)}}function Wt(e,t,n){var r=te(e);if(t.s?(r.cRel&&(r.c+=t.s.c),r.rRel&&(r.r+=t.s.r)):(r.cRel&&(r.c+=t.c),r.rRel&&(r.r+=t.r)),!n||n.biff<12){for(;r.c>=256;)r.c-=256;for(;r.r>=65536;)r.r-=65536}return r}function Ut(e,t,n){var r=te(e);return r.s=Wt(r.s,t.s,n),r.e=Wt(r.e,t.s,n),r}function Vt(e,t){if(e.cRel&&e.c<0)for(e=te(e);e.c<0;)e.c+=t>8?16384:256;if(e.rRel&&e.r<0)for(e=te(e);e.r<0;)e.r+=t>8?1048576:t>5?65536:16384;var n=Yt(e);return e.cRel||null==e.cRel||(n=n.replace(/^([A-Z])/,"$$$1")),e.rRel||null==e.rRel||(n=n.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")),n}function jt(e,t){return 0!=e.s.r||e.s.rRel||e.e.r!=(t.biff>=12?1048575:t.biff>=8?65536:16384)||e.e.rRel?0!=e.s.c||e.s.cRel||e.e.c!=(t.biff>=12?16383:255)||e.e.cRel?Vt(e.s,t.biff)+":"+Vt(e.e,t.biff):(e.s.rRel?"":"$")+Gt(e.s.r)+":"+(e.e.rRel?"":"$")+Gt(e.e.r):(e.s.cRel?"":"$")+Kt(e.s.c)+":"+(e.e.cRel?"":"$")+Kt(e.e.c)}function Ht(e){return parseInt(e.replace(/\$(\d+)$/,"$1"),10)-1}function Gt(e){return""+(e+1)}function Xt(e){for(var t=e.replace(/^\$([A-Z])/,"$1"),n=0,r=0;r!==t.length;++r)n=26*n+t.charCodeAt(r)-64;return n-1}function Kt(e){if(e<0)throw new Error("invalid column "+e);var t="";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function qt(e){for(var t=0,n=0,r=0;r=48&&a<=57?t=10*t+(a-48):a>=65&&a<=90&&(n=26*n+(a-64))}return{c:n-1,r:t-1}}function Yt(e){for(var t=e.c+1,n="";t;t=(t-1)/26|0)n=String.fromCharCode((t-1)%26+65)+n;return n+(e.r+1)}function Jt(e){var t=e.indexOf(":");return-1==t?{s:qt(e),e:qt(e)}:{s:qt(e.slice(0,t)),e:qt(e.slice(t+1))}}function Zt(e,t){return void 0===t||"number"==typeof t?Zt(e.s,e.e):("string"!=typeof e&&(e=Yt(e)),"string"!=typeof t&&(t=Yt(t)),e==t?e:e+":"+t)}function Qt(e){var t={s:{c:0,r:0},e:{c:0,r:0}},n=0,r=0,a=0,s=e.length;for(n=0;r26);++r)n=26*n+a;for(t.s.c=--n,n=0;r9);++r)n=10*n+a;if(t.s.r=--n,r===s||58===e.charCodeAt(++r))return t.e.c=t.s.c,t.e.r=t.s.r,t;for(n=0;r!=s&&!((a=e.charCodeAt(r)-64)<1||a>26);++r)n=26*n+a;for(t.e.c=--n,n=0;r!=s&&!((a=e.charCodeAt(r)-48)<0||a>9);++r)n=10*n+a;return t.e.r=--n,t}function en(e,t,n){return null==e||null==e.t||"z"==e.t?"":void 0!==e.w?e.w:("d"==e.t&&!e.z&&n&&n.dateNF&&(e.z=n.dateNF),function(e,t){var n="d"==e.t&&t instanceof Date;if(null!=e.z)try{return e.w=A.format(e.z,n?H(t):t)}catch(e){}try{return e.w=A.format((e.XF||{}).numFmtId||(n?14:0),n?H(t):t)}catch(e){return""+t}}(e,null==t?e.v:t))}function tn(e,t){var n=t&&t.sheet?t.sheet:"Sheet1",r={};return r[n]=e,{SheetNames:[n],Sheets:r}}function nn(e,t,n){var r=n||{},a=e?Array.isArray(e):r.dense,s=e||(a?[]:{}),i=0,o=0;if(s&&null!=r.origin){if("number"==typeof r.origin)i=r.origin;else{var l="string"==typeof r.origin?qt(r.origin):r.origin;i=l.r,o=l.c}s["!ref"]||(s["!ref"]="A1:A1")}var u={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(s["!ref"]){var c=Qt(s["!ref"]);u.s.c=c.s.c,u.s.r=c.s.r,u.e.c=Math.max(u.e.c,c.e.c),u.e.r=Math.max(u.e.r,c.e.r),-1==i&&(u.e.r=i=c.e.r+1)}for(var h=0;h!=t.length;++h)if(t[h]){if(!Array.isArray(t[h]))throw new Error("aoa_to_sheet expects an array of arrays");for(var f=0;f!=t[h].length;++f)if(void 0!==t[h][f]){var d={v:t[h][f]},p=i+h,m=o+f;if(u.s.r>p&&(u.s.r=p),u.s.c>m&&(u.s.c=m),u.e.r0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}function ln(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function un(e,t){var n=e.l,r=e.read_shift(1),a=sn(e),s=[],i={t:a,h:a};if(0!=(1&r)){for(var o=e.read_shift(4),l=0;l!=o;++l)s.push(ln(e));i.r=s}else i.r=[{ich:0,ifnt:0}];return e.l=n+t,i}!function(e,t){var r;if(void 0!==t)r=t;else try{r=n(3906)}catch(e){r=null}e.rc4=function(e,t){var n=new Array(256),r=0,a=0,s=0,i=0;for(a=0;256!=a;++a)n[a]=a;for(a=0;256!=a;++a)s=s+n[a]+e[a%e.length].charCodeAt(0)&255,i=n[a],n[a]=n[s],n[s]=i;a=s=0;var o=w(t.length);for(r=0;r!=t.length;++r)s=(s+n[a=a+1&255])%256,i=n[a],n[a]=n[s],n[s]=i,o[r]=t[r]^n[n[a]+n[s]&255];return o},e.md5=function(e){if(!r)throw new Error("Unsupported crypto");return r.createHash("md5").update(e).digest("hex")}}({},"undefined"!=typeof crypto?crypto:void 0);var cn=un;function hn(e){var t=e.read_shift(4),n=e.read_shift(2);return n+=e.read_shift(1)<<16,e.l++,{c:t,iStyleRef:n}}function fn(e,t){return null==t&&(t=$t(8)),t.write_shift(-4,e.c),t.write_shift(3,e.iStyleRef||e.s),t.write_shift(1,0),t}var dn=sn,pn=on;function mn(e){var t=e.read_shift(4);return 0===t||4294967295===t?"":e.read_shift(t,"dbcs")}function gn(e,t){var n=!1;return null==t&&(n=!0,t=$t(127)),t.write_shift(4,e.length>0?e.length:4294967295),e.length>0&&t.write_shift(0,e,"dbcs"),n?t.slice(0,t.l):t}var yn=sn,bn=mn,vn=gn;function wn(e){var t=e.slice(e.l,e.l+4),n=1&t[0],r=2&t[0];e.l+=4,t[0]&=252;var a=0===r?wt([0,0,0,0,t[0],t[1],t[2],t[3]],0):At(t,0)>>2;return n?a/100:a}function _n(e){var t={s:{},e:{}};return t.s.r=e.read_shift(4),t.e.r=e.read_shift(4),t.s.c=e.read_shift(4),t.e.c=e.read_shift(4),t}var xn=_n,kn=function(e,t){return t||(t=$t(16)),t.write_shift(4,e.s.r),t.write_shift(4,e.e.r),t.write_shift(4,e.s.c),t.write_shift(4,e.e.c),t};function En(e){return e.read_shift(8,"f")}function Cn(e,t){return(t||$t(8)).write_shift(8,e,"f")}function Sn(e,t){if(t||(t=$t(8)),!e||e.auto)return t.write_shift(4,0),t.write_shift(4,0),t;null!=e.index?(t.write_shift(1,2),t.write_shift(1,e.index)):null!=e.theme?(t.write_shift(1,6),t.write_shift(1,e.theme)):(t.write_shift(1,5),t.write_shift(1,0));var n=e.tint||0;if(n>0?n*=32767:n<0&&(n*=32768),t.write_shift(2,n),e.rgb&&null==e.theme){var r=e.rgb||"FFFFFF";"number"==typeof r&&(r=("000000"+r.toString(16)).slice(-6)),t.write_shift(1,parseInt(r.slice(0,2),16)),t.write_shift(1,parseInt(r.slice(2,4),16)),t.write_shift(1,parseInt(r.slice(4,6),16)),t.write_shift(1,255)}else t.write_shift(2,0),t.write_shift(1,0),t.write_shift(1,0);return t}function Nn(e,t){var n=e.read_shift(4);switch(n){case 0:return"";case 4294967295:case 4294967294:return{2:"BITMAP",3:"METAFILEPICT",8:"DIB",14:"ENHMETAFILE"}[e.read_shift(4)]||""}if(n>400)throw new Error("Unsupported Clipboard: "+n.toString(16));return e.l-=4,e.read_shift(0,1==t?"lpstr":"lpwstr")}var In=80,An=[In,81],Dn={1:{n:"CodePage",t:2},2:{n:"Category",t:In},3:{n:"PresentationFormat",t:In},4:{n:"ByteCount",t:3},5:{n:"LineCount",t:3},6:{n:"ParagraphCount",t:3},7:{n:"SlideCount",t:3},8:{n:"NoteCount",t:3},9:{n:"HiddenCount",t:3},10:{n:"MultimediaClipCount",t:3},11:{n:"ScaleCrop",t:11},12:{n:"HeadingPairs",t:4108},13:{n:"TitlesOfParts",t:4126},14:{n:"Manager",t:In},15:{n:"Company",t:In},16:{n:"LinksUpToDate",t:11},17:{n:"CharacterCount",t:3},19:{n:"SharedDoc",t:11},22:{n:"HyperlinksChanged",t:11},23:{n:"AppVersion",t:3,p:"version"},24:{n:"DigSig",t:65},26:{n:"ContentType",t:In},27:{n:"ContentStatus",t:In},28:{n:"Language",t:In},29:{n:"Version",t:In},255:{}},Tn={1:{n:"CodePage",t:2},2:{n:"Title",t:In},3:{n:"Subject",t:In},4:{n:"Author",t:In},5:{n:"Keywords",t:In},6:{n:"Comments",t:In},7:{n:"Template",t:In},8:{n:"LastAuthor",t:In},9:{n:"RevNumber",t:In},10:{n:"EditTime",t:64},11:{n:"LastPrinted",t:64},12:{n:"CreatedDate",t:64},13:{n:"ModifiedDate",t:64},14:{n:"PageCount",t:3},15:{n:"WordCount",t:3},16:{n:"CharCount",t:3},17:{n:"Thumbnail",t:71},18:{n:"Application",t:In},19:{n:"DocSecurity",t:3},255:{}},Fn={2147483648:{n:"Locale",t:19},2147483651:{n:"Behavior",t:19},1919054434:{}};!function(){for(var e in Fn)Object.prototype.hasOwnProperty.call(Fn,e)&&(Dn[e]=Tn[e]=Fn[e])}();var Rn,On=W(Dn,"n"),Bn=W(Tn,"n"),Mn={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"},$n=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"],Pn=te([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].map((function(e){return[e>>16&255,e>>8&255,255&e]}))),Ln={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"},zn=V(Ln),Wn={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty":"TODO","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.ms-office.chartcolorstyle+xml":"TODO","application/vnd.ms-office.chartstyle+xml":"TODO","application/vnd.ms-office.chartex+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"links","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"links","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.openxmlformats-officedocument.themeOverride+xml":"TODO","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"drawings","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO","image/png":"TODO",sheet:"js"},Un=(z(Rn={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xlam:"application/vnd.ms-excel.addin.macroEnabled.main+xml",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},comments:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",xlsb:"application/vnd.ms-excel.comments"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},charts:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",xlsb:"application/vnd.ms-excel.chartsheet"},dialogs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",xlsb:"application/vnd.ms-excel.dialogsheet"},macros:{xlsx:"application/vnd.ms-excel.macrosheet+xml",xlsb:"application/vnd.ms-excel.macrosheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}}).forEach((function(e){["xlsm","xlam"].forEach((function(t){Rn[e][t]||(Rn[e][t]=Rn[e].xlsx)}))})),z(Rn).forEach((function(e){z(Rn[e]).forEach((function(t){Wn[Rn[e][t]]=e}))})),Rn),Vn=function(e){for(var t=[],n=z(e),r=0;r!==n.length;++r)null==t[e[n[r]]]&&(t[e[n[r]]]=[]),t[e[n[r]]].push(n[r]);return t}(Wn);nt.CT="http://schemas.openxmlformats.org/package/2006/content-types";var jn=Ze("Types",null,{xmlns:nt.CT,"xmlns:xsd":nt.xsd,"xmlns:xsi":nt.xsi}),Hn=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["vml","application/vnd.openxmlformats-officedocument.vmlDrawing"],["data","application/vnd.openxmlformats-officedocument.model+data"],["bmp","image/bmp"],["png","image/png"],["gif","image/gif"],["emf","image/x-emf"],["wmf","image/x-wmf"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["tif","image/tiff"],["tiff","image/tiff"],["pdf","application/pdf"],["rels",Vn.rels[0]]].map((function(e){return Ze("Default",null,{Extension:e[0],ContentType:e[1]})})),Gn={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument",HLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",VML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing",XPATH:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",XMISS:"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing",XLINK:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink",CXML:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml",CXMLP:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps",VBA:"http://schemas.microsoft.com/office/2006/relationships/vbaProject"};function Xn(e){var t=e.lastIndexOf("/");return e.slice(0,t+1)+"_rels/"+e.slice(t+1)+".rels"}function Kn(e,t){var n={"!id":{}};if(!e)return n;"/"!==t.charAt(0)&&(t="/"+t);var r={};return(e.match(ye)||[]).forEach((function(e){var a=we(e);if("2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Jn=[Gn.HLINK,Gn.XPATH,Gn.XMISS];function Zn(e,t,n,r,a,s){if(a||(a={}),e["!id"]||(e["!id"]={}),t<0)for(t=1;e["!id"]["rId"+t];++t);if(a.Id="rId"+t,a.Type=r,a.Target=n,s?a.TargetMode=s:Jn.indexOf(a.Type)>-1&&(a.TargetMode="External"),e["!id"][a.Id])throw new Error("Cannot rewrite rId "+t);return e["!id"][a.Id]=a,e[("/"+a.Target).replace("//","/")]=a,t}function Qn(e,t,n){return[' \n',' \n'," \n"].join("")}var er,tr=(er='SheetJS '+t.version+"",function(){return er}),nr=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];nt.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties",Gn.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var rr=function(){for(var e=new Array(nr.length),t=0;t]*>([\\s\\S]*?)")}return e}();function ar(e){var t={};e=Be(e);for(var n=0;n0&&(t[r[1]]=Se(a[1])),"date"===r[2]&&t[r[1]]&&(t[r[1]]=Q(t[r[1]]))}return t}var sr=Ze("cp:coreProperties",null,{"xmlns:cp":nt.CORE_PROPS,"xmlns:dc":nt.dc,"xmlns:dcterms":nt.dcterms,"xmlns:dcmitype":nt.dcmitype,"xmlns:xsi":nt.xsi});function ir(e,t,n,r,a){null==a[e]&&null!=t&&""!==t&&(a[e]=t,t=Ae(t),r[r.length]=n?Ze(e,t,n):Ye(e,t))}var or=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];function lr(e,t,n,r){var a=[];if("string"==typeof e)a=Ke(e,r);else for(var s=0;s0)for(var u=0;u!==a.length;u+=2){switch(l=+a[u+1].v,a[u].v){case"Worksheets":case"工作表":case"Листы":case"أوراق العمل":case"ワークシート":case"גליונות עבודה":case"Arbeitsblätter":case"Çalışma Sayfaları":case"Feuilles de calcul":case"Fogli di lavoro":case"Folhas de cálculo":case"Planilhas":case"Regneark":case"Hojas de cálculo":case"Werkbladen":n.Worksheets=l,n.SheetNames=i.slice(o,o+l);break;case"Named Ranges":case"Rangos con nombre":case"名前付き一覧":case"Benannte Bereiche":case"Navngivne områder":n.NamedRanges=l,n.DefinedNames=i.slice(o,o+l);break;case"Charts":case"Diagramme":n.Chartsheets=l,n.ChartNames=i.slice(o,o+l)}o+=l}}nt.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties",Gn.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";var ur=Ze("Properties",null,{xmlns:nt.EXT_PROPS,"xmlns:vt":nt.vt});nt.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties",Gn.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var cr=/<[^>]+>[^<]*/g,hr=Ze("Properties",null,{xmlns:nt.CUST_PROPS,"xmlns:vt":nt.vt});var fr={Title:"Title",Subject:"Subject",Author:"Author",Keywords:"Keywords",Comments:"Description",LastAuthor:"LastAuthor",RevNumber:"Revision",Application:"AppName",LastPrinted:"LastPrinted",CreatedDate:"Created",ModifiedDate:"LastSaved",Category:"Category",Manager:"Manager",Company:"Company",AppVersion:"Version",ContentStatus:"ContentStatus",Identifier:"Identifier",Language:"Language"},dr=U(fr);function pr(e,t,n){e[t=dr[t]||t]=n}function mr(e){var t=e.read_shift(4),n=e.read_shift(4);return new Date(1e3*(n/1e7*Math.pow(2,32)+t/1e7-11644473600)).toISOString().replace(/\.000/,"")}function gr(e,t,n){var r=e.l,a=e.read_shift(0,"lpstr-cp");if(n)for(;e.l-r&3;)++e.l;return a}function yr(e,t,n){var r=e.read_shift(0,"lpwstr");return n&&(e.l+=4-(r.length+1&3)&3),r}function br(e,t,n){return 31===t?yr(e):gr(e,0,n)}function vr(e,t,n){return br(e,t,!1===n?0:4)}function wr(e){return[kr(e,81),kr(e,3)]}function _r(e,t){for(var n=e.read_shift(4),r={},a=0;a!=n;++a){var s=e.read_shift(4),i=e.read_shift(4);r[s]=e.read_shift(i,1200===t?"utf16le":"utf8").replace(N,"").replace(I,"!"),1200===t&&i%2&&(e.l+=2)}return 3&e.l&&(e.l=e.l>>3<<2),r}function xr(e){var t=e.read_shift(4),n=e.slice(e.l,e.l+t);return e.l+=t,(3&t)>0&&(e.l+=4-(3&t)&3),n}function kr(e,t,n){var r,a=e.read_shift(2),s=n||{};if(e.l+=2,12!==t&&a!==t&&-1===An.indexOf(t))throw new Error("Expected type "+t+" saw "+a);switch(12===t?a:t){case 2:return r=e.read_shift(2,"i"),s.raw||(e.l+=2),r;case 3:return e.read_shift(4,"i");case 11:return 0!==e.read_shift(4);case 19:return e.read_shift(4);case 30:return gr(e,0,4).replace(N,"");case 31:return yr(e);case 64:return mr(e);case 65:return xr(e);case 71:return function(e){var t={};return t.Size=e.read_shift(4),e.l+=t.Size+3-(t.Size-1)%4,t}(e);case 80:return vr(e,a,!s.raw).replace(N,"");case 81:return function(e,t){if(!t)throw new Error("VtUnalignedString must have positive length");return br(e,t,0)}(e,a).replace(N,"");case 4108:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t/2;++r)n.push(wr(e));return n}(e)}(e);case 4126:return function(e){return function(e){for(var t=e.read_shift(4),n=[],r=0;r!=t;++r)n[r]=e.read_shift(0,"lpstr-cp").replace(N,"");return n}(e)}(e);default:throw new Error("TypedPropertyValue unrecognized type "+t+" "+a)}}function Er(e,t){var n=$t(4),r=$t(4);switch(n.write_shift(4,80==e?31:e),e){case 3:r.write_shift(-4,t);break;case 5:(r=$t(8)).write_shift(8,t,"f");break;case 11:r.write_shift(4,t?1:0);break;case 64:r=function(e){var t=("string"==typeof e?new Date(Date.parse(e)):e).getTime()/1e3+11644473600,n=t%Math.pow(2,32),r=(t-n)/Math.pow(2,32);r*=1e7;var a=(n*=1e7)/Math.pow(2,32)|0;a>0&&(n%=Math.pow(2,32),r+=a);var s=$t(8);return s.write_shift(4,n),s.write_shift(4,r),s}(t);break;case 31:case 80:for((r=$t(4+2*(t.length+1)+(t.length%2?0:2))).write_shift(4,t.length+1),r.write_shift(0,t,"dbcs");r.l!=r.length;)r.write_shift(1,0);break;default:throw new Error("TypedPropertyValue unrecognized type "+e+" "+t)}return S([n,r])}function Cr(e,t){var n=e.l,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0,o=0,l=-1,c={};for(i=0;i!=a;++i){var h=e.read_shift(4),f=e.read_shift(4);s[i]=[h,f+n]}s.sort((function(e,t){return e[1]-t[1]}));var d={};for(i=0;i!=a;++i){if(e.l!==s[i][1]){var p=!0;if(i>0&&t)switch(t[s[i-1][0]].t){case 2:e.l+2===s[i][1]&&(e.l+=2,p=!1);break;case 80:case 4108:e.l<=s[i][1]&&(e.l=s[i][1],p=!1)}if((!t||0==i)&&e.l<=s[i][1]&&(p=!1,e.l=s[i][1]),p)throw new Error("Read Error: Expected address "+s[i][1]+" at "+e.l+" :"+i)}if(t){var m=t[s[i][0]];if(d[m.n]=kr(e,m.t,{raw:!0}),"version"===m.p&&(d[m.n]=String(d[m.n]>>16)+"."+("0000"+String(65535&d[m.n])).slice(-4)),"CodePage"==m.n)switch(d[m.n]){case 0:d[m.n]=1252;case 874:case 932:case 936:case 949:case 950:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 1e4:case 1200:case 1201:case 1252:case 65e3:case-536:case 65001:case-535:u(o=d[m.n]>>>0&65535);break;default:throw new Error("Unsupported CodePage: "+d[m.n])}}else if(1===s[i][0]){if(o=d.CodePage=kr(e,2),u(o),-1!==l){var g=e.l;e.l=s[l][1],c=_r(e,o),e.l=g}}else if(0===s[i][0]){if(0===o){l=i,e.l=s[i+1][1];continue}c=_r(e,o)}else{var y,b=c[s[i][0]];switch(e[e.l]){case 65:e.l+=4,y=xr(e);break;case 30:case 31:e.l+=4,y=vr(e,e[e.l-4]).replace(/\u0000+$/,"");break;case 3:e.l+=4,y=e.read_shift(4,"i");break;case 19:e.l+=4,y=e.read_shift(4);break;case 5:e.l+=4,y=e.read_shift(8,"f");break;case 11:e.l+=4,y=Fr(e,4);break;case 64:e.l+=4,y=Q(mr(e));break;default:throw new Error("unparsed value: "+e[e.l])}d[b]=y}}return e.l=n+r,d}var Sr=["CodePage","Thumbnail","_PID_LINKBASE","_PID_HLINKS","SystemIdentifier","FMTID"].concat(["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"]);function Nr(e){switch(typeof e){case"boolean":return 11;case"number":return(0|e)==e?3:5;case"string":return 31;case"object":if(e instanceof Date)return 64}return-1}function Ir(e,t,n){var r=$t(8),a=[],s=[],i=8,o=0,l=$t(8),u=$t(8);if(l.write_shift(4,2),l.write_shift(4,1200),u.write_shift(4,1),s.push(l),a.push(u),i+=8+l.length,!t){(u=$t(8)).write_shift(4,0),a.unshift(u);var c=[$t(4)];for(c[0].write_shift(4,e.length),o=0;o-1)&&null!=e[o][1]){var f=e[o][1],d=0;if(t){var p=n[d=+t[e[o][0]]];if("version"==p.p&&"string"==typeof f){var m=f.split(".");f=(+m[0]<<16)+(+m[1]||0)}l=Er(p.t,f)}else{var g=Nr(f);-1==g&&(g=31,f=String(f)),l=Er(g,f)}s.push(l),(u=$t(8)).write_shift(4,t?d:2+o),a.push(u),i+=8+l.length}var y=8*(s.length+1);for(o=0;o=12?2:1),s="sbcs-cont",i=r;n&&n.biff>=8&&(r=1200),n&&8!=n.biff?12==n.biff&&(s="wstr"):e.read_shift(1)&&(s="dbcs-cont"),n.biff>=2&&n.biff<=5&&(s="cpstr");var o=a?e.read_shift(a,s):"";return r=i,o}function Pr(e){var t=r;r=1200;var n,a=e.read_shift(2),s=e.read_shift(1),i=4&s,o=8&s,l=1+(1&s),u=0,c={};o&&(u=e.read_shift(2)),i&&(n=e.read_shift(4));var h=2==l?"dbcs-cont":"sbcs-cont",f=0===a?"":e.read_shift(a,h);return o&&(e.l+=4*u),i&&(e.l+=n),c.t=f,o||(c.raw=""+c.t+"",c.r=c.t),r=t,c}function Lr(e){var t=e.t||"",n=$t(3);n.write_shift(2,t.length),n.write_shift(1,1);var r=$t(2*t.length);return r.write_shift(2*t.length,t,"utf16le"),S([n,r])}function zr(e,t,n){if(n){if(n.biff>=2&&n.biff<=5)return e.read_shift(t,"cpstr");if(n.biff>=12)return e.read_shift(t,"dbcs-cont")}return 0===e.read_shift(1)?e.read_shift(t,"sbcs-cont"):e.read_shift(t,"dbcs-cont")}function Wr(e,t,n){var r=e.read_shift(n&&2==n.biff?1:2);return 0===r?(e.l++,""):zr(e,r,n)}function Ur(e,t,n){if(n.biff>5)return Wr(e,0,n);var r=e.read_shift(1);return 0===r?(e.l++,""):e.read_shift(r,n.biff<=4||!e.lens?"cpstr":"sbcs-cont")}function Vr(e,t,n){return n||(n=$t(3+2*e.length)),n.write_shift(2,e.length),n.write_shift(1,1),n.write_shift(31,e,"utf16le"),n}function jr(e){var t=e.read_shift(4);return t>0?e.read_shift(t,"utf16le").replace(N,""):""}function Hr(e){var t=$t(512),n=0,r=e.Target,a=r.indexOf("#")>-1?31:23;switch(r.charAt(0)){case"#":a=28;break;case".":a&=-3}t.write_shift(4,2),t.write_shift(4,a);var s=[8,6815827,6619237,4849780,83];for(n=0;n8?4:2;return[e.read_shift(r),e.read_shift(r,"i"),e.read_shift(r,"i")]}function Jr(e){return[e.read_shift(2),wn(e)]}function Zr(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(2),r:t},e:{c:e.read_shift(2),r:n}}}function Qr(e,t){return t||(t=$t(8)),t.write_shift(2,e.s.r),t.write_shift(2,e.e.r),t.write_shift(2,e.s.c),t.write_shift(2,e.e.c),t}function ea(e){var t=e.read_shift(2),n=e.read_shift(2);return{s:{c:e.read_shift(1),r:t},e:{c:e.read_shift(1),r:n}}}var ta=ea;function na(e){e.l+=4;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(2);return e.l+=12,[n,t,r]}function ra(e){e.l+=2,e.l+=e.read_shift(2)}var aa={0:ra,4:ra,5:ra,6:ra,7:function(e){return e.l+=4,e.cf=e.read_shift(2),{}},8:ra,9:ra,10:ra,11:ra,12:ra,13:function(e){var t={};return e.l+=4,e.l+=16,t.fSharedNote=e.read_shift(2),e.l+=4,t},14:ra,15:ra,16:ra,17:ra,18:ra,19:ra,20:ra,21:na};function sa(e,t){var n={BIFFVer:0,dt:0};switch(n.BIFFVer=e.read_shift(2),(t-=2)>=2&&(n.dt=e.read_shift(2),e.l-=2),n.BIFFVer){case 1536:case 1280:case 1024:case 768:case 512:case 2:case 7:break;default:if(t>6)throw new Error("Unexpected BIFF Ver "+n.BIFFVer)}return e.read_shift(t),n}function ia(e,t,n){var r=1536,a=16;switch(n.bookType){case"biff8":break;case"biff5":r=1280,a=8;break;case"biff4":r=4,a=6;break;case"biff3":r=3,a=6;break;case"biff2":r=2,a=4;break;case"xla":break;default:throw new Error("unsupported BIFF version")}var s=$t(a);return s.write_shift(2,r),s.write_shift(2,t),a>4&&s.write_shift(2,29282),a>6&&s.write_shift(2,1997),a>8&&(s.write_shift(2,49161),s.write_shift(2,1),s.write_shift(2,1798),s.write_shift(2,0)),s}function oa(e,t){var n=!t||t.biff>=8?2:1,r=$t(8+n*e.name.length);r.write_shift(4,e.pos),r.write_shift(1,e.hs||0),r.write_shift(1,e.dt),r.write_shift(1,e.name.length),t.biff>=8&&r.write_shift(1,1),r.write_shift(n*e.name.length,e.name,t.biff<8?"sbcs":"utf16le");var a=r.slice(0,r.l);return a.l=r.l,a}function la(e,t,n){var r=0;n&&2==n.biff||(r=e.read_shift(2));var a=e.read_shift(2);return n&&2==n.biff&&(r=1-(a>>15),a&=32767),[{Unsynced:1&r,DyZero:(2&r)>>1,ExAsc:(4&r)>>2,ExDsc:(8&r)>>3},a]}function ua(e,t,n,r){var a=n&&5==n.biff;r||(r=$t(a?3+t.length:5+2*t.length)),r.write_shift(2,e),r.write_shift(a?1:2,t.length),a||r.write_shift(1,1),r.write_shift((a?1:2)*t.length,t,a?"sbcs":"utf16le");var s=r.length>r.l?r.slice(0,r.l):r;return null==s.l&&(s.l=s.length),s}var ca=Ur;function ha(e,t,n){var r=e.l+t,a=8!=n.biff&&n.biff?2:4,s=e.read_shift(a),i=e.read_shift(a),o=e.read_shift(2),l=e.read_shift(2);return e.l=r,{s:{r:s,c:o},e:{r:i,c:l}}}function fa(e,t,n,r){var a=n&&5==n.biff;return r||(r=$t(a?16:20)),r.write_shift(2,0),e.style?(r.write_shift(2,e.numFmtId||0),r.write_shift(2,65524)):(r.write_shift(2,e.numFmtId||0),r.write_shift(2,t<<4)),r.write_shift(4,0),r.write_shift(4,0),a||r.write_shift(4,0),r.write_shift(2,0),r}function da(e,t,n){var r=Kr(e);2==n.biff&&++e.l;var a=function(e){var t=e.read_shift(1);return 1===e.read_shift(1)?t:1===t}(e);return r.val=a,r.t=!0===a||!1===a?"b":"e",r}var pa=function(e,t,n){return 0===t?"":Ur(e,0,n)};function ma(e,t,n){var r,a=e.read_shift(2),s={fBuiltIn:1&a,fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};return 14849===n.sbcch&&(r=function(e,t,n){e.l+=4,t-=4;var r=e.l+t,a=$r(e,0,n),s=e.read_shift(2);if(s!==(r-=e.l))throw new Error("Malformed AddinUdf: padding = "+r+" != "+s);return e.l+=s,a}(e,t-2,n)),s.body=r||e.read_shift(t-2),"string"==typeof r&&(s.Name=r),s}var ga=["_xlnm.Consolidate_Area","_xlnm.Auto_Open","_xlnm.Auto_Close","_xlnm.Extract","_xlnm.Database","_xlnm.Criteria","_xlnm.Print_Area","_xlnm.Print_Titles","_xlnm.Recorder","_xlnm.Data_Form","_xlnm.Auto_Activate","_xlnm.Auto_Deactivate","_xlnm.Sheet_Title","_xlnm._FilterDatabase"];function ya(e,t,n){var r=e.l+t,a=e.read_shift(2),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(n&&2==n.biff?1:2),l=0;(!n||n.biff>=5)&&(5!=n.biff&&(e.l+=2),l=e.read_shift(2),5==n.biff&&(e.l+=2),e.l+=4);var u=zr(e,i,n);32&a&&(u=ga[u.charCodeAt(0)]);var c=r-e.l;return n&&2==n.biff&&--c,{chKey:s,Name:u,itab:l,rgce:r==e.l||0===o?[]:function(e,t,n,r){var a,s=e.l+t,i=Oi(e,r,n);return s!==e.l&&(a=Ri(e,s-e.l,i,n)),[i,a]}(e,c,n,o)}}function ba(e,t,n){if(n.biff<8)return function(e,t,n){3==e[e.l+1]&&e[e.l]++;var r=$r(e,0,n);return 3==r.charCodeAt(0)?r.slice(1):r}(e,0,n);for(var r=[],a=e.l+t,s=e.read_shift(n.biff>8?4:2);0!=s--;)r.push(Yr(e,n.biff,n));if(e.l!=a)throw new Error("Bad ExternSheet: "+e.l+" != "+a);return r}function va(e,t,n){var r=ta(e,6);switch(n.biff){case 2:e.l++,t-=7;break;case 3:case 4:e.l+=2,t-=8;break;default:e.l+=6,t-=12}return[r,Wi(e,t,n)]}var wa=[];function _a(e){var t=$t(24),n=qt(e[0]);t.write_shift(2,n.r),t.write_shift(2,n.r),t.write_shift(2,n.c),t.write_shift(2,n.c);for(var r="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" "),a=0;a<16;++a)t.write_shift(1,parseInt(r[a],16));return S([t,Hr(e[1])])}function xa(e){var t=e[1].Tooltip,n=$t(10+2*(t.length+1));n.write_shift(2,2048);var r=qt(e[0]);n.write_shift(2,r.r),n.write_shift(2,r.r),n.write_shift(2,r.c),n.write_shift(2,r.c);for(var a=0;a=12?4:2,a=e.read_shift(r),s=e.read_shift(r),i=e.read_shift(r),o=e.read_shift(r),l=e.read_shift(2);2==r&&(e.l+=2);var u={s:a,e:s,w:i,ixfe:o,flags:l};return(n.biff>=5||!n.biff)&&(u.level=l>>8&7),u}wa[8]=function(e,t){var n=e.l+t;e.l+=10;var r=e.read_shift(2);e.l+=4,e.l+=2,e.l+=2,e.l+=2,e.l+=4;var a=e.read_shift(1);return e.l+=a,e.l=n,{fmt:r}};var Ea=Kr,Ca=Mr,Sa=Wr,Na=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,255:16969},t=U({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function n(t,n){var r=n||{};return r.dateNF||(r.dateNF="yyyymmdd"),rn(function(t,n){var r=[],a=w(1);switch(n.type){case"base64":a=x(g.decode(t));break;case"binary":a=x(t);break;case"buffer":case"array":a=t}Bt(a,0);var s=a.read_shift(1),i=!1,o=!1,l=!1;switch(s){case 2:case 3:break;case 48:o=!0,i=!0;break;case 49:o=!0;break;case 131:case 139:i=!0;break;case 140:i=!0,l=!0;break;case 245:i=!0;break;default:throw new Error("DBF Unsupported Version: "+s.toString(16))}var u=0,c=0;2==s&&(u=a.read_shift(2)),a.l+=3,2!=s&&(u=a.read_shift(4)),2!=s&&(c=a.read_shift(2));var h=a.read_shift(2),f=1252;2!=s&&(a.l+=16,a.read_shift(1),0!==a[a.l]&&(f=e[a[a.l]]),a.l+=1,a.l+=2),l&&(a.l+=36);for(var d=[],p={},m=c-10-(o?264:0),y=l?32:11;2==s?a.l0;)if(42!==a[a.l])for(++a.l,r[++b]=[],v=0,v=0;v!=d.length;++v){var _=a.slice(a.l,a.l+d[v].len);a.l+=d[v].len,Bt(_,0);var k=cptable.utils.decode(f,_);switch(d[v].type){case"C":r[b][v]=cptable.utils.decode(f,_),r[b][v]=r[b][v].trim();break;case"D":8===k.length?r[b][v]=new Date(+k.slice(0,4),+k.slice(4,6)-1,+k.slice(6,8)):r[b][v]=k;break;case"F":r[b][v]=parseFloat(k.trim());break;case"+":case"I":r[b][v]=l?2147483648^_.read_shift(-4,"i"):_.read_shift(4,"i");break;case"L":switch(k.toUpperCase()){case"Y":case"T":r[b][v]=!0;break;case"N":case"F":r[b][v]=!1;break;case" ":case"?":r[b][v]=!1;break;default:throw new Error("DBF Unrecognized L:|"+k+"|")}break;case"M":if(!i)throw new Error("DBF Unexpected MEMO for type "+s.toString(16));r[b][v]="##MEMO##"+(l?parseInt(k.trim(),10):_.read_shift(4));break;case"N":r[b][v]=+k.replace(/\u0000/g,"").trim();break;case"@":r[b][v]=new Date(_.read_shift(-8,"f")-621356832e5);break;case"T":r[b][v]=new Date(864e5*(_.read_shift(4)-2440588)+_.read_shift(4));break;case"Y":r[b][v]=_.read_shift(4,"i")/1e4;break;case"O":r[b][v]=-_.read_shift(-8,"f");break;case"B":if(o&&8==d[v].len){r[b][v]=_.read_shift(8,"f");break}case"G":case"P":_.l+=d[v].len;break;case"0":if("_NullFlags"===d[v].name)break;default:throw new Error("DBF Unsupported data type "+d[v].type)}}else a.l+=h;if(2!=s&&a.l=0&&u(+s.codepage),"string"==s.type)throw new Error("Cannot write DBF to JS string");var i=Lt(),o=Au(e,{header:1,raw:!0,cellDates:!0}),l=o[0],c=o.slice(1),h=0,f=0,d=0,p=1;for(h=0;h":190,"?":191,"{":223},t=new RegExp("N("+z(e).join("|").replace(/\|\|\|/,"|\\||").replace(/([?()+])/g,"\\$1")+"|\\|)","gm"),n=function(t,n){var r=e[n];return"number"==typeof r?p(r):r},r=function(e,t,n){var r=t.charCodeAt(0)-32<<4|n.charCodeAt(0)-48;return 59==r?e:p(r)};function a(e,a){var s,i=e.split(/[\n\r]+/),o=-1,l=-1,c=0,h=0,f=[],d=[],p=null,m={},g=[],y=[],b=[],v=0;for(+a.codepage>=0&&u(+a.codepage);c!==i.length;++c){v=0;var w,_=i[c].trim().replace(/\x1B([\x20-\x2F])([\x30-\x3F])/g,r).replace(t,n),x=_.replace(/;;/g,"\0").split(";").map((function(e){return e.replace(/\u0000/g,";")})),k=x[0];if(_.length>0)switch(k){case"ID":case"E":case"B":case"O":break;case"P":"P"==x[1].charAt(0)&&d.push(_.slice(3).replace(/;;/g,";"));break;case"C":var E=!1,C=!1;for(h=1;h0?(g[o].hpt=v,g[o].hpx=ys(v)):0===v&&(g[o].hidden=!0);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+_)}N<1&&(p=null);break;default:if(a&&a.WTF)throw new Error("SYLK bad record "+_)}}return g.length>0&&(m["!rows"]=g),y.length>0&&(m["!cols"]=y),a&&a.sheetRows&&(f=f.slice(0,a.sheetRows)),[f,m]}function s(e,t){var n=function(e,t){switch(t.type){case"base64":return a(g.decode(e),t);case"binary":return a(e,t);case"buffer":return a(e.toString("binary"),t);case"array":return a(ee(e),t)}throw new Error("Unrecognized type "+t.type)}(e,t),r=n[0],s=n[1],i=rn(r,t);return z(s).forEach((function(e){i[e]=s[e]})),i}function i(e,t,n,r){var a="C;Y"+(n+1)+";X"+(r+1)+";K";switch(e.t){case"n":a+=e.v||0,e.f&&!e.F&&(a+=";E"+ri(e.f,{r:n,c:r}));break;case"b":a+=e.v?"TRUE":"FALSE";break;case"e":a+=e.w||e.v;break;case"d":a+='"'+(e.w||e.v)+'"';break;case"s":a+='"'+e.v.replace(/"/g,"")+'"'}return a}return e["|"]=254,{to_workbook:function(e,t){return tn(s(e,t),t)},to_sheet:s,from_sheet:function(e,t){var n,r,a=["ID;PWXL;N;E"],s=[],o=Qt(e["!ref"]),l=Array.isArray(e),u="\r\n";a.push("P;PGeneral"),a.push("F;P0;DG0G8;M255"),e["!cols"]&&(r=a,e["!cols"].forEach((function(e,t){var n="F;W"+(t+1)+" "+(t+1)+" ";e.hidden?n+="0":("number"==typeof e.width&&(e.wpx=cs(e.width)),"number"==typeof e.wpx&&(e.wch=hs(e.wpx)),"number"==typeof e.wch&&(n+=Math.round(e.wch)))," "!=n.charAt(n.length-1)&&r.push(n)}))),e["!rows"]&&function(e,t){t.forEach((function(t,n){var r="F;";t.hidden?r+="M0;":t.hpt?r+="M"+20*t.hpt+";":t.hpx&&(r+="M"+20*gs(t.hpx)+";"),r.length>2&&e.push(r+"R"+(n+1))}))}(a,e["!rows"]),a.push("B;Y"+(o.e.r-o.s.r+1)+";X"+(o.e.c-o.s.c+1)+";D"+[o.s.c,o.s.r,o.e.c,o.e.r].join(" "));for(var c=o.s.r;c<=o.e.r;++c)for(var h=o.s.c;h<=o.e.c;++h){var f=Yt({r:c,c:h});(n=l?(e[c]||[])[h]:e[f])&&(null!=n.v||n.f&&!n.F)&&s.push(i(n,0,c,h))}return a.join(u)+u+s.join(u)+u+"E"+u}}}(),Aa=function(){function e(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s)if("BOT"!==n[s].trim()){if(!(r<0)){var o=n[s].trim().split(","),l=o[0],u=o[1],c=n[++s].trim();switch(+l){case-1:if("BOT"===c){i[++r]=[],a=0;continue}if("EOD"!==c)throw new Error("Unrecognized DIF special command "+c);break;case 0:"TRUE"===c?i[r][a]=!0:"FALSE"===c?i[r][a]=!1:isNaN(re(u))?isNaN(ae(u).getDate())?i[r][a]=u:i[r][a]=Q(u):i[r][a]=re(u),++a;break;case 1:c=c.slice(1,c.length-1),i[r][a++]=""!==c?c:null}if("EOD"===c)break}}else i[++r]=[],a=0;return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}function t(t,n){return rn(function(t,n){switch(n.type){case"base64":return e(g.decode(t),n);case"binary":return e(t,n);case"buffer":return e(t.toString("binary"),n);case"array":return e(ee(t),n)}throw new Error("Unrecognized type "+n.type)}(t,n),n)}var n,r;return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:(n=function(e,t,n,r,a){e.push(t),e.push(n+","+r),e.push('"'+a.replace(/"/g,'""')+'"')},r=function(e,t,n,r){e.push(t+","+n),e.push(1==t?'"'+r.replace(/"/g,'""')+'"':r)},function(e){var t,a=[],s=Qt(e["!ref"]),i=Array.isArray(e);n(a,"TABLE",0,1,"sheetjs"),n(a,"VECTORS",0,s.e.r-s.s.r+1,""),n(a,"TUPLES",0,s.e.c-s.s.c+1,""),n(a,"DATA",0,0,"");for(var o=s.s.r;o<=s.e.r;++o){r(a,-1,0,"BOT");for(var l=s.s.c;l<=s.e.c;++l){var u=Yt({r:o,c:l});if(t=i?(e[o]||[])[l]:e[u])switch(t.t){case"n":var c=t.w;c||null==t.v||(c=t.v),null==c?t.f&&!t.F?r(a,1,0,"="+t.f):r(a,1,0,""):r(a,0,c,"V");break;case"b":r(a,0,t.v?1:0,t.v?"TRUE":"FALSE");break;case"s":r(a,1,0,isNaN(t.v)?t.v:'="'+t.v+'"');break;case"d":t.w||(t.w=A.format(t.z||A._table[14],H(Q(t.v)))),r(a,0,t.w,"V");break;default:r(a,1,0,"")}else r(a,1,0,"")}}return r(a,-1,0,"EOD"),a.join("\r\n")})}}(),Da=function(){function e(e){return e.replace(/\\/g,"\\b").replace(/:/g,"\\c").replace(/\n/g,"\\n")}function t(e,t){return rn(function(e,t){for(var n=e.split("\n"),r=-1,a=-1,s=0,i=[];s!==n.length;++s){var o=n[s].trim().split(":");if("cell"===o[0]){var l=qt(o[1]);if(i.length<=l.r)for(r=i.length;r<=l.r;++r)i[r]||(i[r]=[]);switch(r=l.r,a=l.c,o[2]){case"t":i[r][a]=o[3].replace(/\\b/g,"\\").replace(/\\c/g,":").replace(/\\n/g,"\n");break;case"v":i[r][a]=+o[3];break;case"vtf":var u=o[o.length-1];case"vtc":switch(o[3]){case"nl":i[r][a]=!!+o[4];break;default:i[r][a]=+o[4]}"vtf"==o[2]&&(i[r][a]=[i[r][a],u])}}}return t&&t.sheetRows&&(i=i.slice(0,t.sheetRows)),i}(e,t),t)}var n=["socialcalc:version:1.5","MIME-Version: 1.0","Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave"].join("\n"),r=["--SocialCalcSpreadsheetControlSave","Content-type: text/plain; charset=UTF-8"].join("\n")+"\n",a=["# SocialCalc Spreadsheet Control Save","part:sheet"].join("\n"),s="--SocialCalcSpreadsheetControlSave--";function i(t){if(!t||!t["!ref"])return"";for(var n,r=[],a=[],s="",i=Jt(t["!ref"]),o=Array.isArray(t),l=i.s.r;l<=i.e.r;++l)for(var u=i.s.c;u<=i.e.c;++u)if(s=Yt({r:l,c:u}),(n=o?(t[l]||[])[u]:t[s])&&null!=n.v&&"z"!==n.t){switch(a=["cell",s,"t"],n.t){case"s":case"str":a.push(e(n.v));break;case"n":n.f?(a[2]="vtf",a[3]="n",a[4]=n.v,a[5]=e(n.f)):(a[2]="v",a[3]=n.v);break;case"b":a[2]="vt"+(n.f?"f":"c"),a[3]="nl",a[4]=n.v?"1":"0",a[5]=e(n.f||(n.v?"TRUE":"FALSE"));break;case"d":var c=H(Q(n.v));a[2]="vtc",a[3]="nd",a[4]=""+c,a[5]=n.w||A.format(n.z||A._table[14],c);break;case"e":continue}r.push(a.join(":"))}return r.push("sheet:c:"+(i.e.c-i.s.c+1)+":r:"+(i.e.r-i.s.r+1)+":tvf:1"),r.push("valueformat:1:text-wiki"),r.join("\n")}return{to_workbook:function(e,n){return tn(t(e,n),n)},to_sheet:t,from_sheet:function(e){return[n,r,a,r,i(e),s].join("\n")}}}(),Ta=function(){function e(e,t,n,r,a){a.raw?t[n][r]=e:"TRUE"===e?t[n][r]=!0:"FALSE"===e?t[n][r]=!1:""===e||(isNaN(re(e))?isNaN(ae(e).getDate())?t[n][r]=e:t[n][r]=Q(e):t[n][r]=re(e))}var t={44:",",9:"\t",59:";"},n={44:3,9:2,59:1};function r(e,r){var a=r||{},s="",i=a.dense?[]:{},o={s:{c:0,r:0},e:{c:0,r:0}};"sep="==e.slice(0,4)?13==e.charCodeAt(5)&&10==e.charCodeAt(6)?(s=e.charAt(4),e=e.slice(7)):13!=e.charCodeAt(5)&&10!=e.charCodeAt(5)||(s=e.charAt(4),e=e.slice(6)):s=function(e){for(var r={},a=!1,s=0,i=0;s=0?o=u:a=u}})),l>=0&&-1==o&&a>=0&&(o=a,a=-1);var u=(""+(r>=0?r:(new Date).getFullYear())).slice(-4)+"-"+("00"+(a>=1?a:1)).slice(-2)+"-"+("00"+(s>=1?s:1)).slice(-2);7==u.length&&(u="0"+u),8==u.length&&(u="20"+u);var c=("00"+(i>=0?i:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(l>=0?l:0)).slice(-2);return-1==i&&-1==o&&-1==l?u:-1==r&&-1==a&&-1==s?c:u+"T"+c}(0,a.dateNF,t.match(b)||[]),r=1),a.cellDates?(n.t="d",n.v=Q(t,r)):(n.t="n",n.v=H(Q(t,r))),!1!==a.cellText&&(n.w=A.format(n.z,n.v instanceof Date?H(n.v):n.v)),a.cellNF||delete n.z}else n.t="s",n.v=t;else n.t="n",!1!==a.cellText&&(n.w=t),n.v=c;if("z"==n.t||(a.dense?(i[l]||(i[l]=[]),i[l][u]=n):i[Yt({c:u,r:l})]=n),h=f+1,o.e.c0&&v(),i["!ref"]=Zt(o),i}function a(t,n){var a="",s="string"==n.type?[0,0,0,0]:yu(t,n);switch(n.type){case"base64":a=g.decode(t);break;case"binary":a=t;break;case"buffer":a=65001==n.codepage?t.toString("utf8"):n.codepage&&"undefined"!=typeof cptable?cptable.utils.decode(n.codepage,t):t.toString("binary");break;case"array":a=ee(t);break;case"string":a=t;break;default:throw new Error("Unrecognized type "+n.type)}return 239==s[0]&&187==s[1]&&191==s[2]?a=Be(a.slice(3)):"binary"==n.type&&"undefined"!=typeof cptable&&n.codepage&&(a=cptable.utils.decode(n.codepage,cptable.utils.encode(1252,a))),"socialcalc:version:"==a.slice(0,19)?Da.to_sheet("string"==n.type?a:Be(a),n):function(t,n){return n&&n.PRN?"sep="==t.slice(0,4)||t.indexOf("\t")>=0||t.indexOf(",")>=0||t.indexOf(";")>=0?r(t,n):rn(function(t,n){var r=n||{},a=[];if(!t||0===t.length)return a;for(var s=t.split(/[\r\n]/),i=s.length-1;i>=0&&0===s[i].length;)--i;for(var o=10,l=0,u=0;u<=i;++u)-1==(l=s[u].indexOf(" "))?l=s[u].length:l++,o=Math.max(o,l);for(u=0;u<=i;++u){a[u]=[];var c=0;for(e(s[u].slice(0,o).trim(),a,u,c,r),c=1;c<=(s[u].length-o)/10+1;++c)e(s[u].slice(o+10*(c-1),o+10*c).trim(),a,u,c,r)}return r.sheetRows&&(a=a.slice(0,r.sheetRows)),a}(t,n),n):r(t,n)}(a,n)}return{to_workbook:function(e,t){return tn(a(e,t),t)},to_sheet:a,from_sheet:function(e){for(var t,n=[],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){for(var i=[],o=r.s.c;o<=r.e.c;++o){var l=Yt({r:s,c:o});if((t=a?(e[s]||[])[o]:e[l])&&null!=t.v){for(var u=(t.w||(en(t),t.w)||"").slice(0,10);u.length<10;)u+=" ";i.push(u+(0===o?" ":""))}else i.push(" ")}n.push(i.join(""))}return n.join("\n")}}}(),Fa=function(){function e(e,t){if(!e)return e;var n=t||{},r=n.dense?[]:{},a="Sheet1",s=0,l={},u=[a],c={s:{r:0,c:0},e:{r:0,c:0}},h=n.sheetRows||0;if(2==e[2])n.Enum=i;else if(26==e[2])n.Enum=o;else{if(14!=e[2])throw new Error("Unrecognized LOTUS BOF "+e[2]);n.Enum=o,n.qpro=!0,e.l=0}return function(e,t,n){if(e){Bt(e,e.l||0);for(var r=n.Enum||i;e.l=4096&&(n.qpro=!0);break;case 6:c=t;break;case 15:n.qpro||(t[1].v=t[1].v.slice(1));case 13:case 14:case 16:case 51:14==o&&112==(112&t[2])&&(15&t[2])>1&&(15&t[2])<15&&(t[1].z=n.dateNF||A._table[14],n.cellDates&&(t[1].t="d",t[1].v=q(t[1].v))),n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Yt(t[0])]=t[1]}else switch(o){case 22:t[1].v=t[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(t[3]>s&&(r["!ref"]=Zt(c),l[a]=r,r=n.dense?[]:{},c={s:{r:0,c:0},e:{r:0,c:0}},s=t[3],a="Sheet"+(s+1),u.push(a)),h>0&&t[0].r>=h)break;n.dense?(r[t[0].r]||(r[t[0].r]=[]),r[t[0].r][t[0].c]=t[1]):r[Yt(t[0])]=t[1],c.e.c0?s<>>-i)+(i>-32?a<>>-(i+32))),n}function s(e,t){var n=r(e),a=e.read_shift(8,"f");return n[1].v=a,n}var i={0:{n:"BOF",f:Or},1:{n:"EOF"},2:{n:"CALCMODE"},3:{n:"CALCORDER"},4:{n:"SPLIT"},5:{n:"SYNC"},6:{n:"RANGE",f:function(e){var t={s:{c:0,r:0},e:{c:0,r:0}};return t.s.c=e.read_shift(2),t.s.r=e.read_shift(2),t.e.c=e.read_shift(2),t.e.r=e.read_shift(2),65535==t.s.c&&(t.s.c=t.e.c=t.s.r=t.e.r=0),t}},7:{n:"WINDOW1"},8:{n:"COLW1"},9:{n:"WINTWO"},10:{n:"COLW2"},11:{n:"NAME"},12:{n:"BLANK"},13:{n:"INTEGER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(2,"i"),a}},14:{n:"NUMBER",f:function(e,n,r){var a=t(e,0,r);return a[1].v=e.read_shift(8,"f"),a}},15:{n:"LABEL",f:n},16:{n:"FORMULA",f:function(e,n,r){var a=e.l+n,s=t(e,0,r);if(s[1].v=e.read_shift(8,"f"),r.qpro)e.l=a;else{var i=e.read_shift(2);e.l+=i}return s}},24:{n:"TABLE"},25:{n:"ORANGE"},26:{n:"PRANGE"},27:{n:"SRANGE"},28:{n:"FRANGE"},29:{n:"KRANGE1"},32:{n:"HRANGE"},35:{n:"KRANGE2"},36:{n:"PROTEC"},37:{n:"FOOTER"},38:{n:"HEADER"},39:{n:"SETUP"},40:{n:"MARGINS"},41:{n:"LABELFMT"},42:{n:"TITLES"},43:{n:"SHEETJS"},45:{n:"GRAPH"},46:{n:"NGRAPH"},47:{n:"CALCCOUNT"},48:{n:"UNFORMATTED"},49:{n:"CURSORW12"},50:{n:"WINDOW"},51:{n:"STRING",f:n},55:{n:"PASSWORD"},56:{n:"LOCKED"},60:{n:"QUERY"},61:{n:"QUERYNAME"},62:{n:"PRINT"},63:{n:"PRINTNAME"},64:{n:"GRAPH2"},65:{n:"GRAPHNAME"},66:{n:"ZOOM"},67:{n:"SYMSPLIT"},68:{n:"NSROWS"},69:{n:"NSCOLS"},70:{n:"RULER"},71:{n:"NNAME"},72:{n:"ACOMM"},73:{n:"AMACRO"},74:{n:"PARSE"},255:{n:"",f:Mt}},o={0:{n:"BOF"},1:{n:"EOF"},3:{n:"??"},4:{n:"??"},5:{n:"??"},6:{n:"??"},7:{n:"??"},9:{n:"??"},10:{n:"??"},11:{n:"??"},12:{n:"??"},14:{n:"??"},15:{n:"??"},16:{n:"??"},17:{n:"??"},18:{n:"??"},19:{n:"??"},21:{n:"??"},22:{n:"LABEL16",f:function(e,t){var n=r(e);return n[1].t="s",n[1].v=e.read_shift(t-4,"cstr"),n}},23:{n:"NUMBER17",f:a},24:{n:"NUMBER18",f:function(e,t){var n=r(e);n[1].v=e.read_shift(2);var a=n[1].v>>1;if(1&n[1].v)switch(7&a){case 1:a=500*(a>>3);break;case 2:a=(a>>3)/20;break;case 4:a=(a>>3)/2e3;break;case 6:a=(a>>3)/16;break;case 7:a=(a>>3)/64;break;default:throw"unknown NUMBER_18 encoding "+(7&a)}return n[1].v=a,n}},25:{n:"FORMULA19",f:function(e,t){var n=a(e);return e.l+=t-14,n}},26:{n:"??"},27:{n:"??"},28:{n:"??"},29:{n:"??"},30:{n:"??"},31:{n:"??"},33:{n:"??"},37:{n:"NUMBER25",f:function(e,t){var n=r(e),a=e.read_shift(4);return n[1].v=a>>6,n}},39:{n:"NUMBER27",f:s},40:{n:"FORMULA28",f:function(e,t){var n=s(e);return e.l+=t-10,n}},255:{n:"",f:Mt}};return{to_workbook:function(t,n){switch(n.type){case"base64":return e(x(g.decode(t)),n);case"binary":return e(x(t),n);case"buffer":case"array":return e(t,n)}throw"Unsupported type "+n.type}}}(),Ra=function(){var e=Ve("t"),t=Ve("rPr");function n(n){var r=n.match(e);if(!r)return{t:"s",v:""};var a={t:"s",v:Se(r[1])},s=n.match(t);return s&&(a.s=function(e){var t={},n=e.match(ye),r=0,a=!1;if(n)for(;r!=n.length;++r){var s=we(n[r]);switch(s[0].replace(/\w*:/g,"")){case"":case"":t.shadow=1;break;case"":break;case"":case"":t.outline=1;break;case"":break;case"":case"":t.strike=1;break;case"":break;case"":case"":t.u=1;break;case"":break;case"":case"":t.b=1;break;case"":break;case"":case"":t.i=1;break;case"":break;case"":case"":break;case"":a=!1;break;default:if(47!==s[0].charCodeAt(1)&&!a)throw new Error("Unrecognized rich format "+s[0])}}return t}(s[1])),a}var r=/<(?:\w+:)?r>/g,a=/<\/(?:\w+:)?r>/;return function(e){return e.replace(r,"").split(a).map(n).filter((function(e){return e.v}))}}(),Oa=function(){var e=/(\r\n|\n)/g;function t(t){var n=[[],t.v,[]];return t.v?(t.s&&function(e,t,n){var r=[];e.u&&r.push("text-decoration: underline;"),e.uval&&r.push("text-underline-style:"+e.uval+";"),e.sz&&r.push("font-size:"+e.sz+"pt;"),e.outline&&r.push("text-effect: outline;"),e.shadow&&r.push("text-shadow: auto;"),t.push(''),e.b&&(t.push(""),n.push("")),e.i&&(t.push(""),n.push("")),e.strike&&(t.push(""),n.push(""));var a=e.valign||"";"superscript"==a||"super"==a?a="sup":"subscript"==a&&(a="sub"),""!=a&&(t.push("<"+a+">"),n.push("")),n.push("")}(t.s,n[0],n[2]),n[0].join("")+n[1].replace(e,"
")+n[2].join("")):""}return function(e){return e.map(t).join("")}}(),Ba=/<(?:\w+:)?t[^>]*>([^<]*)<\/(?:\w+:)?t>/g,Ma=/<(?:\w+:)?r>/,$a=/<(?:\w+:)?rPh.*?>([\s\S]*?)<\/(?:\w+:)?rPh>/g;function Pa(e,t){var n=!t||t.cellHTML,r={};return e?(e.match(/^\s*<(?:\w+:)?t[^>]*>/)?(r.t=Se(Be(e.slice(e.indexOf(">")+1).split(/<\/(?:\w+:)?t>/)[0]||"")),r.r=Be(e),n&&(r.h=Fe(r.t))):e.match(Ma)&&(r.r=Be(e),r.t=Se(Be((e.replace($a,"").match(Ba)||[]).join("").replace(ye,""))),n&&(r.h=Oa(Ra(r.r)))),r):{t:""}}var La=/<(?:\w+:)?sst([^>]*)>([\s\S]*)<\/(?:\w+:)?sst>/,za=/<(?:\w+:)?(?:si|sstItem)>/g,Wa=/<\/(?:\w+:)?(?:si|sstItem)>/;Gn.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var Ua=/^\s|\s$|[\t\n\r]/;function Va(e,t){if(!t.bookSST)return"";var n=[me];n[n.length]=Ze("sst",null,{xmlns:nt.main[0],count:e.Count,uniqueCount:e.Unique});for(var r=0;r!=e.length;++r)if(null!=e[r]){var a=e[r],s="";a.r?s+=a.r:(s+=""),s+="",n[n.length]=s}return n.length>2&&(n[n.length]="",n[1]=n[1].replace("/>",">")),n.join("")}var ja=function(e,t){var n=!1;return null==t&&(n=!0,t=$t(15+4*e.t.length)),t.write_shift(1,0),on(e.t,t),n?t.slice(0,t.l):t};function Ha(e){var t=Lt();zt(t,"BrtBeginSst",function(e,t){return t||(t=$t(8)),t.write_shift(4,e.Count),t.write_shift(4,e.Unique),t}(e));for(var n=0;n=4&&(e.l+=t-4),n}function Ka(e){for(var t=e.read_shift(4),n=e.l+t-4,r={},a=e.read_shift(4),s=[];a-- >0;)s.push({t:e.read_shift(4),v:e.read_shift(0,"lpp4")});if(r.name=e.read_shift(0,"lpp4"),r.comps=s,e.l!=n)throw new Error("Bad DataSpaceMapEntry: "+e.l+" != "+n);return r}function qa(e,t){var n=e.l+t,r={};r.Flags=63&e.read_shift(4),e.l+=4,r.AlgID=e.read_shift(4);var a=!1;switch(r.AlgID){case 26126:case 26127:case 26128:a=36==r.Flags;break;case 26625:a=4==r.Flags;break;case 0:a=16==r.Flags||4==r.Flags||36==r.Flags;break;default:throw"Unrecognized encryption algorithm: "+r.AlgID}if(!a)throw new Error("Encryption Flags/AlgID mismatch");return r.AlgIDHash=e.read_shift(4),r.KeySize=e.read_shift(4),r.ProviderType=e.read_shift(4),e.l+=8,r.CSPName=e.read_shift(n-e.l>>1,"utf16le"),e.l=n,r}function Ya(e,t){var n={},r=e.l+t;return e.l+=4,n.Salt=e.slice(e.l,e.l+16),e.l+=16,n.Verifier=e.slice(e.l,e.l+16),e.l+=16,e.read_shift(4),n.VerifierHash=e.slice(e.l,r),e.l=r,n}function Ja(e){if(36!=(63&e.read_shift(4)))throw new Error("EncryptionInfo mismatch");var t=e.read_shift(4);return{t:"Std",h:qa(e,t),v:Ya(e,e.length-e.l)}}function Za(){throw new Error("File is password-protected: ECMA-376 Extensible")}function Qa(e){var t=["saltSize","blockSize","keyBits","hashSize","cipherAlgorithm","cipherChaining","hashAlgorithm","saltValue"];e.l+=4;var n=e.read_shift(e.length-e.l,"utf8"),r={};return n.replace(ye,(function(e){var n=we(e);switch(_e(n[0])){case"":break;case"":case"":break;case"":break;case"=0;--n)r=((0==(16384&r)?0:1)|r<<1&32767)^t[n];return 52811^r}var ts,ns,rs,as,ss=(ts=[187,255,255,186,255,255,185,128,0,190,15,0,191,15,0],ns=[57840,7439,52380,33984,4364,3600,61902,12606,6258,57657,54287,34041,10252,43370,20163],rs=[44796,19929,39858,10053,20106,40212,10761,31585,63170,64933,60267,50935,40399,11199,17763,35526,1453,2906,5812,11624,23248,885,1770,3540,7080,14160,28320,56640,55369,41139,20807,41614,21821,43642,17621,28485,56970,44341,19019,38038,14605,29210,60195,50791,40175,10751,21502,43004,24537,18387,36774,3949,7898,15796,31592,63184,47201,24803,49606,37805,14203,28406,56812,17824,35648,1697,3394,6788,13576,27152,43601,17539,35078,557,1114,2228,4456,30388,60776,51953,34243,7079,14158,28316,14128,28256,56512,43425,17251,34502,7597,13105,26210,52420,35241,883,1766,3532,4129,8258,16516,33032,4657,9314,18628],as=function(e,t){return 255&((n=e^t)/2|128*n);var n},function(e){for(var t,n,r,a=Ga(e),s=function(e){for(var t=ns[e.length-1],n=104,r=e.length-1;r>=0;--r)for(var a=e[r],s=0;7!=s;++s)64&a&&(t^=rs[n]),a*=2,--n;return t}(a),i=a.length,o=w(16),l=0;16!=l;++l)o[l]=0;for(1==(1&i)&&(t=s>>8,o[i]=as(ts[0],t),--i,t=255&s,n=a[a.length-1],o[i]=as(n,t));i>0;)t=s>>8,o[--i]=as(a[i],t),t=255&s,o[--i]=as(a[i],t);for(i=15,r=15-a.length;r>0;)t=s>>8,o[i]=as(ts[r],t),--r,t=255&s,o[--i]=as(a[i],t),--i,--r;return o});var is=function(){function e(e,n){switch(n.type){case"base64":return t(g.decode(e),n);case"binary":return t(e,n);case"buffer":return t(e.toString("binary"),n);case"array":return t(ee(e),n)}throw new Error("Unrecognized type "+n.type)}function t(e,t){var n=(t||{}).dense?[]:{};if(!e.match(/\\trowd/))throw new Error("RTF missing table");return n["!ref"]=Zt({s:{c:0,r:0},e:{c:0,r:0}}),n}return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,from_sheet:function(e){for(var t,n=["{\\rtf1\\ansi"],r=Qt(e["!ref"]),a=Array.isArray(e),s=r.s.r;s<=r.e.r;++s){n.push("\\trowd\\trautofit1");for(var i=r.s.c;i<=r.e.c;++i)n.push("\\cellx"+(i+1));for(n.push("\\pard\\intbl"),i=r.s.c;i<=r.e.c;++i){var o=Yt({r:s,c:i});(t=a?(e[s]||[])[i]:e[o])&&(null!=t.v||t.f&&!t.F)&&(n.push(" "+(t.w||(en(t),t.w))),n.push("\\cell"))}n.push("\\pard\\intbl\\row")}return n.join("")+"}"}}}();function os(e){for(var t=0,n=1;3!=t;++t)n=256*n+(e[t]>255?255:e[t]<0?0:e[t]);return n.toString(16).toUpperCase().slice(1)}function ls(e,t){if(0===t)return e;var n=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,a=Math.max(t,n,r),s=Math.min(t,n,r),i=a-s;if(0===i)return[0,0,t];var o,l=0,u=a+s;switch(o=i/(u>1?2-u:u),a){case t:l=((n-r)/i+6)%6;break;case n:l=(r-t)/i+2;break;case r:l=(t-n)/i+4}return[l/6,o,u/2]}(function(e){var t=e.slice("#"===e[0]?1:0).slice(0,6);return[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16)]}(e));return n[2]=t<0?n[2]*(1+t):1-(1-n[2])*(1-t),os(function(e){var t,n=e[0],r=e[1],a=e[2],s=2*r*(a<.5?a:1-a),i=a-s/2,o=[i,i,i],l=6*n;if(0!==r)switch(0|l){case 0:case 6:t=s*l,o[0]+=s,o[1]+=t;break;case 1:t=s*(2-l),o[0]+=t,o[1]+=s;break;case 2:t=s*(l-2),o[1]+=s,o[2]+=t;break;case 3:t=s*(4-l),o[1]+=t,o[2]+=s;break;case 4:t=s*(l-4),o[2]+=s,o[0]+=t;break;case 5:t=s*(6-l),o[2]+=t,o[0]+=s}for(var u=0;3!=u;++u)o[u]=Math.round(255*o[u]);return o}(n))}var us=6;function cs(e){return Math.floor((e+Math.round(128/us)/256)*us)}function hs(e){return Math.floor((e-5)/us*100+.5)/100}function fs(e){return Math.round((e*us+5)/us*256)/256}function ds(e){return fs(hs(cs(e)))}function ps(e){var t=Math.abs(e-ds(e)),n=us;if(t>.005)for(us=1;us<15;++us)Math.abs(e-ds(e))<=t&&(t=Math.abs(e-ds(e)),n=us);us=n}function ms(e){e.width?(e.wpx=cs(e.width),e.wch=hs(e.wpx),e.MDW=us):e.wpx?(e.wch=hs(e.wpx),e.width=fs(e.wch),e.MDW=us):"number"==typeof e.wch&&(e.width=fs(e.wch),e.wpx=cs(e.width),e.MDW=us),e.customWidth&&delete e.customWidth}function gs(e){return 96*e/96}function ys(e){return 96*e/96}var bs,vs,ws,_s,xs,ks={None:"none",Solid:"solid",Gray50:"mediumGray",Gray75:"darkGray",Gray25:"lightGray",HorzStripe:"darkHorizontal",VertStripe:"darkVertical",ReverseDiagStripe:"darkDown",DiagStripe:"darkUp",DiagCross:"darkGrid",ThickDiagCross:"darkTrellis",ThinHorzStripe:"lightHorizontal",ThinVertStripe:"lightVertical",ThinReverseDiagStripe:"lightDown",ThinHorzCross:"lightGrid"},Es=["numFmtId","fillId","fontId","borderId","xfId"],Cs=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"],Ss=(bs=/<(?:\w+:)?numFmts([^>]*)>[\S\s]*?<\/(?:\w+:)?numFmts>/,vs=/<(?:\w+:)?cellXfs([^>]*)>[\S\s]*?<\/(?:\w+:)?cellXfs>/,ws=/<(?:\w+:)?fills([^>]*)>[\S\s]*?<\/(?:\w+:)?fills>/,_s=/<(?:\w+:)?fonts([^>]*)>[\S\s]*?<\/(?:\w+:)?fonts>/,xs=/<(?:\w+:)?borders([^>]*)>[\S\s]*?<\/(?:\w+:)?borders>/,function(e,t,n){var r,a={};return e?((r=(e=e.replace(//gm,"").replace(//gm,"")).match(bs))&&function(e,t,n){t.NumberFmt=[];for(var r=z(A._table),a=0;a":case"":case"":break;case"0){if(l>392){for(l=392;l>60&&null!=t.NumberFmt[l];--l);t.NumberFmt[l]=o}A.load(o,l)}break;case"":break;default:if(n.WTF)throw new Error("unrecognized "+i[0]+" in numFmts")}}}(r,a,n),(r=e.match(_s))&&function(e,t,n,r){t.Fonts=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var i=we(e);switch(_e(i[0])){case"":case"":break;case"":break;case"
":case"":t.Fonts.push(a),a={};break;case"":case"":break;case"":a.bold=1;break;case"":a.italic=1;break;case"":a.underline=1;break;case"":a.strike=1;break;case"":a.outline=1;break;case"":a.shadow=1;break;case"":a.condense=1;break;case"":a.extend=1;break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+i[0]+" in fonts")}}))}(r,a,t,n),(r=e.match(ws))&&function(e,t,n,r){t.Fills=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(_e(n[0])){case"":case"":break;case"":case"":a={},t.Fills.push(a);break;case"":case"":break;case"":t.Fills.push(a),a={};break;case"":n.patternType&&(a.patternType=n.patternType);break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in fills")}}))}(r,a,0,n),(r=e.match(xs))&&function(e,t,n,r){t.Borders=[];var a={},s=!1;(e[0].match(ye)||[]).forEach((function(e){var n=we(e);switch(_e(n[0])){case"":case"":break;case"":case"":a={},n.diagonalUp&&(a.diagonalUp=Oe(n.diagonalUp)),n.diagonalDown&&(a.diagonalDown=Oe(n.diagonalDown)),t.Borders.push(a);break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":break;case"":case"":break;case"":s=!1;break;default:if(r&&r.WTF&&!s)throw new Error("unrecognized "+n[0]+" in borders")}}))}(r,a,0,n),(r=e.match(vs))&&function(e,t,n){var r;t.CellXf=[];var a=!1;(e[0].match(ye)||[]).forEach((function(e){var s=we(e),i=0;switch(_e(s[0])){case"":case"":case"":break;case"":for(delete(r=s)[0],i=0;i392)for(i=392;i>60;--i)if(t.NumberFmt[r.numFmtId]==t.NumberFmt[i]){r.numFmtId=i;break}t.CellXf.push(r);break;case"":break;case"":var o={};s.vertical&&(o.vertical=s.vertical),s.horizontal&&(o.horizontal=s.horizontal),null!=s.textRotation&&(o.textRotation=s.textRotation),s.indent&&(o.indent=s.indent),s.wrapText&&(o.wrapText=Oe(s.wrapText)),r.alignment=o;break;case"":case"":case"":break;case"":a=!1;break;case"":case"":break;case"":a=!1;break;default:if(n&&n.WTF&&!a)throw new Error("unrecognized "+s[0]+" in cellXfs")}}))}(r,a,n),a):a}),Ns=Ze("styleSheet",null,{xmlns:nt.main[0],"xmlns:vt":nt.vt});function Is(e,t){var n,r=[me,Ns];return e.SSF&&null!=(n=function(e){var t=[""];return[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=e[r]&&(t[t.length]=Ze("numFmt",null,{numFmtId:r,formatCode:Ae(e[r])}))})),1===t.length?"":(t[t.length]="",t[0]=Ze("numFmts",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(e.SSF))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r[r.length]='',(n=function(e){var t=[];return t[t.length]=Ze("cellXfs",null),e.forEach((function(e){t[t.length]=Ze("xf",null,e)})),t[t.length]="",2===t.length?"":(t[0]=Ze("cellXfs",null,{count:t.length-2}).replace("/>",">"),t.join(""))}(t.cellXfs))&&(r[r.length]=n),r[r.length]='',r[r.length]='',r[r.length]='',r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}function As(e,t,n){n||(n=$t(6+4*t.length)),n.write_shift(2,e),on(t,n);var r=n.length>n.l?n.slice(0,n.l):n;return null==n.l&&(n.l=n.length),r}Gn.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";var Ds=U(["none","solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"]),Ts=Mt;function Fs(e,t){t||(t=$t(84));var n=Ds[e.patternType];null==n&&(n=40),t.write_shift(4,n);var r=0;if(40!=n)for(Sn({auto:1},t),Sn({auto:1},t);r<12;++r)t.write_shift(4,0);else{for(;r<4;++r)t.write_shift(4,0);for(;r<12;++r)t.write_shift(4,0)}return t.length>t.l?t.slice(0,t.l):t}function Rs(e,t,n){return n||(n=$t(16)),n.write_shift(2,t||0),n.write_shift(2,e.numFmtId||0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(1,0),n}function Os(e,t){return t||(t=$t(10)),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(4,0),t.write_shift(4,0),t}var Bs=Mt;function Ms(e,t){var n=Lt();return zt(n,"BrtBeginStyleSheet"),function(e,t){if(t){var n=0;[[5,8],[23,26],[41,44],[50,392]].forEach((function(e){for(var r=e[0];r<=e[1];++r)null!=t[r]&&++n})),0!=n&&(zt(e,"BrtBeginFmts",an(n)),[[5,8],[23,26],[41,44],[50,392]].forEach((function(n){for(var r=n[0];r<=n[1];++r)null!=t[r]&&zt(e,"BrtFmt",As(r,t[r]))})),zt(e,"BrtEndFmts"))}}(n,e.SSF),function(e){zt(e,"BrtBeginFonts",an(1)),zt(e,"BrtFont",function(e,t){t||(t=$t(153)),t.write_shift(2,20*e.sz),function(e,t){t||(t=$t(2));var n=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);t.write_shift(1,n),t.write_shift(1,0)}(e,t),t.write_shift(2,e.bold?700:400);var n=0;"superscript"==e.vertAlign?n=1:"subscript"==e.vertAlign&&(n=2),t.write_shift(2,n),t.write_shift(1,e.underline||0),t.write_shift(1,e.family||0),t.write_shift(1,e.charset||0),t.write_shift(1,0),Sn(e.color,t);var r=0;return"major"==e.scheme&&(r=1),"minor"==e.scheme&&(r=2),t.write_shift(1,r),on(e.name,t),t.length>t.l?t.slice(0,t.l):t}({sz:12,color:{theme:1},name:"Calibri",family:2,scheme:"minor"})),zt(e,"BrtEndFonts")}(n),function(e){zt(e,"BrtBeginFills",an(2)),zt(e,"BrtFill",Fs({patternType:"none"})),zt(e,"BrtFill",Fs({patternType:"gray125"})),zt(e,"BrtEndFills")}(n),function(e){zt(e,"BrtBeginBorders",an(1)),zt(e,"BrtBorder",function(e,t){return t||(t=$t(51)),t.write_shift(1,0),Os(0,t),Os(0,t),Os(0,t),Os(0,t),Os(0,t),t.length>t.l?t.slice(0,t.l):t}()),zt(e,"BrtEndBorders")}(n),function(e){zt(e,"BrtBeginCellStyleXFs",an(1)),zt(e,"BrtXF",Rs({numFmtId:0,fontId:0,fillId:0,borderId:0},65535)),zt(e,"BrtEndCellStyleXFs")}(n),function(e,t){zt(e,"BrtBeginCellXFs",an(t.length)),t.forEach((function(t){zt(e,"BrtXF",Rs(t,0))})),zt(e,"BrtEndCellXFs")}(n,t.cellXfs),function(e){zt(e,"BrtBeginStyles",an(1)),zt(e,"BrtStyle",function(e,t){return t||(t=$t(52)),t.write_shift(4,e.xfId),t.write_shift(2,1),t.write_shift(1,+e.builtinId),t.write_shift(1,0),gn(e.name||"",t),t.length>t.l?t.slice(0,t.l):t}({xfId:0,builtinId:0,name:"Normal"})),zt(e,"BrtEndStyles")}(n),function(e){zt(e,"BrtBeginDXFs",an(0)),zt(e,"BrtEndDXFs")}(n),function(e){zt(e,"BrtBeginTableStyles",function(e,t,n){var r=$t(2052);return r.write_shift(4,0),gn("TableStyleMedium9",r),gn("PivotStyleMedium4",r),r.length>r.l?r.slice(0,r.l):r}()),zt(e,"BrtEndTableStyles")}(n),zt(n,"BrtEndStyleSheet"),n.end()}Gn.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";var $s=["","","","","","","","","","","",""];function Ps(e,t,n){t.themeElements.clrScheme=[];var r={};(e[0].match(ye)||[]).forEach((function(e){var a=we(e);switch(a[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":"/"===a[0].charAt(1)?(t.themeElements.clrScheme[$s.indexOf(a[0])]=r,r={}):r.name=a[0].slice(3,a[0].length-1);break;default:if(n&&n.WTF)throw new Error("Unrecognized "+a[0]+" in clrScheme")}}))}function Ls(){}function zs(){}var Ws=/]*)>[\s\S]*<\/a:clrScheme>/,Us=/]*)>[\s\S]*<\/a:fontScheme>/,Vs=/]*)>[\s\S]*<\/a:fmtScheme>/,js=/]*)>[\s\S]*<\/a:themeElements>/;function Hs(e,t){if(!e||0===e.length)return Hs(Gs());var n,r={};if(!(n=e.match(js)))throw new Error("themeElements not found in theme");return function(e,t,n){var r;t.themeElements={},[["clrScheme",Ws,Ps],["fontScheme",Us,Ls],["fmtScheme",Vs,zs]].forEach((function(a){if(!(r=e.match(a[1])))throw new Error(a[0]+" not found in themeElements");a[2](r,t,n)}))}(n[0],r,t),r.raw=e,r}function Gs(e,t){if(t&&t.themeXLSX)return t.themeXLSX;if(e&&"string"==typeof e.raw)return e.raw;var n=[me];return n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]='',n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]='',n[n.length]="",n[n.length]="",n[n.length]="",n[n.length]="",n.join("")}function Xs(e){var t=e.read_shift(2),n=e.read_shift(2)-4,r=[t];switch(t){case 4:case 5:case 7:case 8:case 9:case 10:case 11:case 13:r[1]=function(e){var t={};switch(t.xclrType=e.read_shift(2),t.nTintShade=e.read_shift(2),t.xclrType){case 0:e.l+=4;break;case 1:t.xclrValue=function(e,t){return Mt(e,4)}(e);break;case 2:t.xclrValue=Gr(e);break;case 3:t.xclrValue=function(e){return e.read_shift(4)}(e);break;case 4:e.l+=4}return e.l+=8,t}(e);break;case 6:r[1]=function(e,t){return Mt(e,t)}(e,n);break;case 14:case 15:r[1]=e.read_shift(1===n?1:2);break;default:throw new Error("Unrecognized ExtProp type: "+t+" "+n)}return r}Gn.IMG="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image",Gn.DRAW="http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";var Ks=1024;function qs(e,t){for(var n=[21600,21600],r=["m0,0l0",n[1],n[0],n[1],n[0],"0xe"].join(","),a=[Ze("xml",null,{"xmlns:v":"urn:schemas-microsoft-com:vml","xmlns:o":rt,"xmlns:x":at,"xmlns:mv":"http://macVmlSchemaUri"}).replace(/\/>/,">"),Ze("o:shapelayout",Ze("o:idmap",null,{"v:ext":"edit",data:e}),{"v:ext":"edit"}),Ze("v:shapetype",[Ze("v:stroke",null,{joinstyle:"miter"}),Ze("v:path",null,{gradientshapeok:"t","o:connecttype":"rect"})].join(""),{id:"_x0000_t202","o:spt":202,coordsize:n.join(","),path:r})];Ks<1e3*e;)Ks+=1e3;return t.forEach((function(e){var t=qt(e[0]),n={color2:"#BEFF82",type:"gradient"};"gradient"==n.type&&(n.angle="-180");var r="gradient"==n.type?Ze("o:fill",null,{type:"gradientUnscaled","v:ext":"view"}):null,s=Ze("v:fill",r,n);++Ks,a=a.concat(["",s,Ze("v:shadow",null,{on:"t",obscured:"t"}),Ze("v:path",null,{"o:connecttype":"none"}),'
','',"","",Ye("x:Anchor",[t.c+1,0,t.r+1,0,t.c+3,20,t.r+5,20].join(",")),Ye("x:AutoFill","False"),Ye("x:Row",String(t.r)),Ye("x:Column",String(t.c)),e[1].hidden?"":"","",""])})),a.push(""),a.join("")}Gn.CMNT="http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";var Ys=Ze("comments",null,{xmlns:nt.main[0]});function Js(e){var t=[me,Ys],n=[];return t.push(""),e.forEach((function(e){e[1].forEach((function(e){var r=Ae(e.a);n.indexOf(r)>-1||(n.push(r),t.push(""+r+""))}))})),t.push(""),t.push(""),e.forEach((function(e){e[1].forEach((function(r){t.push(''),t.push(Ye("t",null==r.t?"":Ae(r.t))),t.push("")}))})),t.push(""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}var Zs=sn;function Qs(e){var t=Lt(),n=[];return zt(t,"BrtBeginComments"),zt(t,"BrtBeginCommentAuthors"),e.forEach((function(e){e[1].forEach((function(e){n.indexOf(e.a)>-1||(n.push(e.a.slice(0,54)),zt(t,"BrtCommentAuthor",function(e){return on(e.slice(0,54))}(e.a)))}))})),zt(t,"BrtEndCommentAuthors"),zt(t,"BrtBeginCommentList"),e.forEach((function(e){e[1].forEach((function(r){r.iauthor=n.indexOf(r.a);var a={s:qt(e[0]),e:qt(e[0])};zt(t,"BrtBeginComment",function(e,t){return null==t&&(t=$t(36)),t.write_shift(4,e[1].iauthor),kn(e[0],t),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t}([a,r])),r.t&&r.t.length>0&&zt(t,"BrtCommentText",function(e,t){var n=!1;return null==t&&(n=!0,t=$t(23+4*e.t.length)),t.write_shift(1,1),on(e.t,t),t.write_shift(4,1),function(e,t){t||(t=$t(4)),t.write_shift(2,e.ich||0),t.write_shift(2,e.ifnt||0)}({ich:0,ifnt:0},t),n?t.slice(0,t.l):t}(r)),zt(t,"BrtEndComment"),delete r.iauthor}))})),zt(t,"BrtEndCommentList"),zt(t,"BrtEndComments"),t.end()}var ei=["xlsb","xlsm","xlam","biff8","xla"];Gn.DS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet",Gn.MS="http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet";var ti=function(){var e=/(^|[^A-Za-z_])R(\[?-?\d+\]|[1-9]\d*|)C(\[?-?\d+\]|[1-9]\d*|)(?![A-Za-z0-9_])/g,t={r:0,c:0};function n(e,n,r,a){var s=!1,i=!1;0==r.length?i=!0:"["==r.charAt(0)&&(i=!0,r=r.slice(1,-1)),0==a.length?s=!0:"["==a.charAt(0)&&(s=!0,a=a.slice(1,-1));var o=r.length>0?0|parseInt(r,10):0,l=a.length>0?0|parseInt(a,10):0;return s?l+=t.c:--l,i?o+=t.r:--o,n+(s?"":"$")+Kt(l)+(i?"":"$")+Gt(o)}return function(r,a){return t=a,r.replace(e,n)}}(),ni=/(^|[^._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,ri=function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){var o=Xt(a)-(r?0:t.c),l=Ht(i)-(s?0:t.r);return n+"R"+(0==l?"":s?l+1:"["+l+"]")+"C"+(0==o?"":r?o+1:"["+o+"]")}))};function ai(e,t,n){var r=Jt(t).s,a=qt(n);return function(e,t){return e.replace(ni,(function(e,n,r,a,s,i){return n+("$"==r?r+a:Kt(Xt(a)+t.c))+("$"==s?s+i:Gt(Ht(i)+t.r))}))}(e,{r:a.r-r.r,c:a.c-r.c})}function si(e){return e.replace(/_xlfn\./g,"")}function ii(e){e.l+=1}function oi(e,t){var n=e.read_shift(1==t?1:2);return[16383&n,n>>14&1,n>>15&1]}function li(e,t,n){var r=2;if(n){if(n.biff>=2&&n.biff<=5)return ui(e);12==n.biff&&(r=4)}var a=e.read_shift(r),s=e.read_shift(r),i=oi(e,2),o=oi(e,2);return{s:{r:a,c:i[0],cRel:i[1],rRel:i[2]},e:{r:s,c:o[0],cRel:o[1],rRel:o[2]}}}function ui(e){var t=oi(e,2),n=oi(e,2),r=e.read_shift(1),a=e.read_shift(1);return{s:{r:t[0],c:r,cRel:t[1],rRel:t[2]},e:{r:n[0],c:a,cRel:n[1],rRel:n[2]}}}function ci(e,t,n){if(n&&n.biff>=2&&n.biff<=5)return function(e){var t=oi(e,2),n=e.read_shift(1);return{r:t[0],c:n,cRel:t[1],rRel:t[2]}}(e);var r=e.read_shift(n&&12==n.biff?4:2),a=oi(e,2);return{r,c:a[0],cRel:a[1],rRel:a[2]}}function hi(e){var t=e.read_shift(2),n=e.read_shift(2);return{r:t,c:255&n,fQuoted:!!(16384&n),cRel:n>>15,rRel:n>>15}}function fi(e){return[e.read_shift(1),e.read_shift(1)]}function di(e,t){var n=[e.read_shift(1)];if(12==t)switch(n[0]){case 2:n[0]=4;break;case 4:n[0]=16;break;case 0:n[0]=1;break;case 1:n[0]=2}switch(n[0]){case 4:n[1]=Fr(e,1)?"TRUE":"FALSE",12!=t&&(e.l+=7);break;case 37:case 16:n[1]=Ln[e[e.l]],e.l+=12==t?4:8;break;case 0:e.l+=8;break;case 1:n[1]=En(e);break;case 2:n[1]=Ur(e,0,{biff:t>0&&t<8?2:t});break;default:throw new Error("Bad SerAr: "+n[0])}return n}function pi(e,t,n){for(var r=e.read_shift(12==n.biff?4:2),a=[],s=0;s!=r;++s)a.push((12==n.biff?xn:Zr)(e,8));return a}function mi(e,t,n){var r=0,a=0;12==n.biff?(r=e.read_shift(4),a=e.read_shift(4)):(a=1+e.read_shift(1),r=1+e.read_shift(2)),n.biff>=2&&n.biff<8&&(--r,0==--a&&(a=256));for(var s=0,i=[];s!=r&&(i[s]=[]);++s)for(var o=0;o!=a;++o)i[s][o]=di(e,n.biff);return i}function gi(e,t,n){return e.l+=2,[hi(e)]}function yi(e){return e.l+=6,[]}var bi=gi,vi=yi,wi=yi,_i=gi;function xi(e){return e.l+=2,[Or(e),1&e.read_shift(2)]}var ki=gi,Ei=xi,Ci=yi,Si=gi,Ni=gi,Ii=["Data","All","Headers","??","?Data2","??","?DataHeaders","??","Totals","??","??","??","?DataTotals","??","??","??","?Current"],Ai={1:{n:"PtgExp",f:function(e,t,n){return e.l++,n&&12==n.biff?[e.read_shift(4,"i"),0]:[e.read_shift(2),e.read_shift(n&&2==n.biff?1:2)]}},2:{n:"PtgTbl",f:Mt},3:{n:"PtgAdd",f:ii},4:{n:"PtgSub",f:ii},5:{n:"PtgMul",f:ii},6:{n:"PtgDiv",f:ii},7:{n:"PtgPower",f:ii},8:{n:"PtgConcat",f:ii},9:{n:"PtgLt",f:ii},10:{n:"PtgLe",f:ii},11:{n:"PtgEq",f:ii},12:{n:"PtgGe",f:ii},13:{n:"PtgGt",f:ii},14:{n:"PtgNe",f:ii},15:{n:"PtgIsect",f:ii},16:{n:"PtgUnion",f:ii},17:{n:"PtgRange",f:ii},18:{n:"PtgUplus",f:ii},19:{n:"PtgUminus",f:ii},20:{n:"PtgPercent",f:ii},21:{n:"PtgParen",f:ii},22:{n:"PtgMissArg",f:ii},23:{n:"PtgStr",f:function(e,t,n){return e.l++,$r(e,0,n)}},26:{n:"PtgSheet",f:function(e,t,n){return e.l+=5,e.l+=2,e.l+=2==n.biff?1:4,["PTGSHEET"]}},27:{n:"PtgEndSheet",f:function(e,t,n){return e.l+=2==n.biff?4:5,["PTGENDSHEET"]}},28:{n:"PtgErr",f:function(e){return e.l++,Ln[e.read_shift(1)]}},29:{n:"PtgBool",f:function(e){return e.l++,0!==e.read_shift(1)}},30:{n:"PtgInt",f:function(e){return e.l++,e.read_shift(2)}},31:{n:"PtgNum",f:function(e){return e.l++,En(e)}},32:{n:"PtgArray",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=2==n.biff?6:12==n.biff?14:7,[r]}},33:{n:"PtgFunc",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(n&&n.biff<=3?1:2);return[Ji[a],Yi[a],r]}},34:{n:"PtgFuncVar",f:function(e,t,n){var r=e[e.l++],a=e.read_shift(1),s=n&&n.biff<=3?[88==r?-1:0,e.read_shift(1)]:function(e){return[e[e.l+1]>>7,32767&e.read_shift(2)]}(e);return[a,(0===s[0]?Yi:qi)[s[1]]]}},35:{n:"PtgName",f:function(e,t,n){var r=e.read_shift(1)>>>5&3,a=!n||n.biff>=8?4:2,s=e.read_shift(a);switch(n.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12}return[r,0,s]}},36:{n:"PtgRef",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,ci(e,0,n)]}},37:{n:"PtgArea",f:function(e,t,n){return[(96&e[e.l++])>>5,li(e,n.biff>=2&&n.biff,n)]}},38:{n:"PtgMemArea",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=n&&2==n.biff?3:4,[r,e.read_shift(n&&2==n.biff?1:2)]}},39:{n:"PtgMemErr",f:Mt},40:{n:"PtgMemNoMem",f:Mt},41:{n:"PtgMemFunc",f:function(e,t,n){return[e.read_shift(1)>>>5&3,e.read_shift(n&&2==n.biff?1:2)]}},42:{n:"PtgRefErr",f:function(e,t,n){var r=e.read_shift(1)>>>5&3;return e.l+=4,n.biff<8&&e.l--,12==n.biff&&(e.l+=2),[r]}},43:{n:"PtgAreaErr",f:function(e,t,n){var r=(96&e[e.l++])>>5;return e.l+=n&&n.biff>8?12:n.biff<8?6:8,[r]}},44:{n:"PtgRefN",f:function(e,t,n){var r=(96&e[e.l])>>5;return e.l+=1,[r,function(e,t,n){var r=n&&n.biff?n.biff:8;if(r>=2&&r<=5)return function(e){var t=e.read_shift(2),n=e.read_shift(1),r=(32768&t)>>15,a=(16384&t)>>14;return t&=16383,1==r&&t>=8192&&(t-=16384),1==a&&n>=128&&(n-=256),{r:t,c:n,cRel:a,rRel:r}}(e);var a=e.read_shift(r>=12?4:2),s=e.read_shift(2),i=(16384&s)>>14,o=(32768&s)>>15;if(s&=16383,1==o)for(;a>524287;)a-=1048576;if(1==i)for(;s>8191;)s-=16384;return{r:a,c:s,cRel:i,rRel:o}}(e,0,n)]}},45:{n:"PtgAreaN",f:function(e,t,n){return[(96&e[e.l++])>>5,function(e,t,n){if(n.biff<8)return ui(e);var r=e.read_shift(12==n.biff?4:2),a=e.read_shift(12==n.biff?4:2),s=oi(e,2),i=oi(e,2);return{s:{r,c:s[0],cRel:s[1],rRel:s[2]},e:{r:a,c:i[0],cRel:i[1],rRel:i[2]}}}(e,0,n)]}},46:{n:"PtgMemAreaN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},47:{n:"PtgMemNoMemN",f:function(e){return[e.read_shift(1)>>>5&3,e.read_shift(2)]}},57:{n:"PtgNameX",f:function(e,t,n){return 5==n.biff?function(e){var t=e.read_shift(1)>>>5&3,n=e.read_shift(2,"i");e.l+=8;var r=e.read_shift(2);return e.l+=12,[t,n,r]}(e):[e.read_shift(1)>>>5&3,e.read_shift(2),e.read_shift(4)]}},58:{n:"PtgRef3d",f:function(e,t,n){var r=(96&e[e.l])>>5;e.l+=1;var a=e.read_shift(2);return n&&5==n.biff&&(e.l+=12),[r,a,ci(e,0,n)]}},59:{n:"PtgArea3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2,"i");if(n)switch(n.biff){case 5:e.l+=12}return[r,a,li(e,0,n)]}},60:{n:"PtgRefErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=4;if(n)switch(n.biff){case 5:s=15;break;case 12:s=6}return e.l+=s,[r,a]}},61:{n:"PtgAreaErr3d",f:function(e,t,n){var r=(96&e[e.l++])>>5,a=e.read_shift(2),s=8;if(n)switch(n.biff){case 5:e.l+=12,s=6;break;case 12:s=12}return e.l+=s,[r,a]}},255:{}},Di={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61};!function(){for(var e in Di)Ai[e]=Ai[Di[e]]}();var Ti={1:{n:"PtgElfLel",f:xi},2:{n:"PtgElfRw",f:Si},3:{n:"PtgElfCol",f:bi},6:{n:"PtgElfRwV",f:Ni},7:{n:"PtgElfColV",f:_i},10:{n:"PtgElfRadical",f:ki},11:{n:"PtgElfRadicalS",f:Ci},13:{n:"PtgElfColS",f:vi},15:{n:"PtgElfColSV",f:wi},16:{n:"PtgElfRadicalLel",f:Ei},25:{n:"PtgList",f:function(e){e.l+=2;var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a=e.read_shift(2),s=e.read_shift(2);return{ixti:t,coltype:3&n,rt:Ii[n>>2&31],idx:r,c:a,C:s}}},29:{n:"PtgSxName",f:function(e){return e.l+=2,[e.read_shift(4)]}},255:{}},Fi={0:{n:"PtgAttrNoop",f:function(e){return e.l+=4,[0,0]}},1:{n:"PtgAttrSemi",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=n&&2==n.biff?3:4,[r]}},2:{n:"PtgAttrIf",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},4:{n:"PtgAttrChoose",f:function(e,t,n){e.l+=2;for(var r=e.read_shift(n&&2==n.biff?1:2),a=[],s=0;s<=r;++s)a.push(e.read_shift(n&&2==n.biff?1:2));return a}},8:{n:"PtgAttrGoto",f:function(e,t,n){var r=255&e[e.l+1]?1:0;return e.l+=2,[r,e.read_shift(n&&2==n.biff?1:2)]}},16:{n:"PtgAttrSum",f:function(e,t,n){e.l+=n&&2==n.biff?3:4}},32:{n:"PtgAttrBaxcel",f:function(e){var t=1&e[e.l+1];return e.l+=4,[t,1]}},64:{n:"PtgAttrSpace",f:function(e){return e.read_shift(2),fi(e)}},65:{n:"PtgAttrSpaceSemi",f:function(e){return e.read_shift(2),fi(e)}},128:{n:"PtgAttrIfError",f:function(e){var t=255&e[e.l+1]?1:0;return e.l+=2,[t,e.read_shift(2)]}},255:{}};function Ri(e,t,n,r){if(r.biff<8)return Mt(e,t);for(var a=e.l+t,s=[],i=0;i!==n.length;++i)switch(n[i][0]){case"PtgArray":n[i][1]=mi(e,0,r),s.push(n[i][1]);break;case"PtgMemArea":n[i][2]=pi(e,n[i][1],r),s.push(n[i][2]);break;case"PtgExp":r&&12==r.biff&&(n[i][1][1]=e.read_shift(4),s.push(n[i][1]));break;case"PtgList":case"PtgElfRadicalS":case"PtgElfColS":case"PtgElfColSV":throw"Unsupported "+n[i][0]}return 0!=(t=a-e.l)&&s.push(Mt(e,t)),s}function Oi(e,t,n){for(var r,a,s=e.l+t,i=[];s!=e.l;)t=s-e.l,a=e[e.l],r=Ai[a],24!==a&&25!==a||(r=(24===a?Ti:Fi)[e[e.l+1]]),r&&r.f?i.push([r.n,r.f(e,t,n)]):Mt(e,t);return i}function Bi(e){for(var t=[],n=0;n=",PtgGt:">",PtgLe:"<=",PtgLt:"<",PtgMul:"*",PtgNe:"<>",PtgPower:"^",PtgSub:"-"},$i=new RegExp(/[^\w\u4E00-\u9FFF\u3040-\u30FF]/);function Pi(e,t,n){if(!e)return"SH33TJSERR0";if(n.biff>8&&(!e.XTI||!e.XTI[t]))return e.SheetNames[t];if(!e.XTI)return"SH33TJSERR6";var r=e.XTI[t];if(n.biff<8)return t>1e4&&(t-=65536),t<0&&(t=-t),0==t?"":e.XTI[t-1];if(!r)return"SH33TJSERR1";var a="";if(n.biff>8)switch(e[r[0]][0]){case 357:return a=-1==r[1]?"#REF":e.SheetNames[r[1]],r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 358:return null!=n.SID?e.SheetNames[n.SID]:"SH33TJSSAME"+e[r[0]][0];case 355:default:return"SH33TJSSRC"+e[r[0]][0]}switch(e[r[0]][0][0]){case 1025:return a=-1==r[1]?"#REF":e.SheetNames[r[1]]||"SH33TJSERR3",r[1]==r[2]?a:a+":"+e.SheetNames[r[2]];case 14849:return e[r[0]].slice(1).map((function(e){return e.Name})).join(";;");default:return e[r[0]][0][3]?(a=-1==r[1]?"#REF":e[r[0]][0][3][r[1]]||"SH33TJSERR4",r[1]==r[2]?a:a+":"+e[r[0]][0][3][r[2]]):"SH33TJSERR2"}}function Li(e,t,n){return function(e,t){if(!(e||t&&t.biff<=5&&t.biff>=2))throw new Error("empty sheet name");return $i.test(e)?"'"+e+"'":e}(Pi(e,t,n),n)}function zi(e,t,n,r,a){var s,i,o,l,u=a&&a.biff||8,c={s:{c:0,r:0},e:{c:0,r:0}},h=[],f=0,d=0,p="";if(!e[0]||!e[0][0])return"";for(var m=-1,g="",y=0,b=e[0].length;y=0){switch(e[0][m][1][0]){case 0:g=ne(" ",e[0][m][1][1]);break;case 1:g=ne("\r",e[0][m][1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}i+=g,m=-1}h.push(i+Mi[v[0]]+s);break;case"PtgIsect":s=h.pop(),i=h.pop(),h.push(i+" "+s);break;case"PtgUnion":s=h.pop(),i=h.pop(),h.push(i+","+s);break;case"PtgRange":s=h.pop(),i=h.pop(),h.push(i+":"+s);break;case"PtgAttrChoose":case"PtgAttrGoto":case"PtgAttrIf":case"PtgAttrIfError":break;case"PtgRef":o=Wt(v[1][1],c,a),h.push(Vt(o,u));break;case"PtgRefN":o=n?Wt(v[1][1],n,a):v[1][1],h.push(Vt(o,u));break;case"PtgRef3d":f=v[1][1],o=Wt(v[1][2],c,a),p=Li(r,f,a),h.push(p+"!"+Vt(o,u));break;case"PtgFunc":case"PtgFuncVar":var w=v[1][0],_=v[1][1];w||(w=0);var x=0==(w&=127)?[]:h.slice(-w);h.length-=w,"User"===_&&(_=x.shift()),h.push(_+"("+x.join(",")+")");break;case"PtgBool":h.push(v[1]?"TRUE":"FALSE");break;case"PtgInt":h.push(v[1]);break;case"PtgNum":h.push(String(v[1]));break;case"PtgStr":h.push('"'+v[1].replace(/"/g,'""')+'"');break;case"PtgErr":h.push(v[1]);break;case"PtgAreaN":l=Ut(v[1][1],n?{s:n}:c,a),h.push(jt(l,a));break;case"PtgArea":l=Ut(v[1][1],c,a),h.push(jt(l,a));break;case"PtgArea3d":f=v[1][1],l=v[1][2],p=Li(r,f,a),h.push(p+"!"+jt(l,a));break;case"PtgAttrSum":h.push("SUM("+h.pop()+")");break;case"PtgAttrBaxcel":case"PtgAttrSemi":break;case"PtgName":d=v[1][2];var k=(r.names||[])[d-1]||(r[0]||[])[d],E=k?k.Name:"SH33TJSNAME"+String(d);E in Zi&&(E=Zi[E]),h.push(E);break;case"PtgNameX":var C,S=v[1][1];if(d=v[1][2],!(a.biff<=5)){var N="";if(14849==((r[S]||[])[0]||[])[0]||(1025==((r[S]||[])[0]||[])[0]?r[S][d]&&r[S][d].itab>0&&(N=r.SheetNames[r[S][d].itab-1]+"!"):N=r.SheetNames[d-1]+"!"),r[S]&&r[S][d])N+=r[S][d].Name;else if(r[0]&&r[0][d])N+=r[0][d].Name;else{var I=Pi(r,S,a).split(";;");I[d-1]?N=I[d-1]:N+="SH33TJSERRX"}h.push(N);break}S<0&&(S=-S),r[S]&&(C=r[S][d]),C||(C={Name:"SH33TJSERRY"}),h.push(C.Name);break;case"PtgParen":var A="(",D=")";if(m>=0){switch(g="",e[0][m][1][0]){case 2:A=ne(" ",e[0][m][1][1])+A;break;case 3:A=ne("\r",e[0][m][1][1])+A;break;case 4:D=ne(" ",e[0][m][1][1])+D;break;case 5:D=ne("\r",e[0][m][1][1])+D;break;default:if(a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+e[0][m][1][0])}m=-1}h.push(A+h.pop()+D);break;case"PtgRefErr":case"PtgRefErr3d":h.push("#REF!");break;case"PtgExp":o={c:v[1][1],r:v[1][0]};var T={c:n.c,r:n.r};if(r.sharedf[Yt(o)]){var F=r.sharedf[Yt(o)];h.push(zi(F,0,T,r,a))}else{var R=!1;for(s=0;s!=r.arrayf.length;++s)if(i=r.arrayf[s],!(o.ci[0].e.c||o.ri[0].e.r)){h.push(zi(i[1],0,T,r,a)),R=!0;break}R||h.push(v[1])}break;case"PtgArray":h.push("{"+Bi(v[1])+"}");break;case"PtgMemArea":break;case"PtgAttrSpace":case"PtgAttrSpaceSemi":m=y;break;case"PtgTbl":case"PtgMemErr":break;case"PtgMissArg":h.push("");break;case"PtgAreaErr":case"PtgAreaErr3d":h.push("#REF!");break;case"PtgList":h.push("Table"+v[1].idx+"[#"+v[1].rt+"]");break;case"PtgMemAreaN":case"PtgMemNoMemN":case"PtgAttrNoop":case"PtgSheet":case"PtgEndSheet":case"PtgMemFunc":case"PtgMemNoMem":break;case"PtgElfCol":case"PtgElfColS":case"PtgElfColSV":case"PtgElfColV":case"PtgElfLel":case"PtgElfRadical":case"PtgElfRadicalLel":case"PtgElfRadicalS":case"PtgElfRw":case"PtgElfRwV":throw new Error("Unsupported ELFs");case"PtgSxName":default:throw new Error("Unrecognized Formula Token: "+String(v))}if(3!=a.biff&&m>=0&&-1==["PtgAttrSpace","PtgAttrSpaceSemi","PtgAttrGoto"].indexOf(e[0][y][0])){var O=!0;switch((v=e[0][m])[1][0]){case 4:O=!1;case 0:g=ne(" ",v[1][1]);break;case 5:O=!1;case 1:g=ne("\r",v[1][1]);break;default:if(g="",a.WTF)throw new Error("Unexpected PtgAttrSpaceType "+v[1][0])}h.push((O?g:"")+h.pop()+(O?"":g)),m=-1}}if(h.length>1&&a.WTF)throw new Error("bad formula stack");return h[0]}function Wi(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Ri(e,t-i-s,o,n)),e.l=a,[o,r]}function Ui(e,t,n){var r,a=e.l+t,s=e.read_shift(2),i=Oi(e,s,n);return 65535==s?[[],Mt(e,t-2)]:(t!==s+2&&(r=Ri(e,a-s-2,i,n)),[i,r])}function Vi(e,t,n){var r=e.l+t,a=Kr(e);2==n.biff&&++e.l;var s=function(e){var t;if(65535!==St(e,e.l+6))return[En(e),"n"];switch(e[e.l]){case 0:return e.l+=8,["String","s"];case 1:return t=1===e[e.l+2],e.l+=8,[t,"b"];case 2:return t=e[e.l+2],e.l+=8,[t,"e"];case 3:return e.l+=8,["","s"]}return[]}(e),i=e.read_shift(1);2!=n.biff&&(e.read_shift(1),n.biff>=5&&e.read_shift(4));var o=function(e,t,n){var r,a=e.l+t,s=2==n.biff?1:2,i=e.read_shift(s);if(65535==i)return[[],Mt(e,t-2)];var o=Oi(e,i,n);return t!==i+s&&(r=Ri(e,t-i-s,o,n)),e.l=a,[o,r]}(e,r-e.l,n);return{cell:a,val:s[0],formula:o,shared:i>>3&1,tt:s[1]}}function ji(e,t,n){var r=e.read_shift(4),a=Oi(e,r,n),s=e.read_shift(4);return[a,s>0?Ri(e,s,a,n):null]}var Hi=ji,Gi=ji,Xi=ji,Ki=ji,qi={0:"BEEP",1:"OPEN",2:"OPEN.LINKS",3:"CLOSE.ALL",4:"SAVE",5:"SAVE.AS",6:"FILE.DELETE",7:"PAGE.SETUP",8:"PRINT",9:"PRINTER.SETUP",10:"QUIT",11:"NEW.WINDOW",12:"ARRANGE.ALL",13:"WINDOW.SIZE",14:"WINDOW.MOVE",15:"FULL",16:"CLOSE",17:"RUN",22:"SET.PRINT.AREA",23:"SET.PRINT.TITLES",24:"SET.PAGE.BREAK",25:"REMOVE.PAGE.BREAK",26:"FONT",27:"DISPLAY",28:"PROTECT.DOCUMENT",29:"PRECISION",30:"A1.R1C1",31:"CALCULATE.NOW",32:"CALCULATION",34:"DATA.FIND",35:"EXTRACT",36:"DATA.DELETE",37:"SET.DATABASE",38:"SET.CRITERIA",39:"SORT",40:"DATA.SERIES",41:"TABLE",42:"FORMAT.NUMBER",43:"ALIGNMENT",44:"STYLE",45:"BORDER",46:"CELL.PROTECTION",47:"COLUMN.WIDTH",48:"UNDO",49:"CUT",50:"COPY",51:"PASTE",52:"CLEAR",53:"PASTE.SPECIAL",54:"EDIT.DELETE",55:"INSERT",56:"FILL.RIGHT",57:"FILL.DOWN",61:"DEFINE.NAME",62:"CREATE.NAMES",63:"FORMULA.GOTO",64:"FORMULA.FIND",65:"SELECT.LAST.CELL",66:"SHOW.ACTIVE.CELL",67:"GALLERY.AREA",68:"GALLERY.BAR",69:"GALLERY.COLUMN",70:"GALLERY.LINE",71:"GALLERY.PIE",72:"GALLERY.SCATTER",73:"COMBINATION",74:"PREFERRED",75:"ADD.OVERLAY",76:"GRIDLINES",77:"SET.PREFERRED",78:"AXES",79:"LEGEND",80:"ATTACH.TEXT",81:"ADD.ARROW",82:"SELECT.CHART",83:"SELECT.PLOT.AREA",84:"PATTERNS",85:"MAIN.CHART",86:"OVERLAY",87:"SCALE",88:"FORMAT.LEGEND",89:"FORMAT.TEXT",90:"EDIT.REPEAT",91:"PARSE",92:"JUSTIFY",93:"HIDE",94:"UNHIDE",95:"WORKSPACE",96:"FORMULA",97:"FORMULA.FILL",98:"FORMULA.ARRAY",99:"DATA.FIND.NEXT",100:"DATA.FIND.PREV",101:"FORMULA.FIND.NEXT",102:"FORMULA.FIND.PREV",103:"ACTIVATE",104:"ACTIVATE.NEXT",105:"ACTIVATE.PREV",106:"UNLOCKED.NEXT",107:"UNLOCKED.PREV",108:"COPY.PICTURE",109:"SELECT",110:"DELETE.NAME",111:"DELETE.FORMAT",112:"VLINE",113:"HLINE",114:"VPAGE",115:"HPAGE",116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",478:"VBA.MAKE.ADDIN",480:"INSERTDATATABLE",481:"WORKGROUP.OPTIONS",482:"MAIL.SEND.MAILER",485:"AUTOCORRECT",489:"POST.DOCUMENT",491:"PICKLIST",493:"VIEW.SHOW",494:"VIEW.DEFINE",495:"VIEW.DELETE",509:"SHEET.BACKGROUND",510:"INSERT.MAP.OBJECT",511:"OPTIONS.MENONO",517:"MSOCHECKS",518:"NORMAL",519:"LAYOUT",520:"RM.PRINT.AREA",521:"CLEAR.PRINT.AREA",522:"ADD.PRINT.AREA",523:"MOVE.BRK",545:"HIDECURR.NOTE",546:"HIDEALL.NOTES",547:"DELETE.NOTE",548:"TRAVERSE.NOTES",549:"ACTIVATE.NOTES",620:"PROTECT.REVISIONS",621:"UNPROTECT.REVISIONS",647:"OPTIONS.ME",653:"WEB.PUBLISH",667:"NEWWEBQUERY",673:"PIVOT.TABLE.CHART",753:"OPTIONS.SAVE",755:"OPTIONS.SPELL",808:"HIDEALL.INKANNOTS"},Yi={0:"COUNT",1:"IF",2:"ISNA",3:"ISERROR",4:"SUM",5:"AVERAGE",6:"MIN",7:"MAX",8:"ROW",9:"COLUMN",10:"NA",11:"NPV",12:"STDEV",13:"DOLLAR",14:"FIXED",15:"SIN",16:"COS",17:"TAN",18:"ATAN",19:"PI",20:"SQRT",21:"EXP",22:"LN",23:"LOG10",24:"ABS",25:"INT",26:"SIGN",27:"ROUND",28:"LOOKUP",29:"INDEX",30:"REPT",31:"MID",32:"LEN",33:"VALUE",34:"TRUE",35:"FALSE",36:"AND",37:"OR",38:"NOT",39:"MOD",40:"DCOUNT",41:"DSUM",42:"DAVERAGE",43:"DMIN",44:"DMAX",45:"DSTDEV",46:"VAR",47:"DVAR",48:"TEXT",49:"LINEST",50:"TREND",51:"LOGEST",52:"GROWTH",53:"GOTO",54:"HALT",55:"RETURN",56:"PV",57:"FV",58:"NPER",59:"PMT",60:"RATE",61:"MIRR",62:"IRR",63:"RAND",64:"MATCH",65:"DATE",66:"TIME",67:"DAY",68:"MONTH",69:"YEAR",70:"WEEKDAY",71:"HOUR",72:"MINUTE",73:"SECOND",74:"NOW",75:"AREAS",76:"ROWS",77:"COLUMNS",78:"OFFSET",79:"ABSREF",80:"RELREF",81:"ARGUMENT",82:"SEARCH",83:"TRANSPOSE",84:"ERROR",85:"STEP",86:"TYPE",87:"ECHO",88:"SET.NAME",89:"CALLER",90:"DEREF",91:"WINDOWS",92:"SERIES",93:"DOCUMENTS",94:"ACTIVE.CELL",95:"SELECTION",96:"RESULT",97:"ATAN2",98:"ASIN",99:"ACOS",100:"CHOOSE",101:"HLOOKUP",102:"VLOOKUP",103:"LINKS",104:"INPUT",105:"ISREF",106:"GET.FORMULA",107:"GET.NAME",108:"SET.VALUE",109:"LOG",110:"EXEC",111:"CHAR",112:"LOWER",113:"UPPER",114:"PROPER",115:"LEFT",116:"RIGHT",117:"EXACT",118:"TRIM",119:"REPLACE",120:"SUBSTITUTE",121:"CODE",122:"NAMES",123:"DIRECTORY",124:"FIND",125:"CELL",126:"ISERR",127:"ISTEXT",128:"ISNUMBER",129:"ISBLANK",130:"T",131:"N",132:"FOPEN",133:"FCLOSE",134:"FSIZE",135:"FREADLN",136:"FREAD",137:"FWRITELN",138:"FWRITE",139:"FPOS",140:"DATEVALUE",141:"TIMEVALUE",142:"SLN",143:"SYD",144:"DDB",145:"GET.DEF",146:"REFTEXT",147:"TEXTREF",148:"INDIRECT",149:"REGISTER",150:"CALL",151:"ADD.BAR",152:"ADD.MENU",153:"ADD.COMMAND",154:"ENABLE.COMMAND",155:"CHECK.COMMAND",156:"RENAME.COMMAND",157:"SHOW.BAR",158:"DELETE.MENU",159:"DELETE.COMMAND",160:"GET.CHART.ITEM",161:"DIALOG.BOX",162:"CLEAN",163:"MDETERM",164:"MINVERSE",165:"MMULT",166:"FILES",167:"IPMT",168:"PPMT",169:"COUNTA",170:"CANCEL.KEY",171:"FOR",172:"WHILE",173:"BREAK",174:"NEXT",175:"INITIATE",176:"REQUEST",177:"POKE",178:"EXECUTE",179:"TERMINATE",180:"RESTART",181:"HELP",182:"GET.BAR",183:"PRODUCT",184:"FACT",185:"GET.CELL",186:"GET.WORKSPACE",187:"GET.WINDOW",188:"GET.DOCUMENT",189:"DPRODUCT",190:"ISNONTEXT",191:"GET.NOTE",192:"NOTE",193:"STDEVP",194:"VARP",195:"DSTDEVP",196:"DVARP",197:"TRUNC",198:"ISLOGICAL",199:"DCOUNTA",200:"DELETE.BAR",201:"UNREGISTER",204:"USDOLLAR",205:"FINDB",206:"SEARCHB",207:"REPLACEB",208:"LEFTB",209:"RIGHTB",210:"MIDB",211:"LENB",212:"ROUNDUP",213:"ROUNDDOWN",214:"ASC",215:"DBCS",216:"RANK",219:"ADDRESS",220:"DAYS360",221:"TODAY",222:"VDB",223:"ELSE",224:"ELSE.IF",225:"END.IF",226:"FOR.CELL",227:"MEDIAN",228:"SUMPRODUCT",229:"SINH",230:"COSH",231:"TANH",232:"ASINH",233:"ACOSH",234:"ATANH",235:"DGET",236:"CREATE.OBJECT",237:"VOLATILE",238:"LAST.ERROR",239:"CUSTOM.UNDO",240:"CUSTOM.REPEAT",241:"FORMULA.CONVERT",242:"GET.LINK.INFO",243:"TEXT.BOX",244:"INFO",245:"GROUP",246:"GET.OBJECT",247:"DB",248:"PAUSE",251:"RESUME",252:"FREQUENCY",253:"ADD.TOOLBAR",254:"DELETE.TOOLBAR",255:"User",256:"RESET.TOOLBAR",257:"EVALUATE",258:"GET.TOOLBAR",259:"GET.TOOL",260:"SPELLING.CHECK",261:"ERROR.TYPE",262:"APP.TITLE",263:"WINDOW.TITLE",264:"SAVE.TOOLBAR",265:"ENABLE.TOOL",266:"PRESS.TOOL",267:"REGISTER.ID",268:"GET.WORKBOOK",269:"AVEDEV",270:"BETADIST",271:"GAMMALN",272:"BETAINV",273:"BINOMDIST",274:"CHIDIST",275:"CHIINV",276:"COMBIN",277:"CONFIDENCE",278:"CRITBINOM",279:"EVEN",280:"EXPONDIST",281:"FDIST",282:"FINV",283:"FISHER",284:"FISHERINV",285:"FLOOR",286:"GAMMADIST",287:"GAMMAINV",288:"CEILING",289:"HYPGEOMDIST",290:"LOGNORMDIST",291:"LOGINV",292:"NEGBINOMDIST",293:"NORMDIST",294:"NORMSDIST",295:"NORMINV",296:"NORMSINV",297:"STANDARDIZE",298:"ODD",299:"PERMUT",300:"POISSON",301:"TDIST",302:"WEIBULL",303:"SUMXMY2",304:"SUMX2MY2",305:"SUMX2PY2",306:"CHITEST",307:"CORREL",308:"COVAR",309:"FORECAST",310:"FTEST",311:"INTERCEPT",312:"PEARSON",313:"RSQ",314:"STEYX",315:"SLOPE",316:"TTEST",317:"PROB",318:"DEVSQ",319:"GEOMEAN",320:"HARMEAN",321:"SUMSQ",322:"KURT",323:"SKEW",324:"ZTEST",325:"LARGE",326:"SMALL",327:"QUARTILE",328:"PERCENTILE",329:"PERCENTRANK",330:"MODE",331:"TRIMMEAN",332:"TINV",334:"MOVIE.COMMAND",335:"GET.MOVIE",336:"CONCATENATE",337:"POWER",338:"PIVOT.ADD.DATA",339:"GET.PIVOT.TABLE",340:"GET.PIVOT.FIELD",341:"GET.PIVOT.ITEM",342:"RADIANS",343:"DEGREES",344:"SUBTOTAL",345:"SUMIF",346:"COUNTIF",347:"COUNTBLANK",348:"SCENARIO.GET",349:"OPTIONS.LISTS.GET",350:"ISPMT",351:"DATEDIF",352:"DATESTRING",353:"NUMBERSTRING",354:"ROMAN",355:"OPEN.DIALOG",356:"SAVE.DIALOG",357:"VIEW.GET",358:"GETPIVOTDATA",359:"HYPERLINK",360:"PHONETIC",361:"AVERAGEA",362:"MAXA",363:"MINA",364:"STDEVPA",365:"VARPA",366:"STDEVA",367:"VARA",368:"BAHTTEXT",369:"THAIDAYOFWEEK",370:"THAIDIGIT",371:"THAIMONTHOFYEAR",372:"THAINUMSOUND",373:"THAINUMSTRING",374:"THAISTRINGLENGTH",375:"ISTHAIDIGIT",376:"ROUNDBAHTDOWN",377:"ROUNDBAHTUP",378:"THAIYEAR",379:"RTD",380:"CUBEVALUE",381:"CUBEMEMBER",382:"CUBEMEMBERPROPERTY",383:"CUBERANKEDMEMBER",384:"HEX2BIN",385:"HEX2DEC",386:"HEX2OCT",387:"DEC2BIN",388:"DEC2HEX",389:"DEC2OCT",390:"OCT2BIN",391:"OCT2HEX",392:"OCT2DEC",393:"BIN2DEC",394:"BIN2OCT",395:"BIN2HEX",396:"IMSUB",397:"IMDIV",398:"IMPOWER",399:"IMABS",400:"IMSQRT",401:"IMLN",402:"IMLOG2",403:"IMLOG10",404:"IMSIN",405:"IMCOS",406:"IMEXP",407:"IMARGUMENT",408:"IMCONJUGATE",409:"IMAGINARY",410:"IMREAL",411:"COMPLEX",412:"IMSUM",413:"IMPRODUCT",414:"SERIESSUM",415:"FACTDOUBLE",416:"SQRTPI",417:"QUOTIENT",418:"DELTA",419:"GESTEP",420:"ISEVEN",421:"ISODD",422:"MROUND",423:"ERF",424:"ERFC",425:"BESSELJ",426:"BESSELK",427:"BESSELY",428:"BESSELI",429:"XIRR",430:"XNPV",431:"PRICEMAT",432:"YIELDMAT",433:"INTRATE",434:"RECEIVED",435:"DISC",436:"PRICEDISC",437:"YIELDDISC",438:"TBILLEQ",439:"TBILLPRICE",440:"TBILLYIELD",441:"PRICE",442:"YIELD",443:"DOLLARDE",444:"DOLLARFR",445:"NOMINAL",446:"EFFECT",447:"CUMPRINC",448:"CUMIPMT",449:"EDATE",450:"EOMONTH",451:"YEARFRAC",452:"COUPDAYBS",453:"COUPDAYS",454:"COUPDAYSNC",455:"COUPNCD",456:"COUPNUM",457:"COUPPCD",458:"DURATION",459:"MDURATION",460:"ODDLPRICE",461:"ODDLYIELD",462:"ODDFPRICE",463:"ODDFYIELD",464:"RANDBETWEEN",465:"WEEKNUM",466:"AMORDEGRC",467:"AMORLINC",468:"CONVERT",724:"SHEETJS",469:"ACCRINT",470:"ACCRINTM",471:"WORKDAY",472:"NETWORKDAYS",473:"GCD",474:"MULTINOMIAL",475:"LCM",476:"FVSCHEDULE",477:"CUBEKPIMEMBER",478:"CUBESET",479:"CUBESETCOUNT",480:"IFERROR",481:"COUNTIFS",482:"SUMIFS",483:"AVERAGEIF",484:"AVERAGEIFS"},Ji={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0},Zi={"_xlfn.ACOT":"ACOT","_xlfn.ACOTH":"ACOTH","_xlfn.AGGREGATE":"AGGREGATE","_xlfn.ARABIC":"ARABIC","_xlfn.AVERAGEIF":"AVERAGEIF","_xlfn.AVERAGEIFS":"AVERAGEIFS","_xlfn.BASE":"BASE","_xlfn.BETA.DIST":"BETA.DIST","_xlfn.BETA.INV":"BETA.INV","_xlfn.BINOM.DIST":"BINOM.DIST","_xlfn.BINOM.DIST.RANGE":"BINOM.DIST.RANGE","_xlfn.BINOM.INV":"BINOM.INV","_xlfn.BITAND":"BITAND","_xlfn.BITLSHIFT":"BITLSHIFT","_xlfn.BITOR":"BITOR","_xlfn.BITRSHIFT":"BITRSHIFT","_xlfn.BITXOR":"BITXOR","_xlfn.CEILING.MATH":"CEILING.MATH","_xlfn.CEILING.PRECISE":"CEILING.PRECISE","_xlfn.CHISQ.DIST":"CHISQ.DIST","_xlfn.CHISQ.DIST.RT":"CHISQ.DIST.RT","_xlfn.CHISQ.INV":"CHISQ.INV","_xlfn.CHISQ.INV.RT":"CHISQ.INV.RT","_xlfn.CHISQ.TEST":"CHISQ.TEST","_xlfn.COMBINA":"COMBINA","_xlfn.CONCAT":"CONCAT","_xlfn.CONFIDENCE.NORM":"CONFIDENCE.NORM","_xlfn.CONFIDENCE.T":"CONFIDENCE.T","_xlfn.COT":"COT","_xlfn.COTH":"COTH","_xlfn.COUNTIFS":"COUNTIFS","_xlfn.COVARIANCE.P":"COVARIANCE.P","_xlfn.COVARIANCE.S":"COVARIANCE.S","_xlfn.CSC":"CSC","_xlfn.CSCH":"CSCH","_xlfn.DAYS":"DAYS","_xlfn.DECIMAL":"DECIMAL","_xlfn.ECMA.CEILING":"ECMA.CEILING","_xlfn.ERF.PRECISE":"ERF.PRECISE","_xlfn.ERFC.PRECISE":"ERFC.PRECISE","_xlfn.EXPON.DIST":"EXPON.DIST","_xlfn.F.DIST":"F.DIST","_xlfn.F.DIST.RT":"F.DIST.RT","_xlfn.F.INV":"F.INV","_xlfn.F.INV.RT":"F.INV.RT","_xlfn.F.TEST":"F.TEST","_xlfn.FILTERXML":"FILTERXML","_xlfn.FLOOR.MATH":"FLOOR.MATH","_xlfn.FLOOR.PRECISE":"FLOOR.PRECISE","_xlfn.FORECAST.ETS":"FORECAST.ETS","_xlfn.FORECAST.ETS.CONFINT":"FORECAST.ETS.CONFINT","_xlfn.FORECAST.ETS.SEASONALITY":"FORECAST.ETS.SEASONALITY","_xlfn.FORECAST.ETS.STAT":"FORECAST.ETS.STAT","_xlfn.FORECAST.LINEAR":"FORECAST.LINEAR","_xlfn.FORMULATEXT":"FORMULATEXT","_xlfn.GAMMA":"GAMMA","_xlfn.GAMMA.DIST":"GAMMA.DIST","_xlfn.GAMMA.INV":"GAMMA.INV","_xlfn.GAMMALN.PRECISE":"GAMMALN.PRECISE","_xlfn.GAUSS":"GAUSS","_xlfn.HYPGEOM.DIST":"HYPGEOM.DIST","_xlfn.IFERROR":"IFERROR","_xlfn.IFNA":"IFNA","_xlfn.IFS":"IFS","_xlfn.IMCOSH":"IMCOSH","_xlfn.IMCOT":"IMCOT","_xlfn.IMCSC":"IMCSC","_xlfn.IMCSCH":"IMCSCH","_xlfn.IMSEC":"IMSEC","_xlfn.IMSECH":"IMSECH","_xlfn.IMSINH":"IMSINH","_xlfn.IMTAN":"IMTAN","_xlfn.ISFORMULA":"ISFORMULA","_xlfn.ISO.CEILING":"ISO.CEILING","_xlfn.ISOWEEKNUM":"ISOWEEKNUM","_xlfn.LOGNORM.DIST":"LOGNORM.DIST","_xlfn.LOGNORM.INV":"LOGNORM.INV","_xlfn.MAXIFS":"MAXIFS","_xlfn.MINIFS":"MINIFS","_xlfn.MODE.MULT":"MODE.MULT","_xlfn.MODE.SNGL":"MODE.SNGL","_xlfn.MUNIT":"MUNIT","_xlfn.NEGBINOM.DIST":"NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL":"NETWORKDAYS.INTL","_xlfn.NIGBINOM":"NIGBINOM","_xlfn.NORM.DIST":"NORM.DIST","_xlfn.NORM.INV":"NORM.INV","_xlfn.NORM.S.DIST":"NORM.S.DIST","_xlfn.NORM.S.INV":"NORM.S.INV","_xlfn.NUMBERVALUE":"NUMBERVALUE","_xlfn.PDURATION":"PDURATION","_xlfn.PERCENTILE.EXC":"PERCENTILE.EXC","_xlfn.PERCENTILE.INC":"PERCENTILE.INC","_xlfn.PERCENTRANK.EXC":"PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC":"PERCENTRANK.INC","_xlfn.PERMUTATIONA":"PERMUTATIONA","_xlfn.PHI":"PHI","_xlfn.POISSON.DIST":"POISSON.DIST","_xlfn.QUARTILE.EXC":"QUARTILE.EXC","_xlfn.QUARTILE.INC":"QUARTILE.INC","_xlfn.QUERYSTRING":"QUERYSTRING","_xlfn.RANK.AVG":"RANK.AVG","_xlfn.RANK.EQ":"RANK.EQ","_xlfn.RRI":"RRI","_xlfn.SEC":"SEC","_xlfn.SECH":"SECH","_xlfn.SHEET":"SHEET","_xlfn.SHEETS":"SHEETS","_xlfn.SKEW.P":"SKEW.P","_xlfn.STDEV.P":"STDEV.P","_xlfn.STDEV.S":"STDEV.S","_xlfn.SUMIFS":"SUMIFS","_xlfn.SWITCH":"SWITCH","_xlfn.T.DIST":"T.DIST","_xlfn.T.DIST.2T":"T.DIST.2T","_xlfn.T.DIST.RT":"T.DIST.RT","_xlfn.T.INV":"T.INV","_xlfn.T.INV.2T":"T.INV.2T","_xlfn.T.TEST":"T.TEST","_xlfn.TEXTJOIN":"TEXTJOIN","_xlfn.UNICHAR":"UNICHAR","_xlfn.UNICODE":"UNICODE","_xlfn.VAR.P":"VAR.P","_xlfn.VAR.S":"VAR.S","_xlfn.WEBSERVICE":"WEBSERVICE","_xlfn.WEIBULL.DIST":"WEIBULL.DIST","_xlfn.WORKDAY.INTL":"WORKDAY.INTL","_xlfn.XOR":"XOR","_xlfn.Z.TEST":"Z.TEST"};function Qi(e){return"of:"==e.slice(0,3)&&(e=e.slice(3)),61==e.charCodeAt(0)&&61==(e=e.slice(1)).charCodeAt(0)&&(e=e.slice(1)),(e=(e=(e=e.replace(/COM\.MICROSOFT\./g,"")).replace(/\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g,(function(e,t){return t.replace(/\./g,"")}))).replace(/\[.(#[A-Z]*[?!])\]/g,"$1")).replace(/[;~]/g,",").replace(/\|/g,";")}function eo(e){var t=e.split(":");return[t[0].split(".")[0],t[0].split(".")[1]+(t.length>1?":"+(t[1].split(".")[1]||t[1].split(".")[0]):"")]}var to={},no={};Gn.WS=["http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet","http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet"];var ro="undefined"!=typeof Map;function ao(e,t,n){var r=0,a=e.length;if(n){if(ro?n.has(t):Object.prototype.hasOwnProperty.call(n,t))for(var s=ro?n.get(t):n[t];r-1?(n.width=fs(r),n.customWidth=1):null!=t.width&&(n.width=t.width),t.hidden&&(n.hidden=!0),n}function io(e,t){if(e){var n=[.7,.7,.75,.75,.3,.3];"xlml"==t&&(n=[1,1,1,1,.5,.5]),null==e.left&&(e.left=n[0]),null==e.right&&(e.right=n[1]),null==e.top&&(e.top=n[2]),null==e.bottom&&(e.bottom=n[3]),null==e.header&&(e.header=n[4]),null==e.footer&&(e.footer=n[5])}}function oo(e,t,n){var r=n.revssf[null!=t.z?t.z:"General"],a=60,s=e.length;if(null==r&&n.ssf)for(;a<392;++a)if(null==n.ssf[a]){A.load(t.z,a),n.ssf[a]=t.z,n.revssf[t.z]=r=a;break}for(a=0;a!=s;++a)if(e[a].numFmtId===r)return a;return e[s]={numFmtId:r,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},s}function lo(e,t,n,r,a,s){try{r.cellNF&&(e.z=A._table[t])}catch(e){if(r.WTF)throw e}if("z"!==e.t){if("d"===e.t&&"string"==typeof e.v&&(e.v=Q(e.v)),!r||!1!==r.cellText)try{if(null==A._table[t]&&A.load(R[t]||"General",t),"e"===e.t)e.w=e.w||Ln[e.v];else if(0===t)if("n"===e.t)(0|e.v)===e.v?e.w=A._general_int(e.v):e.w=A._general_num(e.v);else if("d"===e.t){var i=H(e.v);e.w=(0|i)===i?A._general_int(i):A._general_num(i)}else{if(void 0===e.v)return"";e.w=A._general(e.v,no)}else"d"===e.t?e.w=A.format(t,H(e.v),no):e.w=A.format(t,e.v,no)}catch(e){if(r.WTF)throw e}if(r.cellStyles&&null!=n)try{e.s=s.Fills[n],e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb&&(e.s.fgColor.rgb=ls(a.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0),r.WTF&&(e.s.fgColor.raw_rgb=a.themeElements.clrScheme[e.s.fgColor.theme].rgb)),e.s.bgColor&&e.s.bgColor.theme&&(e.s.bgColor.rgb=ls(a.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0),r.WTF&&(e.s.bgColor.raw_rgb=a.themeElements.clrScheme[e.s.bgColor.theme].rgb))}catch(e){if(r.WTF&&s.Fills)throw e}}}function uo(e,t,n){if(e&&e["!ref"]){var r=Qt(e["!ref"]);if(r.e.c/g,ho=/<(?:\w+:)?sheetData[^>]*>([\s\S]*)<\/(?:\w+:)?sheetData>/,fo=/<(?:\w:)?hyperlink [^>]*>/gm,po=/"(\w*:\w*)"/,mo=/<(?:\w:)?col\b[^>]*[\/]?>/g,go=/<(?:\w:)?autoFilter[^>]*([\/]|>([\s\S]*)<\/(?:\w:)?autoFilter)>/g,yo=/<(?:\w:)?pageMargins[^>]*\/>/g,bo=/<(?:\w:)?sheetPr\b(?:[^>a-z][^>]*)?\/>/,vo=/<(?:\w:)?sheetViews[^>]*(?:[\/]|>([\s\S]*)<\/(?:\w:)?sheetViews)>/;function wo(e,t,n,r){var a=we(e);n.Sheets[r]||(n.Sheets[r]={}),a.codeName&&(n.Sheets[r].CodeName=Se(Be(a.codeName)))}var _o=["objects","scenarios","selectLockedCells","selectUnlockedCells"],xo=["formatColumns","formatRows","formatCells","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables"],ko=/<(?:\w:)?sheetView(?:[^>a-z][^>]*)?\/?>/;function Eo(e,t,n,r){if(void 0===e.v&&"string"!=typeof e.f||"z"===e.t)return"";var a="",s=e.t,i=e.v;if("z"!==e.t)switch(e.t){case"b":a=e.v?"1":"0";break;case"n":a=""+e.v;break;case"e":a=Ln[e.v];break;case"d":r&&r.cellDates?a=Q(e.v,-1).toISOString():((e=te(e)).t="n",a=""+(e.v=H(Q(e.v)))),void 0===e.z&&(e.z=A._table[14]);break;default:a=e.v}var o=Ye("v",Ae(a)),l={r:t},u=oo(r.cellXfs,e,r);switch(0!==u&&(l.s=u),e.t){case"n":break;case"d":l.t="d";break;case"b":l.t="b";break;case"e":l.t="e";break;case"z":break;default:if(null==e.v){delete e.t;break}if(r&&r.bookSST){o=Ye("v",""+ao(r.Strings,e.v,r.revStrings)),l.t="s";break}l.t="str"}if(e.t!=s&&(e.t=s,e.v=i),"string"==typeof e.f&&e.f){var c=e.F&&e.F.slice(0,t.length)==t?{t:"array",ref:e.F}:null;o=Ze("f",Ae(e.f),c)+(null!=e.v?o:"")}return e.l&&n["!links"].push([t,e.l]),e.c&&n["!comments"].push([t,e.c]),Ze("c",o,l)}var Co,So,No,Io,Ao,Do,To,Fo=(Co=/<(?:\w+:)?c[ \/>]/,So=/<\/(?:\w+:)?row>/,No=/r=["']([^"']*)["']/,Io=/<(?:\w+:)?is>([\S\s]*?)<\/(?:\w+:)?is>/,Ao=/ref=["']([^"']*)["']/,Do=Ve("v"),To=Ve("f"),function(e,t,n,r,a,s){for(var i,o,l,u,c,h=0,f="",d=[],p=[],m=0,g=0,y=0,b="",v=0,w=0,_=0,x=0,k=Array.isArray(s.CellXf),E=[],C=[],S=Array.isArray(t),N=[],I={},D=!1,T=!!n.sheetStubs,F=e.split(So),R=0,O=F.length;R!=O;++R){var B=(f=F[R].trim()).length;if(0!==B){for(h=0;hv-1&&(r.s.r=v-1),r.e.r":"")+f,null!=p&&2===p.length){for(m=0,b=p[1],g=0;g!=b.length&&!((y=b.charCodeAt(g)-64)<1||y>26);++g)m=26*m+y;w=--m}else++w;for(g=0;g!=f.length&&62!==f.charCodeAt(g);++g);if(++g,(o=we(f.slice(0,g),!0)).r||(o.r=Yt({r:v-1,c:w})),i={t:""},null!=(p=(b=f.slice(g)).match(Do))&&""!==p[1]&&(i.v=Se(p[1])),n.cellFormula){if(null!=(p=b.match(To))&&""!==p[1]){if(i.f=Se(Be(p[1])).replace(/\r\n/g,"\n"),n.xlfn||(i.f=si(i.f)),p[0].indexOf('t="array"')>-1)i.F=(b.match(Ao)||[])[1],i.F.indexOf(":")>-1&&E.push([Qt(i.F),i.F]);else if(p[0].indexOf('t="shared"')>-1){u=we(p[0]);var $=Se(Be(p[1]));n.xlfn||($=si($)),C[parseInt(u.si,10)]=[u,$,o.r]}}else(p=b.match(/]*\/>/))&&C[(u=we(p[0])).si]&&(i.f=ai(C[u.si][1],C[u.si][2],o.r));var P=qt(o.r);for(g=0;g=E[g][0].s.r&&P.r<=E[g][0].e.r&&P.c>=E[g][0].s.c&&P.c<=E[g][0].e.c&&(i.F=E[g][1])}if(null==o.t&&void 0===i.v)if(i.f||i.F)i.v=0,i.t="n";else{if(!T)continue;i.t="z"}else i.t=o.t||"n";switch(r.s.c>w&&(r.s.c=w),r.e.c0&&(t["!rows"]=N)}),Ro=Ze("worksheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function Oo(e,t,n,r){var a,s=[me,Ro],i=n.SheetNames[e],o="",l=n.Sheets[i];null==l&&(l={});var u=l["!ref"]||"A1",c=Qt(u);if(c.e.c>16383||c.e.r>1048575){if(t.WTF)throw new Error("Range "+u+" exceeds format limit A1:XFD1048576");c.e.c=Math.min(c.e.c,16383),c.e.r=Math.min(c.e.c,1048575),u=Zt(c)}r||(r={}),l["!comments"]=[];var h=[];!function(e,t,n,r,a){var s=!1,i={},o=null;if("xlsx"!==r.bookType&&t.vbaraw){var l=t.SheetNames[n];try{t.Workbook&&(l=t.Workbook.Sheets[n].CodeName||l)}catch(e){}s=!0,i.codeName=Me(Ae(l))}if(e&&e["!outline"]){var u={summaryBelow:1,summaryRight:1};e["!outline"].above&&(u.summaryBelow=0),e["!outline"].left&&(u.summaryRight=0),o=(o||"")+Ze("outlinePr",null,u)}(s||o)&&(a[a.length]=Ze("sheetPr",o,i))}(l,n,e,t,s),s[s.length]=Ze("dimension",null,{ref:u}),s[s.length]=function(e,t,n,r){var a={workbookViewId:"0"};return(((r||{}).Workbook||{}).Views||[])[0]&&(a.rightToLeft=r.Workbook.Views[0].RTL?"1":"0"),Ze("sheetViews",Ze("sheetView",null,a),{})}(0,0,0,n),t.sheetFormat&&(s[s.length]=Ze("sheetFormatPr",null,{defaultRowHeight:t.sheetFormat.defaultRowHeight||"16",baseColWidth:t.sheetFormat.baseColWidth||"10",outlineLevelRow:t.sheetFormat.outlineLevelRow||"7"})),null!=l["!cols"]&&l["!cols"].length>0&&(s[s.length]=function(e,t){for(var n,r=[""],a=0;a!=t.length;++a)(n=t[a])&&(r[r.length]=Ze("col",null,so(a,n)));return r[r.length]="",r.join("")}(0,l["!cols"])),s[a=s.length]="",l["!links"]=[],null!=l["!ref"]&&(o=function(e,t,n,r){var a,s,i=[],o=[],l=Qt(e["!ref"]),u="",c="",h=[],f=0,d=0,p=e["!rows"],m=Array.isArray(e),g={r:c},y=-1;for(d=l.s.c;d<=l.e.c;++d)h[d]=Kt(d);for(f=l.s.r;f<=l.e.r;++f){for(o=[],c=Gt(f),d=l.s.c;d<=l.e.c;++d){a=h[d]+c;var b=m?(e[f]||[])[d]:e[a];void 0!==b&&null!=(u=Eo(b,a,e,t))&&o.push(u)}(o.length>0||p&&p[f])&&(g={r:c},p&&p[f]&&((s=p[f]).hidden&&(g.hidden=1),y=-1,s.hpx?y=gs(s.hpx):s.hpt&&(y=s.hpt),y>-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level)),i[i.length]=Ze("row",o.join(""),g))}if(p)for(;f-1&&(g.ht=y,g.customHeight=1),s.level&&(g.outlineLevel=s.level),i[i.length]=Ze("row","",g));return i.join("")}(l,t)).length>0&&(s[s.length]=o),s.length>a+1&&(s[s.length]="",s[a]=s[a].replace("/>",">")),null!=l["!protect"]&&(s[s.length]=function(e){var t={sheet:1};return _o.forEach((function(n){null!=e[n]&&e[n]&&(t[n]="1")})),xo.forEach((function(n){null==e[n]||e[n]||(t[n]="0")})),e.password&&(t.password=es(e.password).toString(16).toUpperCase()),Ze("sheetProtection",null,t)}(l["!protect"])),null!=l["!autofilter"]&&(s[s.length]=function(e,t,n,r){var a="string"==typeof e.ref?e.ref:Zt(e.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var s=n.Workbook.Names,i=Jt(a);i.s.r==i.e.r&&(i.e.r=Jt(t["!ref"]).e.r,a=Zt(i));for(var o=0;o0&&(s[s.length]=function(e){if(0===e.length)return"";for(var t='',n=0;n!=e.length;++n)t+='';return t+""}(l["!merges"]));var f,d,p=-1,m=-1;return l["!links"].length>0&&(s[s.length]="",l["!links"].forEach((function(e){e[1].Target&&(f={ref:e[0]},"#"!=e[1].Target.charAt(0)&&(m=Zn(r,-1,Ae(e[1].Target).replace(/#.*$/,""),Gn.HLINK),f["r:id"]="rId"+m),(p=e[1].Target.indexOf("#"))>-1&&(f.location=Ae(e[1].Target.slice(p+1))),e[1].Tooltip&&(f.tooltip=Ae(e[1].Tooltip)),s[s.length]=Ze("hyperlink",null,f))})),s[s.length]=""),delete l["!links"],null!=l["!margins"]&&(s[s.length]=(io(d=l["!margins"]),Ze("pageMargins",null,d))),t&&!t.ignoreEC&&null!=t.ignoreEC||(s[s.length]=Ye("ignoredErrors",Ze("ignoredError",null,{numberStoredAsText:1,sqref:u}))),h.length>0&&(m=Zn(r,-1,"../drawings/drawing"+(e+1)+".xml",Gn.DRAW),s[s.length]=Ze("drawing",null,{"r:id":"rId"+m}),l["!drawing"]=h),l["!comments"].length>0&&(m=Zn(r,-1,"../drawings/vmlDrawing"+(e+1)+".vml",Gn.VML),s[s.length]=Ze("legacyDrawing",null,{"r:id":"rId"+m}),l["!legacy"]=m),s.length>1&&(s[s.length]="",s[1]=s[1].replace("/>",">")),s.join("")}function Bo(e,t,n,r){var a=function(e,t,n){var r=$t(145),a=(n["!rows"]||[])[e]||{};r.write_shift(4,e),r.write_shift(4,0);var s=320;a.hpx?s=20*gs(a.hpx):a.hpt&&(s=20*a.hpt),r.write_shift(2,s),r.write_shift(1,0);var i=0;a.level&&(i|=a.level),a.hidden&&(i|=16),(a.hpx||a.hpt)&&(i|=32),r.write_shift(1,i),r.write_shift(1,0);var o=0,l=r.l;r.l+=4;for(var u={r:e,c:0},c=0;c<16;++c)if(!(t.s.c>c+1<<10||t.e.cr.l?r.slice(0,r.l):r}(r,n,t);(a.length>17||(t["!rows"]||[])[r])&&zt(e,"BrtRowHdr",a)}var Mo=xn,$o=kn;var Po=xn,Lo=kn,zo=["left","right","top","bottom","header","footer"];function Wo(e,t,n,r,a,s){if(void 0!==t.v){var i="";switch(t.t){case"b":i=t.v?"1":"0";break;case"d":(t=te(t)).z=t.z||A._table[14],t.v=H(Q(t.v)),t.t="n";break;case"n":case"e":i=""+t.v;break;default:i=t.v}var o={r:n,c:r};switch(o.s=oo(a.cellXfs,t,a),t.l&&s["!links"].push([Yt(o),t.l]),t.c&&s["!comments"].push([Yt(o),t.c]),t.t){case"s":case"str":return void(a.bookSST?(i=ao(a.Strings,t.v,a.revStrings),o.t="s",o.v=i,zt(e,"BrtCellIsst",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),n.write_shift(4,t.v),n}(0,o))):(o.t="str",zt(e,"BrtCellSt",function(e,t,n){return null==n&&(n=$t(12+4*e.v.length)),fn(t,n),on(e.v,n),n.length>n.l?n.slice(0,n.l):n}(t,o))));case"n":return void(t.v==(0|t.v)&&t.v>-1e3&&t.v<1e3?zt(e,"BrtCellRk",function(e,t,n){return null==n&&(n=$t(12)),fn(t,n),function(e,t){null==t&&(t=$t(4));var n=0,r=0,a=100*e;if(e==(0|e)&&e>=-(1<<29)&&e<1<<29?r=1:a==(0|a)&&a>=-(1<<29)&&a<1<<29&&(r=1,n=1),!r)throw new Error("unsupported RkNumber "+e);t.write_shift(-4,((n?a:e)<<2)+(n+2))}(e.v,n),n}(t,o)):zt(e,"BrtCellReal",function(e,t,n){return null==n&&(n=$t(16)),fn(t,n),Cn(e.v,n),n}(t,o)));case"b":return o.t="b",void zt(e,"BrtCellBool",function(e,t,n){return null==n&&(n=$t(9)),fn(t,n),n.write_shift(1,e.v?1:0),n}(t,o));case"e":o.t="e"}zt(e,"BrtCellBlank",function(e,t,n){return null==n&&(n=$t(8)),fn(t,n)}(0,o))}}function Uo(e,t,n,r){var a=Lt(),s=n.SheetNames[e],i=n.Sheets[s]||{},o=s;try{n&&n.Workbook&&(o=n.Workbook.Sheets[e].CodeName||o)}catch(e){}var l=Qt(i["!ref"]||"A1");if(l.e.c>16383||l.e.r>1048575){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:XFD1048576");l.e.c=Math.min(l.e.c,16383),l.e.r=Math.min(l.e.c,1048575)}return i["!links"]=[],i["!comments"]=[],zt(a,"BrtBeginSheet"),n.vbaraw&&zt(a,"BrtWsProp",function(e,t){null==t&&(t=$t(84+4*e.length));for(var n=0;n<3;++n)t.write_shift(1,0);return Sn({auto:1},t),t.write_shift(-4,-1),t.write_shift(-4,-1),pn(e,t),t.slice(0,t.l)}(o)),zt(a,"BrtWsDim",$o(l)),function(e,t,n){zt(e,"BrtBeginWsViews"),zt(e,"BrtBeginWsView",function(e,t,n){null==n&&(n=$t(30));var r=924;return(((t||{}).Views||[])[0]||{}).RTL&&(r|=32),n.write_shift(2,r),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(4,0),n.write_shift(1,0),n.write_shift(1,0),n.write_shift(2,0),n.write_shift(2,100),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(2,0),n.write_shift(4,0),n}(0,n)),zt(e,"BrtEndWsView"),zt(e,"BrtEndWsViews")}(a,0,n.Workbook),function(e,t){t&&t["!cols"]&&(zt(e,"BrtBeginColInfos"),t["!cols"].forEach((function(t,n){t&&zt(e,"BrtColInfo",function(e,t,n){null==n&&(n=$t(18));var r=so(e,t);n.write_shift(-4,e),n.write_shift(-4,e),n.write_shift(4,256*(r.width||10)),n.write_shift(4,0);var a=0;return t.hidden&&(a|=1),"number"==typeof r.width&&(a|=2),t.level&&(a|=t.level<<8),n.write_shift(2,a),n}(n,t))})),zt(e,"BrtEndColInfos"))}(a,i),function(e,t,n,r){var a,s=Qt(t["!ref"]||"A1"),i="",o=[];zt(e,"BrtBeginSheetData");var l=Array.isArray(t),u=s.e.r;t["!rows"]&&(u=Math.max(s.e.r,t["!rows"].length-1));for(var c=s.s.r;c<=u;++c)if(i=Gt(c),Bo(e,t,s,c),c<=s.e.r)for(var h=s.s.c;h<=s.e.c;++h){c===s.s.r&&(o[h]=Kt(h)),a=o[h]+i;var f=l?(t[c]||[])[h]:t[a];f&&Wo(e,f,c,h,r,t)}zt(e,"BrtEndSheetData")}(a,i,0,t),function(e,t){t["!protect"]&&zt(e,"BrtSheetProtection",function(e,t){return null==t&&(t=$t(66)),t.write_shift(2,e.password?es(e.password):0),t.write_shift(4,1),[["objects",!1],["scenarios",!1],["formatCells",!0],["formatColumns",!0],["formatRows",!0],["insertColumns",!0],["insertRows",!0],["insertHyperlinks",!0],["deleteColumns",!0],["deleteRows",!0],["selectLockedCells",!1],["sort",!0],["autoFilter",!0],["pivotTables",!0],["selectUnlockedCells",!1]].forEach((function(n){n[1]?t.write_shift(4,null==e[n[0]]||e[n[0]]?0:1):t.write_shift(4,null!=e[n[0]]&&e[n[0]]?0:1)})),t}(t["!protect"]))}(a,i),function(e,t,n,r){if(t["!autofilter"]){var a=t["!autofilter"],s="string"==typeof a.ref?a.ref:Zt(a.ref);n.Workbook||(n.Workbook={Sheets:[]}),n.Workbook.Names||(n.Workbook.Names=[]);var i=n.Workbook.Names,o=Jt(s);o.s.r==o.e.r&&(o.e.r=Jt(t["!ref"]).e.r,s=Zt(o));for(var l=0;l0){var a=Zn(r,-1,"../drawings/vmlDrawing"+(n+1)+".vml",Gn.VML);zt(e,"BrtLegacyDrawing",vn("rId"+a)),t["!legacy"]=a}}(a,i,e,r),zt(a,"BrtEndSheet"),a.end()}Gn.CHART="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart",Gn.CHARTEX="http://schemas.microsoft.com/office/2014/relationships/chartEx",Gn.CS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet",Ze("chartsheet",null,{xmlns:nt.main[0],"xmlns:r":nt.r});var Vo=[["allowRefreshQuery",!1,"bool"],["autoCompressPictures",!0,"bool"],["backupFile",!1,"bool"],["checkCompatibility",!1,"bool"],["CodeName",""],["date1904",!1,"bool"],["defaultThemeVersion",0,"int"],["filterPrivacy",!1,"bool"],["hidePivotFieldList",!1,"bool"],["promptedSolutions",!1,"bool"],["publishItems",!1,"bool"],["refreshAllConnections",!1,"bool"],["saveExternalLinkValues",!0,"bool"],["showBorderUnselectedTables",!0,"bool"],["showInkAnnotation",!0,"bool"],["showObjects","all"],["showPivotChartFilter",!1,"bool"],["updateLinks","userSet"]],jo=[["activeTab",0,"int"],["autoFilterDateGrouping",!0,"bool"],["firstSheet",0,"int"],["minimized",!1,"bool"],["showHorizontalScroll",!0,"bool"],["showSheetTabs",!0,"bool"],["showVerticalScroll",!0,"bool"],["tabRatio",600,"int"],["visibility","visible"]],Ho=[],Go=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];function Xo(e,t){for(var n=0;n!=e.length;++n)for(var r=e[n],a=0;a!=t.length;++a){var s=t[a];if(null==r[s[0]])r[s[0]]=s[1];else switch(s[2]){case"bool":"string"==typeof r[s[0]]&&(r[s[0]]=Oe(r[s[0]]));break;case"int":"string"==typeof r[s[0]]&&(r[s[0]]=parseInt(r[s[0]],10))}}}function Ko(e,t){for(var n=0;n!=t.length;++n){var r=t[n];if(null==e[r[0]])e[r[0]]=r[1];else switch(r[2]){case"bool":"string"==typeof e[r[0]]&&(e[r[0]]=Oe(e[r[0]]));break;case"int":"string"==typeof e[r[0]]&&(e[r[0]]=parseInt(e[r[0]],10))}}}function qo(e){Ko(e.WBProps,Vo),Ko(e.CalcPr,Go),Xo(e.WBView,jo),Xo(e.Sheets,Ho),no.date1904=Oe(e.WBProps.date1904)}var Yo="][*?/\\".split("");function Jo(e,t){if(e.length>31){if(t)return!1;throw new Error("Sheet names cannot exceed 31 chars")}var n=!0;return Yo.forEach((function(r){if(-1!=e.indexOf(r)){if(!t)throw new Error("Sheet name cannot contain : \\ / ? * [ ]");n=!1}})),n}var Zo=/<\w+:workbook/,Qo=Ze("workbook",null,{xmlns:nt.main[0],"xmlns:r":nt.r});function el(e){var t=[me];t[t.length]=Qo;var n=e.Workbook&&(e.Workbook.Names||[]).length>0,r={codeName:"ThisWorkbook"};e.Workbook&&e.Workbook.WBProps&&(Vo.forEach((function(t){null!=e.Workbook.WBProps[t[0]]&&e.Workbook.WBProps[t[0]]!=t[1]&&(r[t[0]]=e.Workbook.WBProps[t[0]])})),e.Workbook.WBProps.CodeName&&(r.codeName=e.Workbook.WBProps.CodeName,delete r.CodeName)),t[t.length]=Ze("workbookPr",null,r);var a=e.Workbook&&e.Workbook.Sheets||[],s=0;if(a&&a[0]&&a[0].Hidden){for(t[t.length]="",s=0;s!=e.SheetNames.length&&a[s]&&a[s].Hidden;++s);s==e.SheetNames.length&&(s=0),t[t.length]='',t[t.length]=""}for(t[t.length]="",s=0;s!=e.SheetNames.length;++s){var i={name:Ae(e.SheetNames[s].slice(0,31))};if(i.sheetId=""+(s+1),i["r:id"]="rId"+(s+1),a[s])switch(a[s].Hidden){case 1:i.state="hidden";break;case 2:i.state="veryHidden"}t[t.length]=Ze("sheet",null,i)}return t[t.length]="",n&&(t[t.length]="",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach((function(e){var n={name:e.Name};e.Comment&&(n.comment=e.Comment),null!=e.Sheet&&(n.localSheetId=""+e.Sheet),e.Hidden&&(n.hidden="1"),e.Ref&&(t[t.length]=Ze("definedName",Ae(e.Ref),n))})),t[t.length]=""),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}function tl(e,t){return t||(t=$t(127)),t.write_shift(4,e.Hidden),t.write_shift(4,e.iTabID),vn(e.strRelID,t),on(e.name.slice(0,31),t),t.length>t.l?t.slice(0,t.l):t}function nl(e,n){var r=Lt();return zt(r,"BrtBeginBook"),zt(r,"BrtFileVersion",function(e,n){n||(n=$t(127));for(var r=0;4!=r;++r)n.write_shift(4,0);return on("SheetJS",n),on(t.version,n),on(t.version,n),on("7262",n),n.length=n.l,n.length>n.l?n.slice(0,n.l):n}()),zt(r,"BrtWbProp",function(e,t){t||(t=$t(72));var n=0;return e&&e.filterPrivacy&&(n|=8),t.write_shift(4,n),t.write_shift(4,0),pn(e&&e.CodeName||"ThisWorkbook",t),t.slice(0,t.l)}(e.Workbook&&e.Workbook.WBProps||null)),function(e,t){if(t.Workbook&&t.Workbook.Sheets){for(var n=t.Workbook.Sheets,r=0,a=-1,s=-1;ra||(zt(e,"BrtBeginBookViews"),zt(e,"BrtBookView",function(e,t){return t||(t=$t(29)),t.write_shift(-4,0),t.write_shift(-4,460),t.write_shift(4,28800),t.write_shift(4,17600),t.write_shift(4,500),t.write_shift(4,e),t.write_shift(4,e),t.write_shift(1,120),t.length>t.l?t.slice(0,t.l):t}(a)),zt(e,"BrtEndBookViews"))}}(r,e),function(e,t){zt(e,"BrtBeginBundleShs");for(var n=0;n!=t.SheetNames.length;++n)zt(e,"BrtBundleSh",tl({Hidden:t.Workbook&&t.Workbook.Sheets&&t.Workbook.Sheets[n]&&t.Workbook.Sheets[n].Hidden||0,iTabID:n+1,strRelID:"rId"+(n+1),name:t.SheetNames[n]}));zt(e,"BrtEndBundleShs")}(r,e),zt(r,"BrtEndBook"),r.end()}function rl(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a,s,i){if(!e)return e;var o=t||{};r||(r={"!id":{}});var l,u,c,h,f,d,p,m,g,y,b=o.dense?[]:{},v={s:{r:2e6,c:2e6},e:{r:0,c:0}},w=[],_=!1,x=!1,k=[];o.biff=12,o["!row"]=0;var E=0,C=!1,S=[],N={},I=o.supbooks||a.supbooks||[[]];if(I.sharedf=N,I.arrayf=S,I.SheetNames=a.SheetNames||a.Sheets.map((function(e){return e.name})),!o.supbooks&&(o.supbooks=I,a.Names))for(var D=0;D=O[0].s.r&&u.r<=O[0].e.r&&d>=O[0].s.c&&d<=O[0].e.c&&(c.F=Zt(O[0]),C=!0)}!C&&e.length>3&&(c.f=e[3])}if(v.s.r>u.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.ru.r&&(v.s.r=u.r),v.s.c>d&&(v.s.c=d),v.e.r=e.s;)T[e.e--]={width:e.w/256,hidden:!!(1&e.flags),level:e.level},R||(R=!0,ps(e.w/256)),ms(T[e.e+1]);break;case 161:b["!autofilter"]={ref:Zt(e)};break;case 476:b["!margins"]=e;break;case 147:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 137:a.Views||(a.Views=[{}]),a.Views[0]||(a.Views[0]={}),e.RTL&&(a.Views[0].RTL=!0);break;case 485:break;case 64:case 1053:case 151:break;case 175:case 644:case 625:case 562:case 396:case 1112:case 1146:case 471:case 1050:case 649:case 1105:case 49:case 589:case 607:case 564:case 1055:case 168:case 174:case 1180:case 499:case 507:case 550:case 171:case 167:case 1177:case 169:case 1181:case 551:case 552:case 661:case 639:case 478:case 537:case 477:case 536:case 1103:case 680:case 1104:case 1024:case 152:case 663:case 535:case 678:case 504:case 1043:case 428:case 170:case 3072:case 50:case 2070:case 1045:break;case 35:_=!0;break;case 36:_=!1;break;case 37:w.push(t),_=!0;break;case 38:w.pop(),_=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!_||o.WTF)throw new Error("Unexpected record "+D+" "+t)}}),o),delete o.supbooks,delete o["!row"],!b["!ref"]&&(v.s.r<2e6||l&&(l.e.r>0||l.e.c>0||l.s.r>0||l.s.c>0))&&(b["!ref"]=Zt(l||v)),o.sheetRows&&b["!ref"]){var O=Qt(b["!ref"]);o.sheetRows<=+O.e.r&&(O.e.r=o.sheetRows-1,O.e.r>v.e.r&&(O.e.r=v.e.r),O.e.rv.e.c&&(O.e.c=v.e.c),O.e.c0&&(b["!merges"]=k),T.length>0&&(b["!cols"]=T),F.length>0&&(b["!rows"]=F),b}(e,r,n,a,s,i,o):function(e,t,n,r,a,s,i){if(!e)return e;r||(r={"!id":{}});var o=t.dense?[]:{},l={s:{r:2e6,c:2e6},e:{r:0,c:0}},u="",c="",h=e.match(ho);h?(u=e.slice(0,h.index),c=e.slice(h.index+h[0].length)):u=c=e;var f=u.match(bo);f&&wo(f[0],0,a,n);var d=(u.match(/<(?:\w*:)?dimension/)||{index:-1}).index;if(d>0){var p=u.slice(d,d+50).match(po);p&&function(e,t){var n=Qt(t);n.s.r<=n.e.r&&n.s.c<=n.e.c&&n.s.r>=0&&n.s.c>=0&&(e["!ref"]=Zt(n))}(o,p[1])}var m=u.match(vo);m&&m[1]&&function(e,t){t.Views||(t.Views=[{}]),(e.match(ko)||[]).forEach((function(e,n){var r=we(e);t.Views[n]||(t.Views[n]={}),Oe(r.rightToLeft)&&(t.Views[n].RTL=!0)}))}(m[1],a);var g=[];if(t.cellStyles){var y=u.match(mo);y&&function(e,t){for(var n=!1,r=0;r!=t.length;++r){var a=we(t[r],!0);a.hidden&&(a.hidden=Oe(a.hidden));var s=parseInt(a.min,10)-1,i=parseInt(a.max,10)-1;for(delete a.min,delete a.max,a.width=+a.width,!n&&a.width&&(n=!0,ps(a.width)),ms(a);s<=i;)e[s++]=te(a)}}(g,y)}h&&Fo(h[1],o,t,l,s,i);var b=c.match(go);b&&(o["!autofilter"]=function(e){return{ref:(e.match(/ref="([^"]*)"/)||[])[1]}}(b[0]));var v=[],w=c.match(co);if(w)for(d=0;d!=w.length;++d)v[d]=Qt(w[d].slice(w[d].indexOf('"')+1));var _=c.match(fo);_&&function(e,t,n){for(var r=Array.isArray(e),a=0;a!=t.length;++a){var s=we(Be(t[a]),!0);if(!s.ref)return;var i=((n||{})["!id"]||[])[s.id];i?(s.Target=i.Target,s.location&&(s.Target+="#"+s.location)):(s.Target="#"+s.location,i={Target:s.Target,TargetMode:"Internal"}),s.Rel=i,s.tooltip&&(s.Tooltip=s.tooltip,delete s.tooltip);for(var o=Qt(s.ref),l=o.s.r;l<=o.e.r;++l)for(var u=o.s.c;u<=o.e.c;++u){var c=Yt({c:u,r:l});r?(e[l]||(e[l]=[]),e[l][u]||(e[l][u]={t:"z",v:void 0}),e[l][u].l=s):(e[c]||(e[c]={t:"z",v:void 0}),e[c].l=s)}}}(o,_,r);var x=c.match(yo);if(x&&(o["!margins"]=function(e){var t={};return["left","right","top","bottom","header","footer"].forEach((function(n){e[n]&&(t[n]=parseFloat(e[n]))})),t}(we(x[0]))),!o["!ref"]&&l.e.c>=l.s.c&&l.e.r>=l.s.r&&(o["!ref"]=Zt(l)),t.sheetRows>0&&o["!ref"]){var k=Qt(o["!ref"]);t.sheetRows<=+k.e.r&&(k.e.r=t.sheetRows-1,k.e.r>l.e.r&&(k.e.r=l.e.r),k.e.rl.e.c&&(k.e.c=l.e.c),k.e.c0&&(o["!cols"]=g),v.length>0&&(o["!merges"]=v),o}(e,r,n,a,s,i,o)}function al(e,t,n){return(".bin"===t.slice(-4)?nl:el)(e,n)}function sl(e,t,n,r,a){return(".bin"===t.slice(-4)?Uo:Oo)(e,n,r,a)}function il(e,t,n){return(".bin"===t.slice(-4)?Ha:Va)(e,n)}function ol(e,t,n){return(".bin"===t.slice(-4)?Qs:Js)(e,n)}var ll=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g,ul=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;function cl(e,t){var n=e.split(/\s+/),r=[];if(t||(r[0]=n[0]),1===n.length)return r;var a,s,i,o=e.match(ll);if(o)for(i=0;i!=o.length;++i)-1===(s=(a=o[i].match(ul))[1].indexOf(":"))?r[a[1]]=a[2].slice(1,a[2].length-1):r["xmlns:"===a[1].slice(0,6)?"xmlns"+a[1].slice(6):a[1].slice(s+1)]=a[2].slice(1,a[2].length-1);return r}function hl(e){var t={};if(1===e.split(/\s+/).length)return t;var n,r,a,s=e.match(ll);if(s)for(a=0;a!=s.length;++a)-1===(r=(n=s[a].match(ul))[1].indexOf(":"))?t[n[1]]=n[2].slice(1,n[2].length-1):t["xmlns:"===n[1].slice(0,6)?"xmlns"+n[1].slice(6):n[1].slice(r+1)]=n[2].slice(1,n[2].length-1);return t}function fl(e,t,n,r){var a=r;switch((n[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":a=Oe(r);break;case"i2":case"int":a=parseInt(r,10);break;case"r4":case"float":a=parseFloat(r);break;case"date":case"dateTime.tz":a=Q(r);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw new Error("bad custprop:"+n[0])}e[Se(t)]=a}function dl(e,t,n){if(n.cellStyles&&t.Interior){var r=t.Interior;r.Pattern&&(r.patternType=ks[r.Pattern]||r.Pattern)}e[t.ID]=t}function pl(e,t,n,r,a,s,i,o,l,u){var c="General",h=r.StyleID,f={};u=u||{};var d=[],p=0;for(void 0===h&&o&&(h=o.StyleID),void 0===h&&i&&(h=i.StyleID);void 0!==s[h]&&(s[h].nf&&(c=s[h].nf),s[h].Interior&&d.push(s[h].Interior),s[h].Parent);)h=s[h].Parent;switch(n.Type){case"Boolean":r.t="b",r.v=Oe(e);break;case"String":r.t="s",r.r=Re(Se(e)),r.v=e.indexOf("<")>-1?Se(t||e).replace(/<.*?>/g,""):r.r;break;case"DateTime":"Z"!=e.slice(-1)&&(e+="Z"),r.v=(Q(e)-new Date(Date.UTC(1899,11,30)))/864e5,r.v!=r.v?r.v=Se(e):r.v<60&&(r.v=r.v-1),c&&"General"!=c||(c="yyyy-mm-dd");case"Number":void 0===r.v&&(r.v=+e),r.t||(r.t="n");break;case"Error":r.t="e",r.v=zn[e],!1!==u.cellText&&(r.w=e);break;default:""==e&&""==t?r.t="z":(r.t="s",r.v=Re(t||e))}if(function(e,t,n){if("z"!==e.t){if(!n||!1!==n.cellText)try{"e"===e.t?e.w=e.w||Ln[e.v]:"General"===t?"n"===e.t?(0|e.v)===e.v?e.w=A._general_int(e.v):e.w=A._general_num(e.v):e.w=A._general(e.v):e.w=(r=t||"General",a=e.v,"General"===(s=F[r]||Se(r))?A._general(a):A.format(s,a))}catch(e){if(n.WTF)throw e}var r,a,s;try{var i=F[t]||t||"General";if(n.cellNF&&(e.z=i),n.cellDates&&"n"==e.t&&A.is_date(i)){var o=A.parse_date_code(e.v);o&&(e.t="d",e.v=new Date(o.y,o.m-1,o.d,o.H,o.M,o.S,o.u))}}catch(e){if(n.WTF)throw e}}}(r,c,u),!1!==u.cellFormula)if(r.Formula){var m=Se(r.Formula);61==m.charCodeAt(0)&&(m=m.slice(1)),r.f=ti(m,a),delete r.Formula,"RC"==r.ArrayRange?r.F=ti("RC:RC",a):r.ArrayRange&&(r.F=ti(r.ArrayRange,a),l.push([Qt(r.F),r.F]))}else for(p=0;p=l[p][0].s.r&&a.r<=l[p][0].e.r&&a.c>=l[p][0].s.c&&a.c<=l[p][0].e.c&&(r.F=l[p][1]);u.cellStyles&&(d.forEach((function(e){!f.patternType&&e.patternType&&(f.patternType=e.patternType)})),r.s=f),void 0!==r.StyleID&&(r.ixfe=r.StyleID)}function ml(e){e.t=e.v||"",e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),e.v=e.w=e.ixfe=void 0}function gl(e){if(y&&Buffer.isBuffer(e))return e.toString("utf8");if("string"==typeof e)return e;if("undefined"!=typeof Uint8Array&&e instanceof Uint8Array)return Be(E(C(e)));throw new Error("Bad input format: expected Buffer or string")}var yl=/<(\/?)([^\s?>:\/]+)(?:[\s?:\/][^>]*)?>/gm;function bl(e,t){var n=t||{};D(A);var r=f(gl(e));"binary"!=n.type&&"array"!=n.type&&"base64"!=n.type||(r="undefined"!=typeof cptable?cptable.utils.decode(65001,h(r)):Be(r));var a,s=r.slice(0,1024).toLowerCase(),i=!1;if(-1==s.indexOf("=0&&(i=!0)})),i)return Ul.to_workbook(r,n);var o,l,u=[],c={},d=[],p=n.dense?[]:{},m="",g={},y={},b=cl(''),v=0,w=0,_=0,x={s:{r:2e6,c:2e6},e:{r:0,c:0}},k={},E={},C="",S=0,N=[],I={},T={},R=0,O=[],B=[],M={},$=[],P=!1,L=[],z=[],W={},U=0,V=0,j={Sheets:[],WBProps:{date1904:!1}},H={};yl.lastIndex=0,r=r.replace(//gm,"");for(var G="";a=yl.exec(r);)switch(a[3]=(G=a[3]).toLowerCase()){case"data":if("data"==G){if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break}if(u[u.length-1][1])break;"/"===a[1]?pl(r.slice(v,a.index),C,b,"comment"==u[u.length-1][0]?M:g,{c:w,r:_},k,$[w],y,L,n):(C="",b=cl(a[0]),v=a.index+a[0].length);break;case"cell":if("/"===a[1])if(B.length>0&&(g.c=B),(!n.sheetRows||n.sheetRows>_)&&void 0!==g.v&&(n.dense?(p[_]||(p[_]=[]),p[_][w]=g):p[Kt(w)+Gt(_)]=g),g.HRef&&(g.l={Target:g.HRef},g.HRefScreenTip&&(g.l.Tooltip=g.HRefScreenTip),delete g.HRef,delete g.HRefScreenTip),(g.MergeAcross||g.MergeDown)&&(U=w+(0|parseInt(g.MergeAcross,10)),V=_+(0|parseInt(g.MergeDown,10)),N.push({s:{c:w,r:_},e:{c:U,r:V}})),n.sheetStubs)if(g.MergeAcross||g.MergeDown){for(var X=w;X<=U;++X)for(var K=_;K<=V;++K)(X>w||K>_)&&(n.dense?(p[K]||(p[K]=[]),p[K][X]={t:"z"}):p[Kt(X)+Gt(K)]={t:"z"});w=U+1}else++w;else g.MergeAcross?w=U+1:++w;else(g=hl(a[0])).Index&&(w=+g.Index-1),wx.e.c&&(x.e.c=w),"/>"===a[0].slice(-2)&&++w,B=[];break;case"row":"/"===a[1]||"/>"===a[0].slice(-2)?(_x.e.r&&(x.e.r=_),"/>"===a[0].slice(-2)&&(y=cl(a[0])).Index&&(_=+y.Index-1),w=0,++_):((y=cl(a[0])).Index&&(_=+y.Index-1),W={},("0"==y.AutoFitHeight||y.Height)&&(W.hpx=parseInt(y.Height,10),W.hpt=gs(W.hpx),z[_]=W),"1"==y.Hidden&&(W.hidden=!0,z[_]=W));break;case"worksheet":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));d.push(m),x.s.r<=x.e.r&&x.s.c<=x.e.c&&(p["!ref"]=Zt(x),n.sheetRows&&n.sheetRows<=x.e.r&&(p["!fullref"]=p["!ref"],x.e.r=n.sheetRows-1,p["!ref"]=Zt(x))),N.length&&(p["!merges"]=N),$.length>0&&(p["!cols"]=$),z.length>0&&(p["!rows"]=z),c[m]=p}else x={s:{r:2e6,c:2e6},e:{r:0,c:0}},_=w=0,u.push([a[3],!1]),o=cl(a[0]),m=Se(o.Name),p=n.dense?[]:{},N=[],L=[],z=[],H={name:m,Hidden:0},j.Sheets.push(H);break;case"table":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else{if("/>"==a[0].slice(-2))break;cl(a[0]),u.push([a[3],!1]),$=[],P=!1}break;case"style":"/"===a[1]?dl(k,E,n):E=cl(a[0]);break;case"numberformat":E.nf=Se(cl(a[0]).Format||"General"),F[E.nf]&&(E.nf=F[E.nf]);for(var q=0;392!=q&&A._table[q]!=E.nf;++q);if(392==q)for(q=57;392!=q;++q)if(null==A._table[q]){A.load(E.nf,q);break}break;case"column":if("table"!==u[u.length-1][0])break;if((l=cl(a[0])).Hidden&&(l.hidden=!0,delete l.Hidden),l.Width&&(l.wpx=parseInt(l.Width,10)),!P&&l.wpx>10){P=!0,us=6;for(var Y=0;Y<$.length;++Y)$[Y]&&ms($[Y])}P&&ms(l),$[l.Index-1||$.length]=l;for(var J=0;J<+l.Span;++J)$[$.length]=te(l);break;case"namedrange":if("/"===a[1])break;j.Names||(j.Names=[]);var Z=we(a[0]),Q={Name:Z.Name,Ref:ti(Z.RefersTo.slice(1),{r:0,c:0})};j.Sheets.length>0&&(Q.Sheet=j.Sheets.length-1),j.Names.push(Q);break;case"namedcell":case"b":case"i":case"u":case"s":case"em":case"h2":case"h3":case"sub":case"sup":case"span":case"alignment":case"borders":case"border":break;case"font":if("/>"===a[0].slice(-2))break;"/"===a[1]?C+=r.slice(S,a.index):S=a.index+a[0].length;break;case"interior":if(!n.cellStyles)break;E.Interior=cl(a[0]);break;case"protection":break;case"author":case"title":case"description":case"created":case"keywords":case"subject":case"category":case"company":case"lastauthor":case"lastsaved":case"lastprinted":case"version":case"revision":case"totaltime":case"hyperlinkbase":case"manager":case"contentstatus":case"identifier":case"language":case"appname":if("/>"===a[0].slice(-2))break;"/"===a[1]?pr(I,G,r.slice(R,a.index)):R=a.index+a[0].length;break;case"paragraphs":break;case"styles":case"workbook":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else u.push([a[3],!1]);break;case"comment":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"));ml(M),B.push(M)}else u.push([a[3],!1]),M={a:(o=cl(a[0])).Author};break;case"autofilter":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else if("/"!==a[0].charAt(a[0].length-2)){var ee=cl(a[0]);p["!autofilter"]={ref:ti(ee.Range).replace(/\$/g,"")},u.push([a[3],!0])}break;case"name":break;case"datavalidation":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;case"pixelsperinch":break;case"componentoptions":case"documentproperties":case"customdocumentproperties":case"officedocumentsettings":case"pivottable":case"pivotcache":case"names":case"mapinfo":case"pagebreaks":case"querytable":case"sorting":case"schema":case"conditionalformatting":case"smarttagtype":case"smarttags":case"excelworkbook":case"workbookoptions":case"worksheetoptions":if("/"===a[1]){if((o=u.pop())[0]!==a[3])throw new Error("Bad state: "+o.join("|"))}else"/"!==a[0].charAt(a[0].length-2)&&u.push([a[3],!0]);break;default:if(0==u.length&&"document"==a[3])return ql(r,n);if(0==u.length&&"uof"==a[3])return ql(r,n);var ne=!0;switch(u[u.length-1][0]){case"officedocumentsettings":switch(a[3]){case"allowpng":case"removepersonalinformation":case"downloadcomponents":case"locationofcomponents":case"colors":case"color":case"index":case"rgb":case"targetscreensize":case"readonlyrecommended":break;default:ne=!1}break;case"componentoptions":switch(a[3]){case"toolbar":case"hideofficelogo":case"spreadsheetautofit":case"label":case"caption":case"maxheight":case"maxwidth":case"nextsheetnumber":break;default:ne=!1}break;case"excelworkbook":switch(a[3]){case"date1904":j.WBProps.date1904=!0;break;case"windowheight":case"windowwidth":case"windowtopx":case"windowtopy":case"tabratio":case"protectstructure":case"protectwindow":case"protectwindows":case"activesheet":case"displayinknotes":case"firstvisiblesheet":case"supbook":case"sheetname":case"sheetindex":case"sheetindexfirst":case"sheetindexlast":case"dll":case"acceptlabelsinformulas":case"donotsavelinkvalues":case"iteration":case"maxiterations":case"maxchange":case"path":case"xct":case"count":case"selectedsheets":case"calculation":case"uncalced":case"startupprompt":case"crn":case"externname":case"formula":case"colfirst":case"collast":case"wantadvise":case"boolean":case"error":case"text":case"ole":case"noautorecover":case"publishobjects":case"donotcalculatebeforesave":case"number":case"refmoder1c1":case"embedsavesmarttags":break;default:ne=!1}break;case"workbookoptions":switch(a[3]){case"owcversion":case"height":case"width":break;default:ne=!1}break;case"worksheetoptions":switch(a[3]){case"visible":if("/>"===a[0].slice(-2));else if("/"===a[1])switch(r.slice(R,a.index)){case"SheetHidden":H.Hidden=1;break;case"SheetVeryHidden":H.Hidden=2}else R=a.index+a[0].length;break;case"header":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].header=we(a[0]).Margin;break;case"footer":p["!margins"]||io(p["!margins"]={},"xlml"),p["!margins"].footer=we(a[0]).Margin;break;case"pagemargins":var re=we(a[0]);p["!margins"]||io(p["!margins"]={},"xlml"),re.Top&&(p["!margins"].top=re.Top),re.Left&&(p["!margins"].left=re.Left),re.Right&&(p["!margins"].right=re.Right),re.Bottom&&(p["!margins"].bottom=re.Bottom);break;case"displayrighttoleft":j.Views||(j.Views=[]),j.Views[0]||(j.Views[0]={}),j.Views[0].RTL=!0;break;case"freezepanes":case"frozennosplit":break;case"splithorizontal":case"splitvertical":case"donotdisplaygridlines":case"activerow":case"activecol":case"toprowbottompane":case"leftcolumnrightpane":case"unsynced":case"print":case"panes":case"scale":case"pane":case"number":case"layout":case"pagesetup":case"selected":case"protectobjects":case"enableselection":case"protectscenarios":case"validprinterinfo":case"horizontalresolution":case"verticalresolution":case"numberofcopies":case"activepane":case"toprowvisible":case"leftcolumnvisible":case"fittopage":case"rangeselection":case"papersizeindex":case"pagelayoutzoom":case"pagebreakzoom":case"filteron":case"fitwidth":case"fitheight":case"commentslayout":case"zoom":case"lefttoright":case"gridlines":case"allowsort":case"allowfilter":case"allowinsertrows":case"allowdeleterows":case"allowinsertcols":case"allowdeletecols":case"allowinserthyperlinks":case"allowformatcells":case"allowsizecols":case"allowsizerows":case"nosummaryrowsbelowdetail":case"tabcolorindex":case"donotdisplayheadings":case"showpagelayoutzoom":case"nosummarycolumnsrightdetail":case"blackandwhite":case"donotdisplayzeros":case"displaypagebreak":case"rowcolheadings":case"donotdisplayoutline":case"noorientation":case"allowusepivottables":case"zeroheight":case"viewablerange":case"selection":case"protectcontents":break;default:ne=!1}break;case"pivottable":case"pivotcache":switch(a[3]){case"immediateitemsondrop":case"showpagemultipleitemlabel":case"compactrowindent":case"location":case"pivotfield":case"orientation":case"layoutform":case"layoutsubtotallocation":case"layoutcompactrow":case"position":case"pivotitem":case"datatype":case"datafield":case"sourcename":case"parentfield":case"ptlineitems":case"ptlineitem":case"countofsameitems":case"item":case"itemtype":case"ptsource":case"cacheindex":case"consolidationreference":case"filename":case"reference":case"nocolumngrand":case"norowgrand":case"blanklineafteritems":case"hidden":case"subtotal":case"basefield":case"mapchilditems":case"function":case"refreshonfileopen":case"printsettitles":case"mergelabels":case"defaultversion":case"refreshname":case"refreshdate":case"refreshdatecopy":case"versionlastrefresh":case"versionlastupdate":case"versionupdateablemin":case"versionrefreshablemin":case"calculation":break;default:ne=!1}break;case"pagebreaks":switch(a[3]){case"colbreaks":case"colbreak":case"rowbreaks":case"rowbreak":case"colstart":case"colend":case"rowend":break;default:ne=!1}break;case"autofilter":switch(a[3]){case"autofiltercolumn":case"autofiltercondition":case"autofilterand":case"autofilteror":break;default:ne=!1}break;case"querytable":switch(a[3]){case"id":case"autoformatfont":case"autoformatpattern":case"querysource":case"querytype":case"enableredirections":case"refreshedinxl9":case"urlstring":case"htmltables":case"connection":case"commandtext":case"refreshinfo":case"notitles":case"nextid":case"columninfo":case"overwritecells":case"donotpromptforfile":case"textwizardsettings":case"source":case"number":case"decimal":case"thousandseparator":case"trailingminusnumbers":case"formatsettings":case"fieldtype":case"delimiters":case"tab":case"comma":case"autoformatname":case"versionlastedit":case"versionlastrefresh":break;default:ne=!1}break;case"datavalidation":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":case"cellrangelist":break;default:ne=!1}break;case"sorting":case"conditionalformatting":switch(a[3]){case"range":case"type":case"min":case"max":case"sort":case"descending":case"order":case"casesensitive":case"value":case"errorstyle":case"errormessage":case"errortitle":case"cellrangelist":case"inputmessage":case"inputtitle":case"combohide":case"inputhide":case"condition":case"qualifier":case"useblank":case"value1":case"value2":case"format":break;default:ne=!1}break;case"mapinfo":case"schema":case"data":switch(a[3]){case"map":case"entry":case"range":case"xpath":case"field":case"xsdtype":case"filteron":case"aggregate":case"elementtype":case"attributetype":break;case"schema":case"element":case"complextype":case"datatype":case"all":case"attribute":case"extends":case"row":break;default:ne=!1}break;case"smarttags":break;default:ne=!1}if(ne)break;if(a[3].match(/!\[CDATA/))break;if(!u[u.length-1][1])throw"Unrecognized tag: "+a[3]+"|"+u.join("|");if("customdocumentproperties"===u[u.length-1][0]){if("/>"===a[0].slice(-2))break;"/"===a[1]?fl(T,G,O,r.slice(R,a.index)):(O=a,R=a.index+a[0].length);break}if(n.WTF)throw"Unrecognized tag: "+a[3]+"|"+u.join("|")}var ae={};return n.bookSheets||n.bookProps||(ae.Sheets=c),ae.SheetNames=d,ae.Workbook=j,ae.SSF=A.get_table(),ae.Props=I,ae.Custprops=T,ae}function vl(e,t){switch(cu(t=t||{}),t.type||"base64"){case"base64":return bl(g.decode(e),t);case"binary":case"buffer":case"file":return bl(e,t);case"array":return bl(E(e),t)}}function wl(e){return Ze("NamedRange",null,{"ss:Name":e.Name,"ss:RefersTo":"="+ri(e.Ref,{r:0,c:0})})}function _l(e,t,n,r,a,s,i){if(!e||null==e.v&&null==e.f)return"";var o={};if(e.f&&(o["ss:Formula"]="="+Ae(ri(e.f,i))),e.F&&e.F.slice(0,t.length)==t){var l=qt(e.F.slice(t.length+1));o["ss:ArrayRange"]="RC:R"+(l.r==i.r?"":"["+(l.r-i.r)+"]")+"C"+(l.c==i.c?"":"["+(l.c-i.c)+"]")}if(e.l&&e.l.Target&&(o["ss:HRef"]=Ae(e.l.Target),e.l.Tooltip&&(o["x:HRefScreenTip"]=Ae(e.l.Tooltip))),n["!merges"])for(var u=n["!merges"],c=0;c!=u.length;++c)u[c].s.c==i.c&&u[c].s.r==i.r&&(u[c].e.c>u[c].s.c&&(o["ss:MergeAcross"]=u[c].e.c-u[c].s.c),u[c].e.r>u[c].s.r&&(o["ss:MergeDown"]=u[c].e.r-u[c].s.r));var h="",f="";switch(e.t){case"z":if(!r.sheetStubs)return"";break;case"n":h="Number",f=String(e.v);break;case"b":h="Boolean",f=e.v?"1":"0";break;case"e":h="Error",f=Ln[e.v];break;case"d":h="DateTime",f=new Date(e.v).toISOString(),null==e.z&&(e.z=e.z||A._table[14]);break;case"s":h="String",f=((e.v||"")+"").replace(Ne,(function(e){return Ce[e]})).replace(Te,(function(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}))}var d=oo(r.cellXfs,e,r);o["ss:StyleID"]="s"+(21+d),o["ss:Index"]=i.c+1;var p=null!=e.v?f:"",m="z"==e.t?"":''+p+"";return(e.c||[]).length>0&&(m+=e.c.map((function(e){var t=Ze("ss:Data",(e.t||"").replace(/(\r\n|[\r\n])/g," "),{xmlns:"http://www.w3.org/TR/REC-html40"});return Ze("Comment",t,{"ss:Author":e.a})})).join("")),Ze("Cell",m,o)}function xl(e,t){var n='"}function kl(e,t,n){var r=[],a=n.SheetNames[e],s=n.Sheets[a],i=s?function(e,t,n,r){if(!e)return"";if(!((r||{}).Workbook||{}).Names)return"";for(var a=r.Workbook.Names,s=[],i=0;i0&&r.push(""+i+""),(i=s?function(e,t,n,r){if(!e["!ref"])return"";var a=Qt(e["!ref"]),s=e["!merges"]||[],i=0,o=[];e["!cols"]&&e["!cols"].forEach((function(e,t){ms(e);var n=!!e.width,r=so(t,e),a={"ss:Index":t+1};n&&(a["ss:Width"]=cs(r.width)),e.hidden&&(a["ss:Hidden"]="1"),o.push(Ze("Column",null,a))}));for(var l=Array.isArray(e),u=a.s.r;u<=a.e.r;++u){for(var c=[xl(u,(e["!rows"]||[])[u])],h=a.s.c;h<=a.e.c;++h){var f=!1;for(i=0;i!=s.length;++i)if(!(s[i].s.c>h||s[i].s.r>u||s[i].e.c"),c.length>2&&o.push(c.join(""))}return o.join("")}(s,t):"").length>0&&r.push(""+i+"
"),r.push(function(e,t,n,r){if(!e)return"";var a=[];if(e["!margins"]&&(a.push(""),e["!margins"].header&&a.push(Ze("Header",null,{"x:Margin":e["!margins"].header})),e["!margins"].footer&&a.push(Ze("Footer",null,{"x:Margin":e["!margins"].footer})),a.push(Ze("PageMargins",null,{"x:Bottom":e["!margins"].bottom||"0.75","x:Left":e["!margins"].left||"0.7","x:Right":e["!margins"].right||"0.7","x:Top":e["!margins"].top||"0.75"})),a.push("")),r&&r.Workbook&&r.Workbook.Sheets&&r.Workbook.Sheets[n])if(r.Workbook.Sheets[n].Hidden)a.push(Ze("Visible",1==r.Workbook.Sheets[n].Hidden?"SheetHidden":"SheetVeryHidden",{}));else{for(var s=0;s")}return((((r||{}).Workbook||{}).Views||[])[0]||{}).RTL&&a.push(""),e["!protect"]&&(a.push(Ye("ProtectContents","True")),e["!protect"].objects&&a.push(Ye("ProtectObjects","True")),e["!protect"].scenarios&&a.push(Ye("ProtectScenarios","True")),null==e["!protect"].selectLockedCells||e["!protect"].selectLockedCells?null==e["!protect"].selectUnlockedCells||e["!protect"].selectUnlockedCells||a.push(Ye("EnableSelection","UnlockedCells")):a.push(Ye("EnableSelection","NoSelection")),[["formatCells","AllowFormatCells"],["formatColumns","AllowSizeCols"],["formatRows","AllowSizeRows"],["insertColumns","AllowInsertCols"],["insertRows","AllowInsertRows"],["insertHyperlinks","AllowInsertHyperlinks"],["deleteColumns","AllowDeleteCols"],["deleteRows","AllowDeleteRows"],["sort","AllowSort"],["autoFilter","AllowFilter"],["pivotTables","AllowUsePivotTables"]].forEach((function(t){e["!protect"][t[0]]&&a.push("<"+t[1]+"/>")}))),0==a.length?"":Ze("WorksheetOptions",a.join(""),{xmlns:at})}(s,0,e,n)),r.join("")}function El(e,t){t||(t={}),e.SSF||(e.SSF=A.get_table()),e.SSF&&(D(A),A.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF,t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}));var n=[];n.push(function(e,t){var n=[];return e.Props&&n.push(function(e,t){var n=[];return z(fr).map((function(e){for(var t=0;t'+a.join("")+""}(e.Props,e.Custprops)),n.join("")}(e,t)),n.push(""),n.push(""),n.push("");for(var r=0;r'];return t.cellXfs.forEach((function(e,t){var r=[];r.push(Ze("NumberFormat",null,{"ss:Format":Ae(A._table[e.numFmtId])}));var a={"ss:ID":"s"+(21+t)};n.push(Ze("Style",r.join(""),a))})),Ze("Styles",n.join(""))}(0,t),n[3]=function(e){if(!((e||{}).Workbook||{}).Names)return"";for(var t=e.Workbook.Names,n=[],r=0;r40||(n.l-=4,t.Reserved1=n.read_shift(0,"lpstr-ansi"),n.length-n.l<=4||1907505652!==(r=n.read_shift(4))||(t.UnicodeClipboardFormat=function(e){return Nn(e,2)}(n),0==(r=n.read_shift(4))||r>40||(n.l-=4,t.Reserved2=n.read_shift(0,"lpwstr"))))}(n),t.bookProps&&!t.bookSheets)a={};else{var i=y?"buffer":"array";if(r&&r.content)a=function(e,t){var n,r,a,s,i,o,l,c,h={opts:{}},f={},d=t.dense?[]:{},p={},m={},g=null,y=[],b="",v={},w="",_={},x=[],k=!0,E=[],C=[],S={Sheets:[],WBProps:{date1904:!1},Views:[{}]},N={},I=function(e){return e<8?Pn[e]:e<64&&C[e-8]||Pn[e]},D=function(e,t,r){if(!(W>1)&&(r.sheetRows&&e.r>=r.sheetRows&&(k=!1),k)){if(r.cellStyles&&t.XF&&t.XF.data&&function(e,t,n){var r,a=t.XF.data;a&&a.patternType&&n&&n.cellStyles&&(t.s={},t.s.patternType=a.patternType,(r=os(I(a.icvFore)))&&(t.s.fgColor={rgb:r}),(r=os(I(a.icvBack)))&&(t.s.bgColor={rgb:r}))}(0,t,r),delete t.ixfe,delete t.XF,n=e,w=Yt(e),m&&m.s&&m.e||(m={s:{r:0,c:0},e:{r:0,c:0}}),e.rm.e.r&&(m.e.r=e.r+1),e.c+1>m.e.c&&(m.e.c=e.c+1),r.cellFormula&&t.f)for(var a=0;ae.c||x[a][0].s.r>e.r||x[a][0].e.c>8)!==X)throw new Error("rt mismatch: "+Y+"!="+X);12==q.r&&(e.l+=10,K-=10)}var J={};J="EOF"===q.n?q.f(e,K,T):Cl(q,e,K,T);var Z=q.n;if(0==W&&"BOF"!=Z)continue;switch(Z){case"Date1904":h.opts.Date1904=S.WBProps.date1904=J;break;case"WriteProtect":h.opts.WriteProtect=!0;break;case"FilePass":if(T.enc||(e.l=0),T.enc=J,!t.password)throw new Error("File is password-protected");if(null==J.valid)throw new Error("Encryption scheme unsupported");if(!J.valid)throw new Error("Password is incorrect");break;case"WriteAccess":T.lastuser=J;break;case"FileSharing":break;case"CodePage":var Q=Number(J);switch(Q){case 21010:Q=1200;break;case 32768:Q=1e4;break;case 32769:Q=1252}u(T.codepage=Q),H=!0;break;case"RRTabId":T.rrtabid=J;break;case"WinProtect":T.winlocked=J;break;case"Template":case"BookBool":case"UsesELFs":case"MTRSettings":break;case"RefreshAll":case"CalcCount":case"CalcDelta":case"CalcIter":case"CalcMode":case"CalcPrecision":case"CalcSaveRecalc":h.opts[Z]=J;break;case"CalcRefMode":T.CalcRefMode=J;break;case"Uncalced":break;case"ForceFullCalculation":h.opts.FullCalc=J;break;case"WsBool":J.fDialog&&(d["!type"]="dialog");break;case"XF":E.push(J);break;case"ExtSST":case"BookExt":case"RichTextStream":case"BkHim":break;case"SupBook":$.push([J]),$[$.length-1].XTI=[];break;case"ExternName":$[$.length-1].push(J);break;case"Index":break;case"Lbl":P={Name:J.Name,Ref:zi(J.rgce,0,null,$,T)},J.itab>0&&(P.Sheet=J.itab-1),$.names.push(P),$[0]||($[0]=[],$[0].XTI=[]),$[$.length-1].push(J),"_xlnm._FilterDatabase"==J.Name&&J.itab>0&&J.rgce&&J.rgce[0]&&J.rgce[0][0]&&"PtgArea3d"==J.rgce[0][0][0]&&(j[J.itab-1]={ref:Zt(J.rgce[0][0][1][2])});break;case"ExternCount":T.ExternCount=J;break;case"ExternSheet":0==$.length&&($[0]=[],$[0].XTI=[]),$[$.length-1].XTI=$[$.length-1].XTI.concat(J),$.XTI=$.XTI.concat(J);break;case"NameCmt":if(T.biff<8)break;null!=P&&(P.Comment=J[1]);break;case"Protect":d["!protect"]=J;break;case"Password":0!==J&&T.WTF&&console.error("Password verifier: "+J);break;case"Prot4Rev":case"Prot4RevPass":break;case"BoundSheet8":p[J.pos]=J,T.snames.push(J.name);break;case"EOF":if(--W)break;if(m.e){if(m.e.r>0&&m.e.c>0){if(m.e.r--,m.e.c--,d["!ref"]=Zt(m),t.sheetRows&&t.sheetRows<=m.e.r){var ee=m.e.r;m.e.r=t.sheetRows-1,d["!fullref"]=d["!ref"],d["!ref"]=Zt(m),m.e.r=ee}m.e.r++,m.e.c++}F.length>0&&(d["!merges"]=F),R.length>0&&(d["!objects"]=R),O.length>0&&(d["!cols"]=O),B.length>0&&(d["!rows"]=B),S.Sheets.push(N)}""===b?v=d:f[b]=d,d=t.dense?[]:{};break;case"BOF":if(8===T.biff&&(T.biff={9:2,521:3,1033:4}[X]||{512:2,768:3,1024:4,1280:5,1536:8,2:2,7:2}[J.BIFFVer]||8),8==T.biff&&0==J.BIFFVer&&16==J.dt&&(T.biff=2),W++)break;if(k=!0,d=t.dense?[]:{},T.biff<8&&!H&&(H=!0,u(T.codepage=t.codepage||1252)),T.biff<5){""===b&&(b="Sheet1"),m={s:{r:0,c:0},e:{r:0,c:0}};var te={pos:e.l-K,name:b};p[te.pos]=te,T.snames.push(b)}else b=(p[G]||{name:""}).name;32==J.dt&&(d["!type"]="chart"),64==J.dt&&(d["!type"]="macro"),F=[],R=[],T.arrayf=x=[],O=[],B=[],M=!1,N={Hidden:(p[G]||{hs:0}).hs,name:b};break;case"Number":case"BIFF2NUM":case"BIFF2INT":"chart"==d["!type"]&&(t.dense?(d[J.r]||[])[J.c]:d[Yt({c:J.c,r:J.r})])&&++J.c,o={ixfe:J.ixfe,XF:E[J.ixfe]||{},v:J.val,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:J.c,r:J.r},o,t);break;case"BoolErr":o={ixfe:J.ixfe,XF:E[J.ixfe],v:J.val,t:J.t},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:J.c,r:J.r},o,t);break;case"RK":o={ixfe:J.ixfe,XF:E[J.ixfe],v:J.rknum,t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:J.c,r:J.r},o,t);break;case"MulRk":for(var ne=J.c;ne<=J.C;++ne){var re=J.rkrec[ne-J.c][0];o={ixfe:re,XF:E[re],v:J.rkrec[ne-J.c][1],t:"n"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:ne,r:J.r},o,t)}break;case"Formula":if("String"==J.val){g=J;break}if((o=Nl(J.val,J.cell.ixfe,J.tt)).XF=E[o.ixfe],t.cellFormula){var ae=J.formula;if(ae&&ae[0]&&ae[0][0]&&"PtgExp"==ae[0][0][0]){var se=ae[0][0][1][0],ie=ae[0][0][1][1],oe=Yt({r:se,c:ie});_[oe]?o.f=""+zi(J.formula,0,J.cell,$,T):o.F=((t.dense?(d[se]||[])[ie]:d[oe])||{}).F}else o.f=""+zi(J.formula,0,J.cell,$,T)}U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D(J.cell,o,t),g=J;break;case"String":if(!g)throw new Error("String record expects Formula");g.val=J,(o=Nl(J,g.cell.ixfe,"s")).XF=E[o.ixfe],t.cellFormula&&(o.f=""+zi(g.formula,0,g.cell,$,T)),U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D(g.cell,o,t),g=null;break;case"Array":x.push(J);var le=Yt(J[0].s);if(r=t.dense?(d[J[0].s.r]||[])[J[0].s.c]:d[le],t.cellFormula&&r){if(!g)break;if(!le||!r)break;r.f=""+zi(J[1],0,J[0],$,T),r.F=Zt(J[0])}break;case"ShrFmla":if(!k)break;if(!t.cellFormula)break;if(w){if(!g)break;_[Yt(g.cell)]=J[0],((r=t.dense?(d[g.cell.r]||[])[g.cell.c]:d[Yt(g.cell)])||{}).f=""+zi(J[0],0,n,$,T)}break;case"LabelSst":o=Nl(y[J.isst].t,J.ixfe,"s"),y[J.isst].h&&(o.h=y[J.isst].h),o.XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:J.c,r:J.r},o,t);break;case"Blank":t.sheetStubs&&(o={ixfe:J.ixfe,XF:E[J.ixfe],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:J.c,r:J.r},o,t));break;case"MulBlank":if(t.sheetStubs)for(var ue=J.c;ue<=J.C;++ue){var ce=J.ixfe[ue-J.c];o={ixfe:ce,XF:E[ce],t:"z"},U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:ue,r:J.r},o,t)}break;case"RString":case"Label":case"BIFF2STR":(o=Nl(J.val,J.ixfe,"s")).XF=E[o.ixfe],U>0&&(o.z=V[o.ixfe>>8&31]),Sl(o,t,h.opts.Date1904),D({c:J.c,r:J.r},o,t);break;case"Dimensions":1===W&&(m=J);break;case"SST":y=J;break;case"Format":if(4==T.biff){V[U++]=J[1];for(var he=0;he=163&&A.load(J[1],U+163)}else A.load(J[1],J[0]);break;case"BIFF2FORMAT":V[U++]=J;for(var fe=0;fe=163&&A.load(J,U+163);break;case"MergeCells":F=F.concat(J);break;case"Obj":R[J.cmo[0]]=T.lastobj=J;break;case"TxO":T.lastobj.TxO=J;break;case"ImData":T.lastobj.ImData=J;break;case"HLink":for(i=J[0].s.r;i<=J[0].e.r;++i)for(s=J[0].s.c;s<=J[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Yt({c:s,r:i})])&&(r.l=J[1]);break;case"HLinkTooltip":for(i=J[0].s.r;i<=J[0].e.r;++i)for(s=J[0].s.c;s<=J[0].e.c;++s)(r=t.dense?(d[i]||[])[s]:d[Yt({c:s,r:i})])&&r.l&&(r.l.Tooltip=J[1]);break;case"Note":if(T.biff<=5&&T.biff>=2)break;r=t.dense?(d[J[0].r]||[])[J[0].c]:d[Yt(J[0])];var de=R[J[2]];r||(t.dense?(d[J[0].r]||(d[J[0].r]=[]),r=d[J[0].r][J[0].c]={t:"z"}):r=d[Yt(J[0])]={t:"z"},m.e.r=Math.max(m.e.r,J[0].r),m.s.r=Math.min(m.s.r,J[0].r),m.e.c=Math.max(m.e.c,J[0].c),m.s.c=Math.min(m.s.c,J[0].c)),r.c||(r.c=[]),a={a:J[1],t:de.TxO.t},r.c.push(a);break;default:switch(q.n){case"ClrtClient":break;case"XFExt":E[J.ixfe],J.ext.forEach((function(e){e[0]}));break;case"DefColWidth":break;case"DefaultRowHeight":J[1];break;case"ColInfo":if(!T.cellStyles)break;for(;J.e>=J.s;)O[J.e--]={width:J.w/256},M||(M=!0,ps(J.w/256)),ms(O[J.e+1]);break;case"Row":var pe={};null!=J.level&&(B[J.r]=pe,pe.level=J.level),J.hidden&&(B[J.r]=pe,pe.hidden=!0),J.hpt&&(B[J.r]=pe,pe.hpt=J.hpt,pe.hpx=ys(J.hpt));break;case"LeftMargin":case"RightMargin":case"TopMargin":case"BottomMargin":d["!margins"]||io(d["!margins"]={}),d["!margins"][Z.slice(0,-6).toLowerCase()]=J;break;case"Setup":d["!margins"]||io(d["!margins"]={}),d["!margins"].header=J.header,d["!margins"].footer=J.footer;break;case"Window2":J.RTL&&(S.Views[0].RTL=!0);break;case"Header":case"Footer":case"HCenter":case"VCenter":case"Pls":case"GCW":case"LHRecord":case"DBCell":case"EntExU2":case"SxView":case"Sxvd":case"SXVI":case"SXVDEx":case"SxIvd":case"SXString":case"Sync":case"Addin":case"SXDI":case"SXLI":case"SXEx":case"QsiSXTag":case"Selection":case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Country":l=J;break;case"RecalcId":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":case"Font":case"XFCRC":case"Style":case"StyleExt":break;case"Palette":C=J;break;case"Theme":c=J;break;case"ScenarioProtect":case"ObjProtect":case"CondFmt12":case"Table":case"TableStyles":case"TableStyle":case"TableStyleElement":case"SXStreamID":case"SXVS":case"DConRef":case"SXAddl":case"DConBin":case"DConName":case"SXPI":case"SxFormat":case"SxSelect":case"SxRule":case"SxFilt":case"SxItm":case"SxDXF":case"ScenMan":case"DCon":case"CellWatch":case"PrintRowCol":case"PrintGrid":case"PrintSize":case"XCT":case"CRN":case"Scl":case"SheetExt":case"SheetExtOptional":case"ObNoMacros":case"ObProj":break;case"CodeName":b?N.CodeName=J||N.name:S.WBProps.CodeName=J||"ThisWorkbook";break;case"GUIDTypeLib":case"WOpt":case"PhoneticInfo":case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":case"DConn":case"DbOrParamQry":case"DBQueryExt":case"OleDbConn":case"ExtString":case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":case"Excel9File":case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":break;case"Window1":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(q.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":case"Surf":case"AxisParent":case"Pos":case"ValueRange":case"SXViewEx9":case"SXViewLink":case"PivotChartBits":case"SBaseRef":case"TextPropsStream":case"LnExt":case"MkrExt":case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":case"TxtQry":case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":case"AutoFilter12":case"DropDownObjIds":case"Sort":case"SortData":case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"WebPub":case"AutoWebPub":break;case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":break;case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;default:switch(q.n){case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;case"BIFF2FONTCLR":case"BIFF2FMTCNT":case"BIFF2FONTXTRA":break;case"BIFF2XF":case"BIFF3XF":case"BIFF4XF":break;case"BIFF4FMTCNT":case"BIFF2ROW":case"BIFF2WINDOW2":break;case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;case"LHNGraph":case"FnGroupName":case"AddMenu":case"LPr":break;case"ListObj":case"ListField":case"RRSort":case"BigName":break;case"ToolbarHdr":case"ToolbarEnd":case"DDEObjName":case"FRTArchId$":break;default:if(t.WTF)throw"Unrecognized Record "+q.n}}}}}else e.l+=K}return h.SheetNames=z(p).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return p[e].name})),t.bookSheets||(h.Sheets=f),h.Sheets&&j.forEach((function(e,t){h.Sheets[h.SheetNames[t]]["!autofilter"]=e})),h.Preamble=v,h.Strings=y,h.SSF=A.get_table(),T.enc&&(h.Encryption=T.enc),c&&(h.Themes=c),h.Metadata={},void 0!==l&&(h.Metadata.Country=l),$.names.length>0&&(S.Names=$.names),h.Workbook=S,h}(r.content,t);else if((s=M.find(e,"PerfectOffice_MAIN"))&&s.content)a=Fa.to_workbook(s.content,(t.type=i,t));else{if(!(s=M.find(e,"NativeContent_MAIN"))||!s.content)throw new Error("Cannot find Workbook stream");a=Fa.to_workbook(s.content,(t.type=i,t))}t.bookVBA&&e.FullPaths&&M.find(e,"/_VBA_PROJECT_CUR/VBA/dir")&&(a.vbaraw=function(e){var t=M.utils.cfb_new({root:"R"});return e.FullPaths.forEach((function(n,r){if("/"!==n.slice(-1)&&n.match(/_VBA_PROJECT_CUR/)){var a=n.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/,"");M.utils.cfb_add(t,a,e.FileIndex[r].content)}})),M.write(t)}(e))}var o={};return e.FullPaths&&function(e,t,n){var r=M.find(e,"!DocumentSummaryInformation");if(r&&r.size>0)try{var a=Ar(r,Dn,Al);for(var s in a)t[s]=a[s]}catch(e){if(n.WTF)throw e}var i=M.find(e,"!SummaryInformation");if(i&&i.size>0)try{var o=Ar(i,Tn,Il);for(var l in o)null==t[l]&&(t[l]=o[l])}catch(e){if(n.WTF)throw e}t.HeadingPairs&&t.TitlesOfParts&&(lr(t.HeadingPairs,t.TitlesOfParts,t,n),delete t.HeadingPairs,delete t.TitlesOfParts)}(e,o,t),a.Props=a.Custprops=o,t.bookFiles&&(a.cfb=e),a}var Tl={0:{n:"BrtRowHdr",f:function(e,t){var n={},r=e.l+t;n.r=e.read_shift(4),e.l+=4;var a=e.read_shift(2);e.l+=1;var s=e.read_shift(1);return e.l=r,7&s&&(n.level=7&s),16&s&&(n.hidden=!0),32&s&&(n.hpt=a/20),n}},1:{n:"BrtCellBlank",f:function(e){return[hn(e)]}},2:{n:"BrtCellRk",f:function(e){return[hn(e),wn(e),"n"]}},3:{n:"BrtCellError",f:function(e){return[hn(e),e.read_shift(1),"e"]}},4:{n:"BrtCellBool",f:function(e){return[hn(e),e.read_shift(1),"b"]}},5:{n:"BrtCellReal",f:function(e){return[hn(e),En(e),"n"]}},6:{n:"BrtCellSt",f:function(e){return[hn(e),sn(e),"str"]}},7:{n:"BrtCellIsst",f:function(e){return[hn(e),e.read_shift(4),"s"]}},8:{n:"BrtFmlaString",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,sn(e),"str"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},9:{n:"BrtFmlaNum",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,En(e),"n"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},10:{n:"BrtFmlaBool",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"b"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},11:{n:"BrtFmlaError",f:function(e,t,n){var r=e.l+t,a=hn(e);a.r=n["!row"];var s=[a,e.read_shift(1),"e"];if(n.cellFormula){e.l+=2;var i=Gi(e,r-e.l,n);s[3]=zi(i,0,a,n.supbooks,n)}else e.l=r;return s}},16:{n:"BrtFRTArchID$",f:function(e,t){var n={};return e.read_shift(4),n.ArchID=e.read_shift(4),e.l+=t-8,n}},19:{n:"BrtSSTItem",f:un},20:{n:"BrtPCDIMissing"},21:{n:"BrtPCDINumber"},22:{n:"BrtPCDIBoolean"},23:{n:"BrtPCDIError"},24:{n:"BrtPCDIString"},25:{n:"BrtPCDIDatetime"},26:{n:"BrtPCDIIndex"},27:{n:"BrtPCDIAMissing"},28:{n:"BrtPCDIANumber"},29:{n:"BrtPCDIABoolean"},30:{n:"BrtPCDIAError"},31:{n:"BrtPCDIAString"},32:{n:"BrtPCDIADatetime"},33:{n:"BrtPCRRecord"},34:{n:"BrtPCRRecordDt"},35:{n:"BrtFRTBegin"},36:{n:"BrtFRTEnd"},37:{n:"BrtACBegin"},38:{n:"BrtACEnd"},39:{n:"BrtName",f:function(e,t,n){var r=e.l+t;e.l+=4,e.l+=1;var a=e.read_shift(4),s=yn(e),i=Xi(e,0,n),o=mn(e);e.l=r;var l={Name:s,Ptg:i};return a<268435455&&(l.Sheet=a),o&&(l.Comment=o),l}},40:{n:"BrtIndexRowBlock"},42:{n:"BrtIndexBlock"},43:{n:"BrtFont",f:function(e,t,n){var r={};r.sz=e.read_shift(2)/20;var a=function(e){var t=e.read_shift(1);return e.l++,{fBold:1&t,fItalic:2&t,fUnderline:4&t,fStrikeout:8&t,fOutline:16&t,fShadow:32&t,fCondense:64&t,fExtend:128&t}}(e);switch(a.fItalic&&(r.italic=1),a.fCondense&&(r.condense=1),a.fExtend&&(r.extend=1),a.fShadow&&(r.shadow=1),a.fOutline&&(r.outline=1),a.fStrikeout&&(r.strike=1),700===e.read_shift(2)&&(r.bold=1),e.read_shift(2)){case 1:r.vertAlign="superscript";break;case 2:r.vertAlign="subscript"}var s=e.read_shift(1);0!=s&&(r.underline=s);var i=e.read_shift(1);i>0&&(r.family=i);var o=e.read_shift(1);switch(o>0&&(r.charset=o),e.l++,r.color=function(e){var t={},n=e.read_shift(1)>>>1,r=e.read_shift(1),a=e.read_shift(2,"i"),s=e.read_shift(1),i=e.read_shift(1),o=e.read_shift(1);switch(e.l++,n){case 0:t.auto=1;break;case 1:t.index=r;var l=Pn[r];l&&(t.rgb=os(l));break;case 2:t.rgb=os([s,i,o]);break;case 3:t.theme=r}return 0!=a&&(t.tint=a>0?a/32767:a/32768),t}(e),e.read_shift(1)){case 1:r.scheme="major";break;case 2:r.scheme="minor"}return r.name=sn(e),r}},44:{n:"BrtFmt",f:function(e,t){return[e.read_shift(2),sn(e)]}},45:{n:"BrtFill",f:Ts},46:{n:"BrtBorder",f:Bs},47:{n:"BrtXF",f:function(e,t){var n=e.l+t,r=e.read_shift(2),a=e.read_shift(2);return e.l=n,{ixfe:r,numFmtId:a}}},48:{n:"BrtStyle"},49:{n:"BrtCellMeta"},50:{n:"BrtValueMeta"},51:{n:"BrtMdb"},52:{n:"BrtBeginFmd"},53:{n:"BrtEndFmd"},54:{n:"BrtBeginMdx"},55:{n:"BrtEndMdx"},56:{n:"BrtBeginMdxTuple"},57:{n:"BrtEndMdxTuple"},58:{n:"BrtMdxMbrIstr"},59:{n:"BrtStr"},60:{n:"BrtColInfo",f:ka},62:{n:"BrtCellRString"},63:{n:"BrtCalcChainItem$",f:function(e){var t={};t.i=e.read_shift(4);var n={};n.r=e.read_shift(4),n.c=e.read_shift(4),t.r=Yt(n);var r=e.read_shift(1);return 2&r&&(t.l="1"),8&r&&(t.a="1"),t}},64:{n:"BrtDVal",f:function(){}},65:{n:"BrtSxvcellNum"},66:{n:"BrtSxvcellStr"},67:{n:"BrtSxvcellBool"},68:{n:"BrtSxvcellErr"},69:{n:"BrtSxvcellDate"},70:{n:"BrtSxvcellNil"},128:{n:"BrtFileVersion"},129:{n:"BrtBeginSheet"},130:{n:"BrtEndSheet"},131:{n:"BrtBeginBook",f:Mt,p:0},132:{n:"BrtEndBook"},133:{n:"BrtBeginWsViews"},134:{n:"BrtEndWsViews"},135:{n:"BrtBeginBookViews"},136:{n:"BrtEndBookViews"},137:{n:"BrtBeginWsView",f:function(e){var t=e.read_shift(2);return e.l+=28,{RTL:32&t}}},138:{n:"BrtEndWsView"},139:{n:"BrtBeginCsViews"},140:{n:"BrtEndCsViews"},141:{n:"BrtBeginCsView"},142:{n:"BrtEndCsView"},143:{n:"BrtBeginBundleShs"},144:{n:"BrtEndBundleShs"},145:{n:"BrtBeginSheetData"},146:{n:"BrtEndSheetData"},147:{n:"BrtWsProp",f:function(e,t){var n={};return e.l+=19,n.name=dn(e,t-19),n}},148:{n:"BrtWsDim",f:Mo,p:16},151:{n:"BrtPane",f:function(){}},152:{n:"BrtSel"},153:{n:"BrtWbProp",f:function(e,t){var n={},r=e.read_shift(4);n.defaultThemeVersion=e.read_shift(4);var a=t>8?sn(e):"";return a.length>0&&(n.CodeName=a),n.autoCompressPictures=!!(65536&r),n.backupFile=!!(64&r),n.checkCompatibility=!!(4096&r),n.date1904=!!(1&r),n.filterPrivacy=!!(8&r),n.hidePivotFieldList=!!(1024&r),n.promptedSolutions=!!(16&r),n.publishItems=!!(2048&r),n.refreshAllConnections=!!(262144&r),n.saveExternalLinkValues=!!(128&r),n.showBorderUnselectedTables=!!(4&r),n.showInkAnnotation=!!(32&r),n.showObjects=["all","placeholders","none"][r>>13&3],n.showPivotChartFilter=!!(32768&r),n.updateLinks=["userSet","never","always"][r>>8&3],n}},154:{n:"BrtWbFactoid"},155:{n:"BrtFileRecover"},156:{n:"BrtBundleSh",f:function(e,t){var n={};return n.Hidden=e.read_shift(4),n.iTabID=e.read_shift(4),n.strRelID=bn(e,t-8),n.name=sn(e),n}},157:{n:"BrtCalcProp"},158:{n:"BrtBookView"},159:{n:"BrtBeginSst",f:function(e){return[e.read_shift(4),e.read_shift(4)]}},160:{n:"BrtEndSst"},161:{n:"BrtBeginAFilter",f:xn},162:{n:"BrtEndAFilter"},163:{n:"BrtBeginFilterColumn"},164:{n:"BrtEndFilterColumn"},165:{n:"BrtBeginFilters"},166:{n:"BrtEndFilters"},167:{n:"BrtFilter"},168:{n:"BrtColorFilter"},169:{n:"BrtIconFilter"},170:{n:"BrtTop10Filter"},171:{n:"BrtDynamicFilter"},172:{n:"BrtBeginCustomFilters"},173:{n:"BrtEndCustomFilters"},174:{n:"BrtCustomFilter"},175:{n:"BrtAFilterDateGroupItem"},176:{n:"BrtMergeCell",f:Po},177:{n:"BrtBeginMergeCells"},178:{n:"BrtEndMergeCells"},179:{n:"BrtBeginPivotCacheDef"},180:{n:"BrtEndPivotCacheDef"},181:{n:"BrtBeginPCDFields"},182:{n:"BrtEndPCDFields"},183:{n:"BrtBeginPCDField"},184:{n:"BrtEndPCDField"},185:{n:"BrtBeginPCDSource"},186:{n:"BrtEndPCDSource"},187:{n:"BrtBeginPCDSRange"},188:{n:"BrtEndPCDSRange"},189:{n:"BrtBeginPCDFAtbl"},190:{n:"BrtEndPCDFAtbl"},191:{n:"BrtBeginPCDIRun"},192:{n:"BrtEndPCDIRun"},193:{n:"BrtBeginPivotCacheRecords"},194:{n:"BrtEndPivotCacheRecords"},195:{n:"BrtBeginPCDHierarchies"},196:{n:"BrtEndPCDHierarchies"},197:{n:"BrtBeginPCDHierarchy"},198:{n:"BrtEndPCDHierarchy"},199:{n:"BrtBeginPCDHFieldsUsage"},200:{n:"BrtEndPCDHFieldsUsage"},201:{n:"BrtBeginExtConnection"},202:{n:"BrtEndExtConnection"},203:{n:"BrtBeginECDbProps"},204:{n:"BrtEndECDbProps"},205:{n:"BrtBeginECOlapProps"},206:{n:"BrtEndECOlapProps"},207:{n:"BrtBeginPCDSConsol"},208:{n:"BrtEndPCDSConsol"},209:{n:"BrtBeginPCDSCPages"},210:{n:"BrtEndPCDSCPages"},211:{n:"BrtBeginPCDSCPage"},212:{n:"BrtEndPCDSCPage"},213:{n:"BrtBeginPCDSCPItem"},214:{n:"BrtEndPCDSCPItem"},215:{n:"BrtBeginPCDSCSets"},216:{n:"BrtEndPCDSCSets"},217:{n:"BrtBeginPCDSCSet"},218:{n:"BrtEndPCDSCSet"},219:{n:"BrtBeginPCDFGroup"},220:{n:"BrtEndPCDFGroup"},221:{n:"BrtBeginPCDFGItems"},222:{n:"BrtEndPCDFGItems"},223:{n:"BrtBeginPCDFGRange"},224:{n:"BrtEndPCDFGRange"},225:{n:"BrtBeginPCDFGDiscrete"},226:{n:"BrtEndPCDFGDiscrete"},227:{n:"BrtBeginPCDSDTupleCache"},228:{n:"BrtEndPCDSDTupleCache"},229:{n:"BrtBeginPCDSDTCEntries"},230:{n:"BrtEndPCDSDTCEntries"},231:{n:"BrtBeginPCDSDTCEMembers"},232:{n:"BrtEndPCDSDTCEMembers"},233:{n:"BrtBeginPCDSDTCEMember"},234:{n:"BrtEndPCDSDTCEMember"},235:{n:"BrtBeginPCDSDTCQueries"},236:{n:"BrtEndPCDSDTCQueries"},237:{n:"BrtBeginPCDSDTCQuery"},238:{n:"BrtEndPCDSDTCQuery"},239:{n:"BrtBeginPCDSDTCSets"},240:{n:"BrtEndPCDSDTCSets"},241:{n:"BrtBeginPCDSDTCSet"},242:{n:"BrtEndPCDSDTCSet"},243:{n:"BrtBeginPCDCalcItems"},244:{n:"BrtEndPCDCalcItems"},245:{n:"BrtBeginPCDCalcItem"},246:{n:"BrtEndPCDCalcItem"},247:{n:"BrtBeginPRule"},248:{n:"BrtEndPRule"},249:{n:"BrtBeginPRFilters"},250:{n:"BrtEndPRFilters"},251:{n:"BrtBeginPRFilter"},252:{n:"BrtEndPRFilter"},253:{n:"BrtBeginPNames"},254:{n:"BrtEndPNames"},255:{n:"BrtBeginPName"},256:{n:"BrtEndPName"},257:{n:"BrtBeginPNPairs"},258:{n:"BrtEndPNPairs"},259:{n:"BrtBeginPNPair"},260:{n:"BrtEndPNPair"},261:{n:"BrtBeginECWebProps"},262:{n:"BrtEndECWebProps"},263:{n:"BrtBeginEcWpTables"},264:{n:"BrtEndECWPTables"},265:{n:"BrtBeginECParams"},266:{n:"BrtEndECParams"},267:{n:"BrtBeginECParam"},268:{n:"BrtEndECParam"},269:{n:"BrtBeginPCDKPIs"},270:{n:"BrtEndPCDKPIs"},271:{n:"BrtBeginPCDKPI"},272:{n:"BrtEndPCDKPI"},273:{n:"BrtBeginDims"},274:{n:"BrtEndDims"},275:{n:"BrtBeginDim"},276:{n:"BrtEndDim"},277:{n:"BrtIndexPartEnd"},278:{n:"BrtBeginStyleSheet"},279:{n:"BrtEndStyleSheet"},280:{n:"BrtBeginSXView"},281:{n:"BrtEndSXVI"},282:{n:"BrtBeginSXVI"},283:{n:"BrtBeginSXVIs"},284:{n:"BrtEndSXVIs"},285:{n:"BrtBeginSXVD"},286:{n:"BrtEndSXVD"},287:{n:"BrtBeginSXVDs"},288:{n:"BrtEndSXVDs"},289:{n:"BrtBeginSXPI"},290:{n:"BrtEndSXPI"},291:{n:"BrtBeginSXPIs"},292:{n:"BrtEndSXPIs"},293:{n:"BrtBeginSXDI"},294:{n:"BrtEndSXDI"},295:{n:"BrtBeginSXDIs"},296:{n:"BrtEndSXDIs"},297:{n:"BrtBeginSXLI"},298:{n:"BrtEndSXLI"},299:{n:"BrtBeginSXLIRws"},300:{n:"BrtEndSXLIRws"},301:{n:"BrtBeginSXLICols"},302:{n:"BrtEndSXLICols"},303:{n:"BrtBeginSXFormat"},304:{n:"BrtEndSXFormat"},305:{n:"BrtBeginSXFormats"},306:{n:"BrtEndSxFormats"},307:{n:"BrtBeginSxSelect"},308:{n:"BrtEndSxSelect"},309:{n:"BrtBeginISXVDRws"},310:{n:"BrtEndISXVDRws"},311:{n:"BrtBeginISXVDCols"},312:{n:"BrtEndISXVDCols"},313:{n:"BrtEndSXLocation"},314:{n:"BrtBeginSXLocation"},315:{n:"BrtEndSXView"},316:{n:"BrtBeginSXTHs"},317:{n:"BrtEndSXTHs"},318:{n:"BrtBeginSXTH"},319:{n:"BrtEndSXTH"},320:{n:"BrtBeginISXTHRws"},321:{n:"BrtEndISXTHRws"},322:{n:"BrtBeginISXTHCols"},323:{n:"BrtEndISXTHCols"},324:{n:"BrtBeginSXTDMPS"},325:{n:"BrtEndSXTDMPs"},326:{n:"BrtBeginSXTDMP"},327:{n:"BrtEndSXTDMP"},328:{n:"BrtBeginSXTHItems"},329:{n:"BrtEndSXTHItems"},330:{n:"BrtBeginSXTHItem"},331:{n:"BrtEndSXTHItem"},332:{n:"BrtBeginMetadata"},333:{n:"BrtEndMetadata"},334:{n:"BrtBeginEsmdtinfo"},335:{n:"BrtMdtinfo"},336:{n:"BrtEndEsmdtinfo"},337:{n:"BrtBeginEsmdb"},338:{n:"BrtEndEsmdb"},339:{n:"BrtBeginEsfmd"},340:{n:"BrtEndEsfmd"},341:{n:"BrtBeginSingleCells"},342:{n:"BrtEndSingleCells"},343:{n:"BrtBeginList"},344:{n:"BrtEndList"},345:{n:"BrtBeginListCols"},346:{n:"BrtEndListCols"},347:{n:"BrtBeginListCol"},348:{n:"BrtEndListCol"},349:{n:"BrtBeginListXmlCPr"},350:{n:"BrtEndListXmlCPr"},351:{n:"BrtListCCFmla"},352:{n:"BrtListTrFmla"},353:{n:"BrtBeginExternals"},354:{n:"BrtEndExternals"},355:{n:"BrtSupBookSrc",f:bn},357:{n:"BrtSupSelf"},358:{n:"BrtSupSame"},359:{n:"BrtSupTabs"},360:{n:"BrtBeginSupBook"},361:{n:"BrtPlaceholderName"},362:{n:"BrtExternSheet",f:ba},363:{n:"BrtExternTableStart"},364:{n:"BrtExternTableEnd"},366:{n:"BrtExternRowHdr"},367:{n:"BrtExternCellBlank"},368:{n:"BrtExternCellReal"},369:{n:"BrtExternCellBool"},370:{n:"BrtExternCellError"},371:{n:"BrtExternCellString"},372:{n:"BrtBeginEsmdx"},373:{n:"BrtEndEsmdx"},374:{n:"BrtBeginMdxSet"},375:{n:"BrtEndMdxSet"},376:{n:"BrtBeginMdxMbrProp"},377:{n:"BrtEndMdxMbrProp"},378:{n:"BrtBeginMdxKPI"},379:{n:"BrtEndMdxKPI"},380:{n:"BrtBeginEsstr"},381:{n:"BrtEndEsstr"},382:{n:"BrtBeginPRFItem"},383:{n:"BrtEndPRFItem"},384:{n:"BrtBeginPivotCacheIDs"},385:{n:"BrtEndPivotCacheIDs"},386:{n:"BrtBeginPivotCacheID"},387:{n:"BrtEndPivotCacheID"},388:{n:"BrtBeginISXVIs"},389:{n:"BrtEndISXVIs"},390:{n:"BrtBeginColInfos"},391:{n:"BrtEndColInfos"},392:{n:"BrtBeginRwBrk"},393:{n:"BrtEndRwBrk"},394:{n:"BrtBeginColBrk"},395:{n:"BrtEndColBrk"},396:{n:"BrtBrk"},397:{n:"BrtUserBookView"},398:{n:"BrtInfo"},399:{n:"BrtCUsr"},400:{n:"BrtUsr"},401:{n:"BrtBeginUsers"},403:{n:"BrtEOF"},404:{n:"BrtUCR"},405:{n:"BrtRRInsDel"},406:{n:"BrtRREndInsDel"},407:{n:"BrtRRMove"},408:{n:"BrtRREndMove"},409:{n:"BrtRRChgCell"},410:{n:"BrtRREndChgCell"},411:{n:"BrtRRHeader"},412:{n:"BrtRRUserView"},413:{n:"BrtRRRenSheet"},414:{n:"BrtRRInsertSh"},415:{n:"BrtRRDefName"},416:{n:"BrtRRNote"},417:{n:"BrtRRConflict"},418:{n:"BrtRRTQSIF"},419:{n:"BrtRRFormat"},420:{n:"BrtRREndFormat"},421:{n:"BrtRRAutoFmt"},422:{n:"BrtBeginUserShViews"},423:{n:"BrtBeginUserShView"},424:{n:"BrtEndUserShView"},425:{n:"BrtEndUserShViews"},426:{n:"BrtArrFmla",f:function(e,t,n){var r=e.l+t,a=_n(e),s=e.read_shift(1),i=[a];if(i[2]=s,n.cellFormula){var o=Hi(e,r-e.l,n);i[1]=o}else e.l=r;return i}},427:{n:"BrtShrFmla",f:function(e,t,n){var r=e.l+t,a=[xn(e,16)];if(n.cellFormula){var s=Ki(e,r-e.l,n);a[1]=s,e.l=r}else e.l=r;return a}},428:{n:"BrtTable"},429:{n:"BrtBeginExtConnections"},430:{n:"BrtEndExtConnections"},431:{n:"BrtBeginPCDCalcMems"},432:{n:"BrtEndPCDCalcMems"},433:{n:"BrtBeginPCDCalcMem"},434:{n:"BrtEndPCDCalcMem"},435:{n:"BrtBeginPCDHGLevels"},436:{n:"BrtEndPCDHGLevels"},437:{n:"BrtBeginPCDHGLevel"},438:{n:"BrtEndPCDHGLevel"},439:{n:"BrtBeginPCDHGLGroups"},440:{n:"BrtEndPCDHGLGroups"},441:{n:"BrtBeginPCDHGLGroup"},442:{n:"BrtEndPCDHGLGroup"},443:{n:"BrtBeginPCDHGLGMembers"},444:{n:"BrtEndPCDHGLGMembers"},445:{n:"BrtBeginPCDHGLGMember"},446:{n:"BrtEndPCDHGLGMember"},447:{n:"BrtBeginQSI"},448:{n:"BrtEndQSI"},449:{n:"BrtBeginQSIR"},450:{n:"BrtEndQSIR"},451:{n:"BrtBeginDeletedNames"},452:{n:"BrtEndDeletedNames"},453:{n:"BrtBeginDeletedName"},454:{n:"BrtEndDeletedName"},455:{n:"BrtBeginQSIFs"},456:{n:"BrtEndQSIFs"},457:{n:"BrtBeginQSIF"},458:{n:"BrtEndQSIF"},459:{n:"BrtBeginAutoSortScope"},460:{n:"BrtEndAutoSortScope"},461:{n:"BrtBeginConditionalFormatting"},462:{n:"BrtEndConditionalFormatting"},463:{n:"BrtBeginCFRule"},464:{n:"BrtEndCFRule"},465:{n:"BrtBeginIconSet"},466:{n:"BrtEndIconSet"},467:{n:"BrtBeginDatabar"},468:{n:"BrtEndDatabar"},469:{n:"BrtBeginColorScale"},470:{n:"BrtEndColorScale"},471:{n:"BrtCFVO"},472:{n:"BrtExternValueMeta"},473:{n:"BrtBeginColorPalette"},474:{n:"BrtEndColorPalette"},475:{n:"BrtIndexedColor"},476:{n:"BrtMargins",f:function(e){var t={};return zo.forEach((function(n){t[n]=En(e)})),t}},477:{n:"BrtPrintOptions"},478:{n:"BrtPageSetup"},479:{n:"BrtBeginHeaderFooter"},480:{n:"BrtEndHeaderFooter"},481:{n:"BrtBeginSXCrtFormat"},482:{n:"BrtEndSXCrtFormat"},483:{n:"BrtBeginSXCrtFormats"},484:{n:"BrtEndSXCrtFormats"},485:{n:"BrtWsFmtInfo",f:function(){}},486:{n:"BrtBeginMgs"},487:{n:"BrtEndMGs"},488:{n:"BrtBeginMGMaps"},489:{n:"BrtEndMGMaps"},490:{n:"BrtBeginMG"},491:{n:"BrtEndMG"},492:{n:"BrtBeginMap"},493:{n:"BrtEndMap"},494:{n:"BrtHLink",f:function(e,t){var n=e.l+t,r=xn(e,16),a=mn(e),s=sn(e),i=sn(e),o=sn(e);e.l=n;var l={rfx:r,relId:a,loc:s,display:o};return i&&(l.Tooltip=i),l}},495:{n:"BrtBeginDCon"},496:{n:"BrtEndDCon"},497:{n:"BrtBeginDRefs"},498:{n:"BrtEndDRefs"},499:{n:"BrtDRef"},500:{n:"BrtBeginScenMan"},501:{n:"BrtEndScenMan"},502:{n:"BrtBeginSct"},503:{n:"BrtEndSct"},504:{n:"BrtSlc"},505:{n:"BrtBeginDXFs"},506:{n:"BrtEndDXFs"},507:{n:"BrtDXF"},508:{n:"BrtBeginTableStyles"},509:{n:"BrtEndTableStyles"},510:{n:"BrtBeginTableStyle"},511:{n:"BrtEndTableStyle"},512:{n:"BrtTableStyleElement"},513:{n:"BrtTableStyleClient"},514:{n:"BrtBeginVolDeps"},515:{n:"BrtEndVolDeps"},516:{n:"BrtBeginVolType"},517:{n:"BrtEndVolType"},518:{n:"BrtBeginVolMain"},519:{n:"BrtEndVolMain"},520:{n:"BrtBeginVolTopic"},521:{n:"BrtEndVolTopic"},522:{n:"BrtVolSubtopic"},523:{n:"BrtVolRef"},524:{n:"BrtVolNum"},525:{n:"BrtVolErr"},526:{n:"BrtVolStr"},527:{n:"BrtVolBool"},528:{n:"BrtBeginCalcChain$"},529:{n:"BrtEndCalcChain$"},530:{n:"BrtBeginSortState"},531:{n:"BrtEndSortState"},532:{n:"BrtBeginSortCond"},533:{n:"BrtEndSortCond"},534:{n:"BrtBookProtection"},535:{n:"BrtSheetProtection"},536:{n:"BrtRangeProtection"},537:{n:"BrtPhoneticInfo"},538:{n:"BrtBeginECTxtWiz"},539:{n:"BrtEndECTxtWiz"},540:{n:"BrtBeginECTWFldInfoLst"},541:{n:"BrtEndECTWFldInfoLst"},542:{n:"BrtBeginECTwFldInfo"},548:{n:"BrtFileSharing"},549:{n:"BrtOleSize"},550:{n:"BrtDrawing",f:bn},551:{n:"BrtLegacyDrawing"},552:{n:"BrtLegacyDrawingHF"},553:{n:"BrtWebOpt"},554:{n:"BrtBeginWebPubItems"},555:{n:"BrtEndWebPubItems"},556:{n:"BrtBeginWebPubItem"},557:{n:"BrtEndWebPubItem"},558:{n:"BrtBeginSXCondFmt"},559:{n:"BrtEndSXCondFmt"},560:{n:"BrtBeginSXCondFmts"},561:{n:"BrtEndSXCondFmts"},562:{n:"BrtBkHim"},564:{n:"BrtColor"},565:{n:"BrtBeginIndexedColors"},566:{n:"BrtEndIndexedColors"},569:{n:"BrtBeginMRUColors"},570:{n:"BrtEndMRUColors"},572:{n:"BrtMRUColor"},573:{n:"BrtBeginDVals"},574:{n:"BrtEndDVals"},577:{n:"BrtSupNameStart"},578:{n:"BrtSupNameValueStart"},579:{n:"BrtSupNameValueEnd"},580:{n:"BrtSupNameNum"},581:{n:"BrtSupNameErr"},582:{n:"BrtSupNameSt"},583:{n:"BrtSupNameNil"},584:{n:"BrtSupNameBool"},585:{n:"BrtSupNameFmla"},586:{n:"BrtSupNameBits"},587:{n:"BrtSupNameEnd"},588:{n:"BrtEndSupBook"},589:{n:"BrtCellSmartTagProperty"},590:{n:"BrtBeginCellSmartTag"},591:{n:"BrtEndCellSmartTag"},592:{n:"BrtBeginCellSmartTags"},593:{n:"BrtEndCellSmartTags"},594:{n:"BrtBeginSmartTags"},595:{n:"BrtEndSmartTags"},596:{n:"BrtSmartTagType"},597:{n:"BrtBeginSmartTagTypes"},598:{n:"BrtEndSmartTagTypes"},599:{n:"BrtBeginSXFilters"},600:{n:"BrtEndSXFilters"},601:{n:"BrtBeginSXFILTER"},602:{n:"BrtEndSXFilter"},603:{n:"BrtBeginFills"},604:{n:"BrtEndFills"},605:{n:"BrtBeginCellWatches"},606:{n:"BrtEndCellWatches"},607:{n:"BrtCellWatch"},608:{n:"BrtBeginCRErrs"},609:{n:"BrtEndCRErrs"},610:{n:"BrtCrashRecErr"},611:{n:"BrtBeginFonts"},612:{n:"BrtEndFonts"},613:{n:"BrtBeginBorders"},614:{n:"BrtEndBorders"},615:{n:"BrtBeginFmts"},616:{n:"BrtEndFmts"},617:{n:"BrtBeginCellXFs"},618:{n:"BrtEndCellXFs"},619:{n:"BrtBeginStyles"},620:{n:"BrtEndStyles"},625:{n:"BrtBigName"},626:{n:"BrtBeginCellStyleXFs"},627:{n:"BrtEndCellStyleXFs"},628:{n:"BrtBeginComments"},629:{n:"BrtEndComments"},630:{n:"BrtBeginCommentAuthors"},631:{n:"BrtEndCommentAuthors"},632:{n:"BrtCommentAuthor",f:Zs},633:{n:"BrtBeginCommentList"},634:{n:"BrtEndCommentList"},635:{n:"BrtBeginComment",f:function(e){var t={};t.iauthor=e.read_shift(4);var n=xn(e,16);return t.rfx=n.s,t.ref=Yt(n.s),e.l+=16,t}},636:{n:"BrtEndComment"},637:{n:"BrtCommentText",f:cn},638:{n:"BrtBeginOleObjects"},639:{n:"BrtOleObject"},640:{n:"BrtEndOleObjects"},641:{n:"BrtBeginSxrules"},642:{n:"BrtEndSxRules"},643:{n:"BrtBeginActiveXControls"},644:{n:"BrtActiveX"},645:{n:"BrtEndActiveXControls"},646:{n:"BrtBeginPCDSDTCEMembersSortBy"},648:{n:"BrtBeginCellIgnoreECs"},649:{n:"BrtCellIgnoreEC"},650:{n:"BrtEndCellIgnoreECs"},651:{n:"BrtCsProp",f:function(e,t){return e.l+=10,{name:sn(e)}}},652:{n:"BrtCsPageSetup"},653:{n:"BrtBeginUserCsViews"},654:{n:"BrtEndUserCsViews"},655:{n:"BrtBeginUserCsView"},656:{n:"BrtEndUserCsView"},657:{n:"BrtBeginPcdSFCIEntries"},658:{n:"BrtEndPCDSFCIEntries"},659:{n:"BrtPCDSFCIEntry"},660:{n:"BrtBeginListParts"},661:{n:"BrtListPart"},662:{n:"BrtEndListParts"},663:{n:"BrtSheetCalcProp"},664:{n:"BrtBeginFnGroup"},665:{n:"BrtFnGroup"},666:{n:"BrtEndFnGroup"},667:{n:"BrtSupAddin"},668:{n:"BrtSXTDMPOrder"},669:{n:"BrtCsProtection"},671:{n:"BrtBeginWsSortMap"},672:{n:"BrtEndWsSortMap"},673:{n:"BrtBeginRRSort"},674:{n:"BrtEndRRSort"},675:{n:"BrtRRSortItem"},676:{n:"BrtFileSharingIso"},677:{n:"BrtBookProtectionIso"},678:{n:"BrtSheetProtectionIso"},679:{n:"BrtCsProtectionIso"},680:{n:"BrtRangeProtectionIso"},681:{n:"BrtDValList"},1024:{n:"BrtRwDescent"},1025:{n:"BrtKnownFonts"},1026:{n:"BrtBeginSXTupleSet"},1027:{n:"BrtEndSXTupleSet"},1028:{n:"BrtBeginSXTupleSetHeader"},1029:{n:"BrtEndSXTupleSetHeader"},1030:{n:"BrtSXTupleSetHeaderItem"},1031:{n:"BrtBeginSXTupleSetData"},1032:{n:"BrtEndSXTupleSetData"},1033:{n:"BrtBeginSXTupleSetRow"},1034:{n:"BrtEndSXTupleSetRow"},1035:{n:"BrtSXTupleSetRowItem"},1036:{n:"BrtNameExt"},1037:{n:"BrtPCDH14"},1038:{n:"BrtBeginPCDCalcMem14"},1039:{n:"BrtEndPCDCalcMem14"},1040:{n:"BrtSXTH14"},1041:{n:"BrtBeginSparklineGroup"},1042:{n:"BrtEndSparklineGroup"},1043:{n:"BrtSparkline"},1044:{n:"BrtSXDI14"},1045:{n:"BrtWsFmtInfoEx14"},1046:{n:"BrtBeginConditionalFormatting14"},1047:{n:"BrtEndConditionalFormatting14"},1048:{n:"BrtBeginCFRule14"},1049:{n:"BrtEndCFRule14"},1050:{n:"BrtCFVO14"},1051:{n:"BrtBeginDatabar14"},1052:{n:"BrtBeginIconSet14"},1053:{n:"BrtDVal14",f:function(){}},1054:{n:"BrtBeginDVals14"},1055:{n:"BrtColor14"},1056:{n:"BrtBeginSparklines"},1057:{n:"BrtEndSparklines"},1058:{n:"BrtBeginSparklineGroups"},1059:{n:"BrtEndSparklineGroups"},1061:{n:"BrtSXVD14"},1062:{n:"BrtBeginSXView14"},1063:{n:"BrtEndSXView14"},1064:{n:"BrtBeginSXView16"},1065:{n:"BrtEndSXView16"},1066:{n:"BrtBeginPCD14"},1067:{n:"BrtEndPCD14"},1068:{n:"BrtBeginExtConn14"},1069:{n:"BrtEndExtConn14"},1070:{n:"BrtBeginSlicerCacheIDs"},1071:{n:"BrtEndSlicerCacheIDs"},1072:{n:"BrtBeginSlicerCacheID"},1073:{n:"BrtEndSlicerCacheID"},1075:{n:"BrtBeginSlicerCache"},1076:{n:"BrtEndSlicerCache"},1077:{n:"BrtBeginSlicerCacheDef"},1078:{n:"BrtEndSlicerCacheDef"},1079:{n:"BrtBeginSlicersEx"},1080:{n:"BrtEndSlicersEx"},1081:{n:"BrtBeginSlicerEx"},1082:{n:"BrtEndSlicerEx"},1083:{n:"BrtBeginSlicer"},1084:{n:"BrtEndSlicer"},1085:{n:"BrtSlicerCachePivotTables"},1086:{n:"BrtBeginSlicerCacheOlapImpl"},1087:{n:"BrtEndSlicerCacheOlapImpl"},1088:{n:"BrtBeginSlicerCacheLevelsData"},1089:{n:"BrtEndSlicerCacheLevelsData"},1090:{n:"BrtBeginSlicerCacheLevelData"},1091:{n:"BrtEndSlicerCacheLevelData"},1092:{n:"BrtBeginSlicerCacheSiRanges"},1093:{n:"BrtEndSlicerCacheSiRanges"},1094:{n:"BrtBeginSlicerCacheSiRange"},1095:{n:"BrtEndSlicerCacheSiRange"},1096:{n:"BrtSlicerCacheOlapItem"},1097:{n:"BrtBeginSlicerCacheSelections"},1098:{n:"BrtSlicerCacheSelection"},1099:{n:"BrtEndSlicerCacheSelections"},1100:{n:"BrtBeginSlicerCacheNative"},1101:{n:"BrtEndSlicerCacheNative"},1102:{n:"BrtSlicerCacheNativeItem"},1103:{n:"BrtRangeProtection14"},1104:{n:"BrtRangeProtectionIso14"},1105:{n:"BrtCellIgnoreEC14"},1111:{n:"BrtList14"},1112:{n:"BrtCFIcon"},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs"},1114:{n:"BrtEndSlicerCachesPivotCacheIDs"},1115:{n:"BrtBeginSlicers"},1116:{n:"BrtEndSlicers"},1117:{n:"BrtWbProp14"},1118:{n:"BrtBeginSXEdit"},1119:{n:"BrtEndSXEdit"},1120:{n:"BrtBeginSXEdits"},1121:{n:"BrtEndSXEdits"},1122:{n:"BrtBeginSXChange"},1123:{n:"BrtEndSXChange"},1124:{n:"BrtBeginSXChanges"},1125:{n:"BrtEndSXChanges"},1126:{n:"BrtSXTupleItems"},1128:{n:"BrtBeginSlicerStyle"},1129:{n:"BrtEndSlicerStyle"},1130:{n:"BrtSlicerStyleElement"},1131:{n:"BrtBeginStyleSheetExt14"},1132:{n:"BrtEndStyleSheetExt14"},1133:{n:"BrtBeginSlicerCachesPivotCacheID"},1134:{n:"BrtEndSlicerCachesPivotCacheID"},1135:{n:"BrtBeginConditionalFormattings"},1136:{n:"BrtEndConditionalFormattings"},1137:{n:"BrtBeginPCDCalcMemExt"},1138:{n:"BrtEndPCDCalcMemExt"},1139:{n:"BrtBeginPCDCalcMemsExt"},1140:{n:"BrtEndPCDCalcMemsExt"},1141:{n:"BrtPCDField14"},1142:{n:"BrtBeginSlicerStyles"},1143:{n:"BrtEndSlicerStyles"},1144:{n:"BrtBeginSlicerStyleElements"},1145:{n:"BrtEndSlicerStyleElements"},1146:{n:"BrtCFRuleExt"},1147:{n:"BrtBeginSXCondFmt14"},1148:{n:"BrtEndSXCondFmt14"},1149:{n:"BrtBeginSXCondFmts14"},1150:{n:"BrtEndSXCondFmts14"},1152:{n:"BrtBeginSortCond14"},1153:{n:"BrtEndSortCond14"},1154:{n:"BrtEndDVals14"},1155:{n:"BrtEndIconSet14"},1156:{n:"BrtEndDatabar14"},1157:{n:"BrtBeginColorScale14"},1158:{n:"BrtEndColorScale14"},1159:{n:"BrtBeginSxrules14"},1160:{n:"BrtEndSxrules14"},1161:{n:"BrtBeginPRule14"},1162:{n:"BrtEndPRule14"},1163:{n:"BrtBeginPRFilters14"},1164:{n:"BrtEndPRFilters14"},1165:{n:"BrtBeginPRFilter14"},1166:{n:"BrtEndPRFilter14"},1167:{n:"BrtBeginPRFItem14"},1168:{n:"BrtEndPRFItem14"},1169:{n:"BrtBeginCellIgnoreECs14"},1170:{n:"BrtEndCellIgnoreECs14"},1171:{n:"BrtDxf14"},1172:{n:"BrtBeginDxF14s"},1173:{n:"BrtEndDxf14s"},1177:{n:"BrtFilter14"},1178:{n:"BrtBeginCustomFilters14"},1180:{n:"BrtCustomFilter14"},1181:{n:"BrtIconFilter14"},1182:{n:"BrtPivotCacheConnectionName"},2048:{n:"BrtBeginDecoupledPivotCacheIDs"},2049:{n:"BrtEndDecoupledPivotCacheIDs"},2050:{n:"BrtDecoupledPivotCacheID"},2051:{n:"BrtBeginPivotTableRefs"},2052:{n:"BrtEndPivotTableRefs"},2053:{n:"BrtPivotTableRef"},2054:{n:"BrtSlicerCacheBookPivotTables"},2055:{n:"BrtBeginSxvcells"},2056:{n:"BrtEndSxvcells"},2057:{n:"BrtBeginSxRow"},2058:{n:"BrtEndSxRow"},2060:{n:"BrtPcdCalcMem15"},2067:{n:"BrtQsi15"},2068:{n:"BrtBeginWebExtensions"},2069:{n:"BrtEndWebExtensions"},2070:{n:"BrtWebExtension"},2071:{n:"BrtAbsPath15"},2072:{n:"BrtBeginPivotTableUISettings"},2073:{n:"BrtEndPivotTableUISettings"},2075:{n:"BrtTableSlicerCacheIDs"},2076:{n:"BrtTableSlicerCacheID"},2077:{n:"BrtBeginTableSlicerCache"},2078:{n:"BrtEndTableSlicerCache"},2079:{n:"BrtSxFilter15"},2080:{n:"BrtBeginTimelineCachePivotCacheIDs"},2081:{n:"BrtEndTimelineCachePivotCacheIDs"},2082:{n:"BrtTimelineCachePivotCacheID"},2083:{n:"BrtBeginTimelineCacheIDs"},2084:{n:"BrtEndTimelineCacheIDs"},2085:{n:"BrtBeginTimelineCacheID"},2086:{n:"BrtEndTimelineCacheID"},2087:{n:"BrtBeginTimelinesEx"},2088:{n:"BrtEndTimelinesEx"},2089:{n:"BrtBeginTimelineEx"},2090:{n:"BrtEndTimelineEx"},2091:{n:"BrtWorkBookPr15"},2092:{n:"BrtPCDH15"},2093:{n:"BrtBeginTimelineStyle"},2094:{n:"BrtEndTimelineStyle"},2095:{n:"BrtTimelineStyleElement"},2096:{n:"BrtBeginTimelineStylesheetExt15"},2097:{n:"BrtEndTimelineStylesheetExt15"},2098:{n:"BrtBeginTimelineStyles"},2099:{n:"BrtEndTimelineStyles"},2100:{n:"BrtBeginTimelineStyleElements"},2101:{n:"BrtEndTimelineStyleElements"},2102:{n:"BrtDxf15"},2103:{n:"BrtBeginDxfs15"},2104:{n:"brtEndDxfs15"},2105:{n:"BrtSlicerCacheHideItemsWithNoData"},2106:{n:"BrtBeginItemUniqueNames"},2107:{n:"BrtEndItemUniqueNames"},2108:{n:"BrtItemUniqueName"},2109:{n:"BrtBeginExtConn15"},2110:{n:"BrtEndExtConn15"},2111:{n:"BrtBeginOledbPr15"},2112:{n:"BrtEndOledbPr15"},2113:{n:"BrtBeginDataFeedPr15"},2114:{n:"BrtEndDataFeedPr15"},2115:{n:"BrtTextPr15"},2116:{n:"BrtRangePr15"},2117:{n:"BrtDbCommand15"},2118:{n:"BrtBeginDbTables15"},2119:{n:"BrtEndDbTables15"},2120:{n:"BrtDbTable15"},2121:{n:"BrtBeginDataModel"},2122:{n:"BrtEndDataModel"},2123:{n:"BrtBeginModelTables"},2124:{n:"BrtEndModelTables"},2125:{n:"BrtModelTable"},2126:{n:"BrtBeginModelRelationships"},2127:{n:"BrtEndModelRelationships"},2128:{n:"BrtModelRelationship"},2129:{n:"BrtBeginECTxtWiz15"},2130:{n:"BrtEndECTxtWiz15"},2131:{n:"BrtBeginECTWFldInfoLst15"},2132:{n:"BrtEndECTWFldInfoLst15"},2133:{n:"BrtBeginECTWFldInfo15"},2134:{n:"BrtFieldListActiveItem"},2135:{n:"BrtPivotCacheIdVersion"},2136:{n:"BrtSXDI15"},2137:{n:"BrtBeginModelTimeGroupings"},2138:{n:"BrtEndModelTimeGroupings"},2139:{n:"BrtBeginModelTimeGrouping"},2140:{n:"BrtEndModelTimeGrouping"},2141:{n:"BrtModelTimeGroupingCalcCol"},3072:{n:"BrtUid"},3073:{n:"BrtRevisionPtr"},5095:{n:"BrtBeginCalcFeatures"},5096:{n:"BrtEndCalcFeatures"},5097:{n:"BrtCalcFeature"},65535:{n:""}},Fl=W(Tl,"n"),Rl={3:{n:"BIFF2NUM",f:function(e){var t=Kr(e);++e.l;var n=En(e);return t.t="n",t.val=n,t}},4:{n:"BIFF2STR",f:function(e,t,n){var r=Kr(e);++e.l;var a=Ur(e,0,n);return r.t="str",r.val=a,r}},6:{n:"Formula",f:Vi},9:{n:"BOF",f:sa},10:{n:"EOF",f:Tr},12:{n:"CalcCount",f:Or},13:{n:"CalcMode",f:Or},14:{n:"CalcPrecision",f:Fr},15:{n:"CalcRefMode",f:Fr},16:{n:"CalcDelta",f:En},17:{n:"CalcIter",f:Fr},18:{n:"Protect",f:Fr},19:{n:"Password",f:Or},20:{n:"Header",f:pa},21:{n:"Footer",f:pa},23:{n:"ExternSheet",f:ba},24:{n:"Lbl",f:ya},25:{n:"WinProtect",f:Fr},26:{n:"VerticalPageBreaks"},27:{n:"HorizontalPageBreaks"},28:{n:"Note",f:function(e,t,n){return function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2),i=e.read_shift(2),o=Ur(e,0,n);return n.biff<8&&e.read_shift(1),[{r,c:a},o,i,s]}}(e,0,n)}},29:{n:"Selection"},34:{n:"Date1904",f:Fr},35:{n:"ExternName",f:ma},36:{n:"COLWIDTH"},38:{n:"LeftMargin",f:En},39:{n:"RightMargin",f:En},40:{n:"TopMargin",f:En},41:{n:"BottomMargin",f:En},42:{n:"PrintRowCol",f:Fr},43:{n:"PrintGrid",f:Fr},47:{n:"FilePass",f:function(e,t,n){var r={Type:n.biff>=8?e.read_shift(2):0};return r.Type?function(e,t,n){var r=n||{};r.Info=e.read_shift(2),e.l-=2,1===r.Info?r.Data=function(e){var t={},n=t.EncryptionVersionInfo=Xa(e,4);if(1!=n.Major||1!=n.Minor)throw"unrecognized version code "+n.Major+" : "+n.Minor;return t.Salt=e.read_shift(16),t.EncryptedVerifier=e.read_shift(16),t.EncryptedVerifierHash=e.read_shift(16),t}(e):r.Data=function(e,t){var n={},r=n.EncryptionVersionInfo=Xa(e,4);if(t-=4,2!=r.Minor)throw new Error("unrecognized minor version code: "+r.Minor);if(r.Major>4||r.Major<2)throw new Error("unrecognized major version code: "+r.Major);n.Flags=e.read_shift(4),t-=4;var a=e.read_shift(4);return t-=4,n.EncryptionHeader=qa(e,a),t-=a,n.EncryptionVerifier=Ya(e,t),n}(e,t)}(e,t-2,r):function(e,t,n,r){var a,s,i,o={key:Or(e),verificationBytes:Or(e)};n.password&&(o.verifier=es(n.password)),r.valid=o.verificationBytes===o.verifier,r.valid&&(r.insitu=(a=n.password,s=0,i=ss(a),function(e){var t=function(e,t,n,r,a){var s,i;for(a||(a=t),r||(r=ss("")),s=0;s!=t.length;++s)i=t[s],i=255&((i^=r[n])>>5|i<<3),a[s]=i,++n;return[a,n,r]}(0,e,s,i);return s=t[1],t[0]}))}(e,n.biff,n,r),r}},49:{n:"Font",f:function(e,t,n){var r={dyHeight:e.read_shift(2),fl:e.read_shift(2)};switch(n&&n.biff||8){case 2:break;case 3:case 4:e.l+=2;break;default:e.l+=10}return r.name=$r(e,0,n),r}},51:{n:"PrintSize",f:Or},60:{n:"Continue"},61:{n:"Window1",f:function(e){return{Pos:[e.read_shift(2),e.read_shift(2)],Dim:[e.read_shift(2),e.read_shift(2)],Flags:e.read_shift(2),CurTab:e.read_shift(2),FirstTab:e.read_shift(2),Selected:e.read_shift(2),TabRatio:e.read_shift(2)}}},64:{n:"Backup",f:Fr},65:{n:"Pane",f:function(){}},66:{n:"CodePage",f:Or},77:{n:"Pls"},80:{n:"DCon"},81:{n:"DConRef"},82:{n:"DConName"},85:{n:"DefColWidth",f:Or},89:{n:"XCT"},90:{n:"CRN"},91:{n:"FileSharing"},92:{n:"WriteAccess",f:function(e,t,n){if(n.enc)return e.l+=t,"";var r=e.l,a=Ur(e,0,n);return e.read_shift(t+r-e.l),a}},93:{n:"Obj",f:function(e,t,n){if(n&&n.biff<8)return function(e,t,n){e.l+=4;var r=e.read_shift(2),a=e.read_shift(2),s=e.read_shift(2);e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=2,e.l+=6,t-=36;var i=[];return i.push((wa[r]||Mt)(e,t,n)),{cmo:[a,r,s],ft:i}}(e,t,n);var r=na(e);return{cmo:r,ft:function(e,t){for(var n=e.l+t,r=[];e.l7||t[1]>7)throw new Error("Bad Gutters: "+t.join("|"));return t}},129:{n:"WsBool",f:function(e,t,n){return{fDialog:16&(n&&8==n.biff||2==t?e.read_shift(2):(e.l+=t,0))}}},130:{n:"GridSet",f:Or},131:{n:"HCenter",f:Fr},132:{n:"VCenter",f:Fr},133:{n:"BoundSheet8",f:function(e,t,n){var r=e.read_shift(4),a=3&e.read_shift(1),s=e.read_shift(1);switch(s){case 0:s="Worksheet";break;case 1:s="Macrosheet";break;case 2:s="Chartsheet";break;case 6:s="VBAModule"}var i=$r(e,0,n);return 0===i.length&&(i="Sheet1"),{pos:r,hs:a,dt:s,name:i}}},134:{n:"WriteProtect"},140:{n:"Country",f:function(e){var t,n=[0,0];return t=e.read_shift(2),n[0]=Mn[t]||t,t=e.read_shift(2),n[1]=Mn[t]||t,n}},141:{n:"HideObj",f:Or},144:{n:"Sort"},146:{n:"Palette",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(Xr(e));return n}},151:{n:"Sync"},152:{n:"LPr"},153:{n:"DxGCol"},154:{n:"FnGroupName"},155:{n:"FilterMode"},156:{n:"BuiltInFnGroupCount",f:Or},157:{n:"AutoFilterInfo"},158:{n:"AutoFilter"},160:{n:"Scl",f:Ca},161:{n:"Setup",f:function(e,t){var n={};return t<32||(e.l+=16,n.header=En(e),n.footer=En(e),e.l+=2),n}},174:{n:"ScenMan"},175:{n:"SCENARIO"},176:{n:"SxView"},177:{n:"Sxvd"},178:{n:"SXVI"},180:{n:"SxIvd"},181:{n:"SXLI"},182:{n:"SXPI"},184:{n:"DocRoute"},185:{n:"RecipName"},189:{n:"MulRk",f:function(e,t){for(var n=e.l+t-2,r=e.read_shift(2),a=e.read_shift(2),s=[];e.l>2&1,r.data=function(e,t,n,r){var a={},s=e.read_shift(4),i=e.read_shift(4),o=e.read_shift(4),l=e.read_shift(2);return a.patternType=$n[o>>26],r.cellStyles?(a.alc=7&s,a.fWrap=s>>3&1,a.alcV=s>>4&7,a.fJustLast=s>>7&1,a.trot=s>>8&255,a.cIndent=s>>16&15,a.fShrinkToFit=s>>20&1,a.iReadOrder=s>>22&2,a.fAtrNum=s>>26&1,a.fAtrFnt=s>>27&1,a.fAtrAlc=s>>28&1,a.fAtrBdr=s>>29&1,a.fAtrPat=s>>30&1,a.fAtrProt=s>>31&1,a.dgLeft=15&i,a.dgRight=i>>4&15,a.dgTop=i>>8&15,a.dgBottom=i>>12&15,a.icvLeft=i>>16&127,a.icvRight=i>>23&127,a.grbitDiag=i>>30&3,a.icvTop=127&o,a.icvBottom=o>>7&127,a.icvDiag=o>>14&127,a.dgDiag=o>>21&15,a.icvFore=127&l,a.icvBack=l>>7&127,a.fsxButton=l>>14&1,a):a}(e,0,r.fStyle,n),r}},225:{n:"InterfaceHdr",f:function(e,t){return 0===t||e.read_shift(2),1200}},226:{n:"InterfaceEnd",f:Tr},227:{n:"SXVS"},229:{n:"MergeCells",f:function(e,t){for(var n=[],r=e.read_shift(2);r--;)n.push(Zr(e));return n}},233:{n:"BkHim"},235:{n:"MsoDrawingGroup"},236:{n:"MsoDrawing"},237:{n:"MsoDrawingSelection"},239:{n:"PhoneticInfo"},240:{n:"SxRule"},241:{n:"SXEx"},242:{n:"SxFilt"},244:{n:"SxDXF"},245:{n:"SxItm"},246:{n:"SxName"},247:{n:"SxSelect"},248:{n:"SXPair"},249:{n:"SxFmla"},251:{n:"SxFormat"},252:{n:"SST",f:function(e,t){for(var n=e.l+t,r=e.read_shift(4),a=e.read_shift(4),s=[],i=0;i!=a&&e.l255)throw new Error("Unexpected SupBook type: "+s);for(var i=zr(e,s),o=[];r>e.l;)o.push(Wr(e));return[s,a,i,o]}},431:{n:"Prot4Rev",f:Fr},432:{n:"CondFmt"},433:{n:"CF"},434:{n:"DVal"},437:{n:"DConBin"},438:{n:"TxO",f:function(e,t,n){var r=e.l,a="";try{e.l+=4;var s=(n.lastobj||{cmo:[0,0]}).cmo[1];-1==[0,5,7,11,12,14].indexOf(s)?e.l+=6:function(e){var t=e.read_shift(1);e.l++;var n=e.read_shift(2);e.l+=2}(e);var i=e.read_shift(2);e.read_shift(2),Or(e);var o=e.read_shift(2);e.l+=o;for(var l=1;l=(u?i:2*i))break}if(a.length!==i&&a.length!==2*i)throw new Error("cchText: "+i+" != "+a.length);return e.l=r+t,{t:a}}catch(n){return e.l=r+t,{t:a}}}},439:{n:"RefreshAll",f:Fr},440:{n:"HLink",f:function(e,t){var n=Zr(e);return e.l+=16,[n,function(e,t){var n=e.l+t,r=e.read_shift(4);if(2!==r)throw new Error("Unrecognized streamVersion: "+r);var a=e.read_shift(2);e.l+=2;var s,i,o,l,u,c,h="";16&a&&(s=jr(e,e.l)),128&a&&(i=jr(e,e.l)),257==(257&a)&&(o=jr(e,e.l)),1==(257&a)&&(l=function(e,t){var n=e.read_shift(16);switch(n){case"e0c9ea79f9bace118c8200aa004ba90b":return function(e){var t=e.read_shift(4),n=e.l,r=!1;t>24&&(e.l+=t-24,"795881f43b1d7f48af2c825dc4852763"===e.read_shift(16)&&(r=!0),e.l=n);var a=e.read_shift((r?t-24:t)>>1,"utf16le").replace(N,"");return r&&(e.l+=24),a}(e);case"0303000000000000c000000000000046":return function(e){e.l+=2;var t=e.read_shift(0,"lpstr-ansi");if(e.l+=2,57005!=e.read_shift(2))throw new Error("Bad FileMoniker");if(0===e.read_shift(4))return t.replace(/\\/g,"/");var n=e.read_shift(4);if(3!=e.read_shift(2))throw new Error("Bad FileMoniker");return e.read_shift(n>>1,"utf16le").replace(N,"")}(e);default:throw new Error("Unsupported Moniker "+n)}}(e,e.l)),8&a&&(h=jr(e,e.l)),32&a&&(u=e.read_shift(16)),64&a&&(c=mr(e)),e.l=n;var f=i||o||l||"";f&&h&&(f+="#"+h),f||(f="#"+h);var d={Target:f};return u&&(d.guid=u),c&&(d.time=c),s&&(d.Tooltip=s),d}(e,t-24)]}},441:{n:"Lel"},442:{n:"CodeName",f:Wr},443:{n:"SXFDBType"},444:{n:"Prot4RevPass",f:Or},445:{n:"ObNoMacros"},446:{n:"Dv"},448:{n:"Excel9File",f:Tr},449:{n:"RecalcId",f:function(e){return e.read_shift(2),e.read_shift(4)},r:2},450:{n:"EntExU2",f:Tr},512:{n:"Dimensions",f:ha},513:{n:"Blank",f:Ea},515:{n:"Number",f:function(e){var t=Kr(e),n=En(e);return t.val=n,t}},516:{n:"Label",f:function(e,t,n){e.l;var r=Kr(e);2==n.biff&&e.l++;var a=Wr(e,e.l,n);return r.val=a,r}},517:{n:"BoolErr",f:da},518:{n:"Formula",f:Vi},519:{n:"String",f:Sa},520:{n:"Row",f:function(e){var t={};t.r=e.read_shift(2),t.c=e.read_shift(2),t.cnt=e.read_shift(2)-t.c;var n=e.read_shift(2);e.l+=4;var r=e.read_shift(1);return e.l+=3,7&r&&(t.level=7&r),32&r&&(t.hidden=!0),64&r&&(t.hpt=n/20),t}},523:{n:"Index"},545:{n:"Array",f:va},549:{n:"DefaultRowHeight",f:la},566:{n:"Table"},574:{n:"Window2",f:function(e,t,n){return n&&n.biff>=2&&n.biff<5?{}:{RTL:64&e.read_shift(2)}}},638:{n:"RK",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=Jr(e);return{r:t,c:n,ixfe:r[0],rknum:r[1]}}},659:{n:"Style"},1030:{n:"Formula",f:Vi},1048:{n:"BigName"},1054:{n:"Format",f:function(e,t,n){return[e.read_shift(2),Ur(e,0,n)]}},1084:{n:"ContinueBigName"},1212:{n:"ShrFmla",f:function(e,t,n){var r=ea(e);e.l++;var a=e.read_shift(1);return[Ui(e,t-=8,n),a,r]}},2048:{n:"HLinkTooltip",f:function(e,t){e.read_shift(2);var n=Zr(e),r=e.read_shift((t-10)/2,"dbcs-cont");return[n,r=r.replace(N,"")]}},2049:{n:"WebPub"},2050:{n:"QsiSXTag"},2051:{n:"DBQueryExt"},2052:{n:"ExtString"},2053:{n:"TxtQry"},2054:{n:"Qsir"},2055:{n:"Qsif"},2056:{n:"RRDTQSIF"},2057:{n:"BOF",f:sa},2058:{n:"OleDbConn"},2059:{n:"WOpt"},2060:{n:"SXViewEx"},2061:{n:"SXTH"},2062:{n:"SXPIEx"},2063:{n:"SXVDTEx"},2064:{n:"SXViewEx9"},2066:{n:"ContinueFrt"},2067:{n:"RealTimeData"},2128:{n:"ChartFrtInfo"},2129:{n:"FrtWrapper"},2130:{n:"StartBlock"},2131:{n:"EndBlock"},2132:{n:"StartObject"},2133:{n:"EndObject"},2134:{n:"CatLab"},2135:{n:"YMult"},2136:{n:"SXViewLink"},2137:{n:"PivotChartBits"},2138:{n:"FrtFontList"},2146:{n:"SheetExt"},2147:{n:"BookExt",r:12},2148:{n:"SXAddl"},2149:{n:"CrErr"},2150:{n:"HFPicture"},2151:{n:"FeatHdr",f:Tr},2152:{n:"Feat"},2154:{n:"DataLabExt"},2155:{n:"DataLabExtContents"},2156:{n:"CellWatch"},2161:{n:"FeatHdr11"},2162:{n:"Feature11"},2164:{n:"DropDownObjIds"},2165:{n:"ContinueFrt11"},2166:{n:"DConn"},2167:{n:"List12"},2168:{n:"Feature12"},2169:{n:"CondFmt12"},2170:{n:"CF12"},2171:{n:"CFEx"},2172:{n:"XFCRC",f:function(e){e.l+=2;var t={cxfs:0,crc:0};return t.cxfs=e.read_shift(2),t.crc=e.read_shift(4),t},r:12},2173:{n:"XFExt",f:function(e,t){e.l,e.l+=2;var n=e.read_shift(2);e.l+=2;for(var r=e.read_shift(2),a=[];r-- >0;)a.push(Xs(e,e.l));return{ixfe:n,ext:a}},r:12},2174:{n:"AutoFilter12"},2175:{n:"ContinueFrt12"},2180:{n:"MDTInfo"},2181:{n:"MDXStr"},2182:{n:"MDXTuple"},2183:{n:"MDXSet"},2184:{n:"MDXProp"},2185:{n:"MDXKPI"},2186:{n:"MDB"},2187:{n:"PLV"},2188:{n:"Compat12",f:Fr,r:12},2189:{n:"DXF"},2190:{n:"TableStyles",r:12},2191:{n:"TableStyle"},2192:{n:"TableStyleElement"},2194:{n:"StyleExt"},2195:{n:"NamePublish"},2196:{n:"NameCmt",f:function(e,t,n){if(!(n.biff<8)){var r=e.read_shift(2),a=e.read_shift(2);return[zr(e,r,n),zr(e,a,n)]}e.l+=t},r:12},2197:{n:"SortData"},2198:{n:"Theme",f:function(e,t,n){var r=e.l+t;if(124226!==e.read_shift(4))if(n.cellStyles&&se){var a,s=e.slice(e.l);e.l=r;try{a=new se(s)}catch(e){return}var i=he(a,"theme/theme/theme1.xml",!0);if(i)return Hs(i,n)}else e.l=r},r:12},2199:{n:"GUIDTypeLib"},2200:{n:"FnGrp12"},2201:{n:"NameFnGrp12"},2202:{n:"MTRSettings",f:function(e){return[0!==e.read_shift(4),0!==e.read_shift(4),e.read_shift(4)]},r:12},2203:{n:"CompressPictures",f:Tr},2204:{n:"HeaderFooter"},2205:{n:"CrtLayout12"},2206:{n:"CrtMlFrt"},2207:{n:"CrtMlFrtContinue"},2211:{n:"ForceFullCalculation",f:function(e){var t=function(e){var t=e.read_shift(2),n=e.read_shift(2);return e.l+=8,{type:t,flags:n}}(e);if(2211!=t.type)throw new Error("Invalid Future Record "+t.type);return 0!==e.read_shift(4)}},2212:{n:"ShapePropsStream"},2213:{n:"TextPropsStream"},2214:{n:"RichTextStream"},2215:{n:"CrtLayout12A"},4097:{n:"Units"},4098:{n:"Chart"},4099:{n:"Series"},4102:{n:"DataFormat"},4103:{n:"LineFormat"},4105:{n:"MarkerFormat"},4106:{n:"AreaFormat"},4107:{n:"PieFormat"},4108:{n:"AttachedLabel"},4109:{n:"SeriesText"},4116:{n:"ChartFormat"},4117:{n:"Legend"},4118:{n:"SeriesList"},4119:{n:"Bar"},4120:{n:"Line"},4121:{n:"Pie"},4122:{n:"Area"},4123:{n:"Scatter"},4124:{n:"CrtLine"},4125:{n:"Axis"},4126:{n:"Tick"},4127:{n:"ValueRange"},4128:{n:"CatSerRange"},4129:{n:"AxisLine"},4130:{n:"CrtLink"},4132:{n:"DefaultText"},4133:{n:"Text"},4134:{n:"FontX",f:Or},4135:{n:"ObjectLink"},4146:{n:"Frame"},4147:{n:"Begin"},4148:{n:"End"},4149:{n:"PlotArea"},4154:{n:"Chart3d"},4156:{n:"PicF"},4157:{n:"DropBar"},4158:{n:"Radar"},4159:{n:"Surf"},4160:{n:"RadarArea"},4161:{n:"AxisParent"},4163:{n:"LegendException"},4164:{n:"ShtProps",f:function(e,t,n){var r={area:!1};if(5!=n.biff)return e.l+=t,r;var a=e.read_shift(1);return e.l+=3,16&a&&(r.area=!0),r}},4165:{n:"SerToCrt"},4166:{n:"AxesUsed"},4168:{n:"SBaseRef"},4170:{n:"SerParent"},4171:{n:"SerAuxTrend"},4174:{n:"IFmtRecord"},4175:{n:"Pos"},4176:{n:"AlRuns"},4177:{n:"BRAI"},4187:{n:"SerAuxErrBar"},4188:{n:"ClrtClient",f:function(e){for(var t=e.read_shift(2),n=[];t-- >0;)n.push(Xr(e));return n}},4189:{n:"SerFmt"},4191:{n:"Chart3DBarShape"},4192:{n:"Fbi"},4193:{n:"BopPop"},4194:{n:"AxcExt"},4195:{n:"Dat"},4196:{n:"PlotGrowth"},4197:{n:"SIIndex"},4198:{n:"GelFrame"},4199:{n:"BopPopCustom"},4200:{n:"Fbi2"},0:{n:"Dimensions",f:ha},2:{n:"BIFF2INT",f:function(e){var t=Kr(e);++e.l;var n=e.read_shift(2);return t.t="n",t.val=n,t}},5:{n:"BoolErr",f:da},7:{n:"String",f:function(e){var t=e.read_shift(1);return 0===t?(e.l++,""):e.read_shift(t,"sbcs-cont")}},8:{n:"BIFF2ROW"},11:{n:"Index"},22:{n:"ExternCount",f:Or},30:{n:"BIFF2FORMAT",f:ca},31:{n:"BIFF2FMTCNT"},32:{n:"BIFF2COLINFO"},33:{n:"Array",f:va},37:{n:"DefaultRowHeight",f:la},50:{n:"BIFF2FONTXTRA",f:function(e,t){e.l+=6,e.l+=2,e.l+=1,e.l+=3,e.l+=1,e.l+=t-13}},52:{n:"DDEObjName"},62:{n:"BIFF2WINDOW2"},67:{n:"BIFF2XF"},69:{n:"BIFF2FONTCLR"},86:{n:"BIFF4FMTCNT"},126:{n:"RK"},127:{n:"ImData",f:function(e){var t=e.read_shift(2),n=e.read_shift(2),r=e.read_shift(4),a={fmt:t,env:n,len:r,data:e.slice(e.l,e.l+r)};return e.l+=r,a}},135:{n:"Addin"},136:{n:"Edg"},137:{n:"Pub"},145:{n:"Sub"},148:{n:"LHRecord"},149:{n:"LHNGraph"},150:{n:"Sound"},169:{n:"CoordList"},171:{n:"GCW"},188:{n:"ShrFmla"},191:{n:"ToolbarHdr"},192:{n:"ToolbarEnd"},194:{n:"AddMenu"},195:{n:"DelMenu"},214:{n:"RString",f:function(e,t,n){var r=e.l+t,a=Kr(e),s=e.read_shift(2),i=zr(e,s,n);return e.l=r,a.t="str",a.val=i,a}},223:{n:"UDDesc"},234:{n:"TabIdConf"},354:{n:"XL5Modify"},421:{n:"FileSharing2"},521:{n:"BOF",f:sa},536:{n:"Lbl",f:ya},547:{n:"ExternName",f:ma},561:{n:"Font"},579:{n:"BIFF3XF"},1033:{n:"BOF",f:sa},1091:{n:"BIFF4XF"},2157:{n:"FeatInfo"},2163:{n:"FeatInfo11"},2177:{n:"SXAddl12"},2240:{n:"AutoWebPub"},2241:{n:"ListObj"},2242:{n:"ListField"},2243:{n:"ListDV"},2244:{n:"ListCondFmt"},2245:{n:"ListCF"},2246:{n:"FMQry"},2247:{n:"FMSQry"},2248:{n:"PLV"},2249:{n:"LnExt"},2250:{n:"MkrExt"},2251:{n:"CrtCoopt"},2262:{n:"FRTArchId$",r:12},29282:{}},Ol=W(Rl,"n");function Bl(e,t,n,r){var a=+t||+Ol[t];if(!isNaN(a)){var s=r||(n||[]).length||0,i=e.next(4);i.write_shift(2,a),i.write_shift(2,s),s>0&&Et(n)&&e.push(n)}}function Ml(e,t,n){return e||(e=$t(7)),e.write_shift(2,t),e.write_shift(2,n),e.write_shift(2,0),e.write_shift(1,0),e}function $l(e,t,n,r){if(null!=t.v)switch(t.t){case"d":case"n":var a="d"==t.t?H(Q(t.v)):t.v;return void(a==(0|a)&&a>=0&&a<65536?Bl(e,2,(s=n,i=r,o=a,l=$t(9),Ml(l,s,i),l.write_shift(2,o),l)):Bl(e,3,function(e,t,n){var r=$t(15);return Ml(r,e,t),r.write_shift(8,n,"f"),r}(n,r,a)));case"b":case"e":return void Bl(e,5,function(e,t,n,r){var a=$t(9);return Ml(a,e,t),"e"==r?(a.write_shift(1,n),a.write_shift(1,1)):(a.write_shift(1,n?1:0),a.write_shift(1,0)),a}(n,r,t.v,t.t));case"s":case"str":return void Bl(e,4,function(e,t,n){var r=$t(8+2*n.length);return Ml(r,e,t),r.write_shift(1,n.length),r.write_shift(n.length,n,"sbcs"),r.l255||d.e.r>=p){if(t.WTF)throw new Error("Range "+(i["!ref"]||"A1")+" exceeds format limit A1:IV16384");d.e.c=Math.min(d.e.c,255),d.e.r=Math.min(d.e.c,p-1)}Bl(a,2057,ia(0,16,t)),Bl(a,"CalcMode",Br(1)),Bl(a,"CalcCount",Br(100)),Bl(a,"CalcRefMode",Rr(!0)),Bl(a,"CalcIter",Rr(!1)),Bl(a,"CalcDelta",Cn(.001)),Bl(a,"CalcSaveRecalc",Rr(!0)),Bl(a,"PrintRowCol",Rr(!1)),Bl(a,"PrintGrid",Rr(!1)),Bl(a,"GridSet",Br(1)),Bl(a,"Guts",function(e){var t=$t(8);return t.write_shift(4,0),t.write_shift(2,e[0]?e[0]+1:0),t.write_shift(2,e[1]?e[1]+1:0),t}([0,0])),Bl(a,"HCenter",Rr(!1)),Bl(a,"VCenter",Rr(!1)),Bl(a,512,function(e,t){var n=8!=t.biff&&t.biff?2:4,r=$t(2*n+6);return r.write_shift(n,e.s.r),r.write_shift(n,e.e.r+1),r.write_shift(2,e.s.c),r.write_shift(2,e.e.c+1),r.write_shift(2,0),r}(d,t)),c&&(i["!links"]=[]);for(var m=d.s.r;m<=d.e.r;++m){h=Gt(m);for(var g=d.s.c;g<=d.e.c;++g){m===d.s.r&&(f[g]=Kt(g)),r=f[g]+h;var y=u?(i[m]||[])[g]:i[r];y&&(Pl(a,y,m,g,t),c&&y.l&&i["!links"].push([r,y.l]))}}var b=l.CodeName||l.name||s;return c&&Bl(a,"Window2",function(e){var t=$t(18),n=1718;return e&&e.RTL&&(n|=64),t.write_shift(2,n),t.write_shift(4,0),t.write_shift(4,64),t.write_shift(4,0),t.write_shift(4,0),t}((o.Views||[])[0])),c&&(i["!merges"]||[]).length&&Bl(a,"MergeCells",function(e){var t=$t(2+8*e.length);t.write_shift(2,e.length);for(var n=0;n255||i.e.r>16383){if(r.WTF)throw new Error("Range "+(t["!ref"]||"A1")+" exceeds format limit A1:IV16384");i.e.c=Math.min(i.e.c,255),i.e.r=Math.min(i.e.c,16383),a=Zt(i)}for(var u=i.s.r;u<=i.e.r;++u){o=Gt(u);for(var c=i.s.c;c<=i.e.c;++c){u===i.s.r&&(l[c]=Kt(c)),a=l[c]+o;var h=s?(t[u]||[])[c]:t[a];h&&$l(e,h,u,c)}}}(r,e.Sheets[e.SheetNames[a]],0,n),Bl(r,10),r.end()}(e,t)}throw new Error("invalid type "+n.bookType+" for BIFF")}var Ul=function(){function e(e,t){var n=t||{},r=n.dense?[]:{},a=(e=e.replace(//g,"")).match(/");var s=e.match(/<\/table/i),i=a.index,o=s&&s.index||e.length,l=function(e,t,n){if(ie||"string"==typeof t)return e.split(t);for(var r=e.split(t),a=[r[0]],s=1;s"),a.push(r[s]);return a}(e.slice(i,o),/(:?]*>)/i),u=-1,c=0,h=0,f=0,d={s:{r:1e7,c:1e7},e:{r:0,c:0}},p=[];for(i=0;i/i);for(o=0;o"))>-1;)v=v.slice(w+1);for(var _=0;_")));f=k.colspan?+k.colspan:1,((h=+k.rowspan)>1||f>1)&&p.push({s:{r:u,c},e:{r:u+(h||1)-1,c:c+f-1}});var E=k.t||"";if(v.length){if(v=je(v),d.s.r>u&&(d.s.r=u),d.e.rc&&(d.s.c=c),d.e.cn||a[u].s.c>i||a[u].e.r1&&(d.rowspan=o),l>1&&(d.colspan=l),d.t=h&&h.t||"z",r.editable&&(f=''+f+""),d.id=(r.id||"sjs")+"-"+c,"z"!=d.t&&(d.v=h.v,null!=h.z&&(d.z=h.z)),s.push(Ze("td",f,d))}}return""+s.join("")+""}function n(e,t,n){return[].join("")+""}var r='SheetJS Table Export',a="";return{to_workbook:function(t,n){return tn(e(t,n),n)},to_sheet:e,_row:t,BEGIN:r,END:a,_preamble:n,from_sheet:function(e,s){var i=s||{},o=null!=i.header?i.header:r,l=null!=i.footer?i.footer:a,u=[o],c=Jt(e["!ref"]);i.dense=Array.isArray(e),u.push(n(0,0,i));for(var h=c.s.r;h<=c.e.r;++h)u.push(t(e,c,h,i));return u.push("
"+l),u.join("")}}}();function Vl(e,t,n){var r=n||{},a=0,s=0;if(null!=r.origin)if("number"==typeof r.origin)a=r.origin;else{var i="string"==typeof r.origin?qt(r.origin):r.origin;a=i.r,s=i.c}var o=t.getElementsByTagName("tr"),l=Math.min(r.sheetRows||1e7,o.length),u={s:{r:0,c:0},e:{r:a,c:s}};if(e["!ref"]){var c=Jt(e["!ref"]);u.s.r=Math.min(u.s.r,c.s.r),u.s.c=Math.min(u.s.c,c.s.c),u.e.r=Math.max(u.e.r,c.e.r),u.e.c=Math.max(u.e.c,c.e.c),-1==a&&(u.e.r=a=c.e.r+1)}var h=[],f=0,d=e["!rows"]||(e["!rows"]=[]),p=0,m=0,g=0,y=0,b=0,v=0;for(e["!cols"]||(e["!cols"]=[]);p1||v>1)&&h.push({s:{r:m+a,c:y+s},e:{r:m+a+(b||1)-1,c:y+s+(v||1)-1}});var S={t:"s",v:k},N=x.getAttribute("t")||"";null!=k&&(0==k.length?S.t=N||"z":r.raw||0==k.trim().length||"s"==N||("TRUE"===k?S={t:"b",v:!0}:"FALSE"===k?S={t:"b",v:!1}:isNaN(re(k))?isNaN(ae(k).getDate())||(S={t:"d",v:Q(k)},r.cellDates||(S={t:"n",v:H(S.v)}),S.z=r.dateNF||A._table[14]):S={t:"n",v:re(k)})),void 0===S.z&&null!=E&&(S.z=E),r.dense?(e[m+a]||(e[m+a]=[]),e[m+a][y+s]=S):e[Yt({c:y+s,r:m+a})]=S,u.e.c=l&&(e["!fullref"]=Zt((u.e.r=o.length-p+m-1+a,u))),e}function jl(e,t){return Vl((t||{}).dense?[]:{},e,t)}function Hl(e){var t="",n=function(e){return e.ownerDocument.defaultView&&"function"==typeof e.ownerDocument.defaultView.getComputedStyle?e.ownerDocument.defaultView.getComputedStyle:"function"==typeof getComputedStyle?getComputedStyle:null}(e);return n&&(t=n(e).getPropertyValue("display")),t||(t=e.style.display),"none"===t}var Gl,Xl=(Gl={day:["d","dd"],month:["m","mm"],year:["y","yy"],hours:["h","hh"],minutes:["m","mm"],seconds:["s","ss"],"am-pm":["A/P","AM/PM"],"day-of-week":["ddd","dddd"],era:["e","ee"],quarter:["\\Qm",'m\\"th quarter"']},function(e,t){var n,r,a,s,i,o,l,u=t||{},c=gl(e),h=[],f={name:""},d="",p=0,m={},g=[],y=u.dense?[]:{},b={value:""},v="",w=0,_=[],x=-1,k=-1,E={s:{r:1e6,c:1e7},e:{r:0,c:0}},C=0,S={},N=[],I={},A=[],D=1,T=1,F=[],R={Names:[]},O={},B=["",""],M=[],$={},P="",L=0,z=!1,W=!1,U=0;for(yl.lastIndex=0,c=c.replace(//gm,"").replace(//gm,"");i=yl.exec(c);)switch(i[3]=i[3].replace(/_.*$/,"")){case"table":case"工作表":"/"===i[1]?(E.e.c>=E.s.c&&E.e.r>=E.s.r?y["!ref"]=Zt(E):y["!ref"]="A1:A1",u.sheetRows>0&&u.sheetRows<=E.e.r&&(y["!fullref"]=y["!ref"],E.e.r=u.sheetRows-1,y["!ref"]=Zt(E)),N.length&&(y["!merges"]=N),A.length&&(y["!rows"]=A),a.name=a["名称"]||a.name,"undefined"!=typeof JSON&&JSON.stringify(a),g.push(a.name),m[a.name]=y,W=!1):"/"!==i[0].charAt(i[0].length-2)&&(a=we(i[0],!1),x=k=-1,E.s.r=E.s.c=1e7,E.e.r=E.e.c=0,y=u.dense?[]:{},N=[],A=[],W=!0);break;case"table-row-group":"/"===i[1]?--C:++C;break;case"table-row":case"行":if("/"===i[1]){x+=D,D=1;break}if((s=we(i[0],!1))["行号"]?x=s["行号"]-1:-1==x&&(x=0),(D=+s["number-rows-repeated"]||1)<10)for(U=0;U0&&(A[x+U]={level:C});k=-1;break;case"covered-table-cell":"/"!==i[1]&&++k,u.sheetStubs&&(u.dense?(y[x]||(y[x]=[]),y[x][k]={t:"z"}):y[Yt({r:x,c:k})]={t:"z"}),v="",_=[];break;case"table-cell":case"数据":if("/"===i[0].charAt(i[0].length-2))++k,b=we(i[0],!1),T=parseInt(b["number-columns-repeated"]||"1",10),o={t:"z",v:null},b.formula&&0!=u.cellFormula&&(o.f=Qi(Se(b.formula))),"string"==(b["数据类型"]||b["value-type"])&&(o.t="s",o.v=Se(b["string-value"]||""),u.dense?(y[x]||(y[x]=[]),y[x][k]=o):y[Yt({r:x,c:k})]=o),k+=T-1;else if("/"!==i[1]){T=1;var V=D?x+D-1:x;if(++k>E.e.c&&(E.e.c=k),kE.e.r&&(E.e.r=V),M=[],$={},o={t:(b=we(i[0],!1))["数据类型"]||b["value-type"],v:null},u.cellFormula)if(b.formula&&(b.formula=Se(b.formula)),b["number-matrix-columns-spanned"]&&b["number-matrix-rows-spanned"]&&(I={s:{r:x,c:k},e:{r:x+(parseInt(b["number-matrix-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-matrix-columns-spanned"],10)||0)-1}},o.F=Zt(I),F.push([I,o.F])),b.formula)o.f=Qi(b.formula);else for(U=0;U=F[U][0].s.r&&x<=F[U][0].e.r&&k>=F[U][0].s.c&&k<=F[U][0].e.c&&(o.F=F[U][1]);switch((b["number-columns-spanned"]||b["number-rows-spanned"])&&(I={s:{r:x,c:k},e:{r:x+(parseInt(b["number-rows-spanned"],10)||0)-1,c:k+(parseInt(b["number-columns-spanned"],10)||0)-1}},N.push(I)),b["number-columns-repeated"]&&(T=parseInt(b["number-columns-repeated"],10)),o.t){case"boolean":o.t="b",o.v=Oe(b["boolean-value"]);break;case"float":case"percentage":case"currency":o.t="n",o.v=parseFloat(b.value);break;case"date":o.t="d",o.v=Q(b["date-value"]),u.cellDates||(o.t="n",o.v=H(o.v)),o.z="m/d/yy";break;case"time":o.t="n",o.v=Y(b["time-value"])/86400;break;case"number":o.t="n",o.v=parseFloat(b["数据数值"]);break;default:if("string"!==o.t&&"text"!==o.t&&o.t)throw new Error("Unsupported value type "+o.t);o.t="s",null!=b["string-value"]&&(v=Se(b["string-value"]),_=[])}}else{if(z=!1,"s"===o.t&&(o.v=v||"",_.length&&(o.R=_),z=0==w),O.Target&&(o.l=O),M.length>0&&(o.c=M,M=[]),v&&!1!==u.cellText&&(o.w=v),z&&(o.t="z",delete o.v),(!z||u.sheetStubs)&&!(u.sheetRows&&u.sheetRows<=x))for(var j=0;j0;)y[x+j][k+T]=te(o);else for(y[Yt({r:x+j,c:k})]=o;--T>0;)y[Yt({r:x+j,c:k+T})]=te(o);E.e.c<=k&&(E.e.c=k)}k+=(T=parseInt(b["number-columns-repeated"]||"1",10))-1,T=0,o={},v="",_=[]}O={};break;case"document":case"document-content":case"电子表格文档":case"spreadsheet":case"主体":case"scripts":case"styles":case"font-face-decls":case"master-styles":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!0]);break;case"annotation":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n;$.t=v,_.length&&($.R=_),$.a=P,M.push($)}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);P="",L=0,v="",w=0,_=[];break;case"creator":"/"===i[1]?P=c.slice(L,i.index):L=i.index+i[0].length;break;case"meta":case"元数据":case"settings":case"config-item-set":case"config-item-map-indexed":case"config-item-map-entry":case"config-item-map-named":case"shapes":case"frame":case"text-box":case"image":case"data-pilot-tables":case"list-style":case"form":case"dde-links":case"event-listeners":case"chart":if("/"===i[1]){if((n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&h.push([i[3],!1]);v="",w=0,_=[];break;case"scientific-number":case"currency-symbol":case"currency-style":break;case"number-style":case"percentage-style":case"date-style":case"time-style":if("/"===i[1]){if(S[f.name]=d,(n=h.pop())[0]!==i[3])throw"Bad state: "+n}else"/"!==i[0].charAt(i[0].length-2)&&(d="",f=we(i[0],!1),h.push([i[3],!0]));break;case"script":case"libraries":case"automatic-styles":break;case"default-style":case"page-layout":case"style":case"map":case"font-face":case"paragraph-properties":case"table-properties":case"table-column-properties":case"table-row-properties":case"table-cell-properties":break;case"number":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"fraction":break;case"day":case"month":case"year":case"era":case"day-of-week":case"week-of-year":case"quarter":case"hours":case"minutes":case"seconds":case"am-pm":switch(h[h.length-1][0]){case"time-style":case"date-style":r=we(i[0],!1),d+=Gl[i[3]]["long"===r.style?1:0]}break;case"boolean-style":case"boolean":case"text-style":break;case"text":if("/>"===i[0].slice(-2))break;if("/"===i[1])switch(h[h.length-1][0]){case"number-style":case"date-style":case"time-style":d+=c.slice(p,i.index)}else p=i.index+i[0].length;break;case"named-range":B=eo((r=we(i[0],!1))["cell-range-address"]);var G={Name:r.name,Ref:B[0]+"!"+B[1]};W&&(G.Sheet=g.length),R.Names.push(G);break;case"text-content":case"text-properties":case"embedded-text":break;case"body":case"电子表格":case"forms":case"table-column":case"table-header-rows":case"table-rows":case"table-column-group":case"table-header-columns":case"table-columns":case"null-date":case"graphic-properties":case"calculation-settings":case"named-expressions":case"label-range":case"label-ranges":case"named-expression":case"sort":case"sort-by":case"sort-groups":case"tab":case"line-break":case"span":break;case"p":case"文本串":if(["master-styles"].indexOf(h[h.length-1][0])>-1)break;if("/"!==i[1]||b&&b["string-value"])we(i[0],!1),w=i.index+i[0].length;else{var X=(l=void 0,l=c.slice(w,i.index).replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(//g," ").replace(//g,(function(e,t){return Array(parseInt(t,10)+1).join(" ")})).replace(/]*\/>/g,"\t").replace(//g,"\n"),[Se(l.replace(/<[^>]*>/g,""))]);v=(v.length>0?v+"\n":"")+X[0]}break;case"s":break;case"database-range":if("/"===i[1])break;try{m[(B=eo(we(i[0])["target-range-address"]))[0]]["!autofilter"]={ref:B[1]}}catch(e){}break;case"date":case"object":break;case"title":case"标题":case"desc":case"binary-data":case"table-source":case"scenario":case"iteration":case"content-validations":case"content-validation":case"help-message":case"error-message":case"database-ranges":case"filter":case"filter-and":case"filter-or":case"filter-condition":case"list-level-style-bullet":case"list-level-style-number":case"list-level-properties":break;case"sender-firstname":case"sender-lastname":case"sender-initials":case"sender-title":case"sender-position":case"sender-email":case"sender-phone-private":case"sender-fax":case"sender-company":case"sender-phone-work":case"sender-street":case"sender-city":case"sender-postal-code":case"sender-country":case"sender-state-or-province":case"author-name":case"author-initials":case"chapter":case"file-name":case"template-name":case"sheet-name":case"event-listener":break;case"initial-creator":case"creation-date":case"print-date":case"generator":case"document-statistic":case"user-defined":case"editing-duration":case"editing-cycles":case"config-item":case"page-number":case"page-count":case"time":case"cell-range-source":case"detective":case"operation":case"highlighted-range":break;case"data-pilot-table":case"source-cell-range":case"source-service":case"data-pilot-field":case"data-pilot-level":case"data-pilot-subtotals":case"data-pilot-subtotal":case"data-pilot-members":case"data-pilot-member":case"data-pilot-display-info":case"data-pilot-sort-info":case"data-pilot-layout-info":case"data-pilot-field-reference":case"data-pilot-groups":case"data-pilot-group":case"data-pilot-group-member":case"rect":break;case"dde-connection-decls":case"dde-connection-decl":case"dde-link":case"dde-source":case"properties":case"property":break;case"a":if("/"!==i[1]){if(!(O=we(i[0],!1)).href)break;O.Target=O.href,delete O.href,"#"==O.Target.charAt(0)&&O.Target.indexOf(".")>-1&&(B=eo(O.Target.slice(1)),O.Target="#"+B[0]+"!"+B[1])}break;case"table-protection":case"data-pilot-grand-total":case"office-document-common-attrs":break;default:switch(i[2]){case"dc:":case"calcext:":case"loext:":case"ooo:":case"chartooo:":case"draw:":case"style:":case"chart:":case"form:":case"uof:":case"表:":case"字:":break;default:if(u.WTF)throw new Error(i)}}var K={Sheets:m,SheetNames:g,Workbook:R};return u.bookSheets&&delete K.Sheets,K});function Kl(e,t){t=t||{};var n=!!le(e,"objectdata");n&&function(e,t){for(var n,r,a=gl(e);n=yl.exec(a);)switch(n[3]){case"manifest":break;case"file-entry":if("/"==(r=we(n[0],!1)).path&&"application/vnd.oasis.opendocument.spreadsheet"!==r.type)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":case"algorithm":case"start-key-generation":case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(t&&t.WTF)throw n}}(ce(e,"META-INF/manifest.xml"),t);var r=he(e,"content.xml");if(!r)throw new Error("Missing content.xml in "+(n?"ODS":"UOF")+" file");var a=Xl(n?r:Be(r),t);return le(e,"meta.xml")&&(a.Props=ar(ce(e,"meta.xml"))),a}function ql(e,t){return Xl(e,t)}var Yl=function(){var e="";return function(){return me+e}}(),Jl=function(){var e=" \n",t=function(t,n,r){var a=[];a.push(' \n');var s=0,i=0,o=Jt(t["!ref"]),l=t["!merges"]||[],u=0,c=Array.isArray(t);for(s=0;s\n");for(;s<=o.e.r;++s){for(a.push(" \n"),i=0;ii||l[u].s.r>s||l[u].e.c\n");else{var p=Yt({r:s,c:i}),m=c?(t[s]||[])[i]:t[p];if(m&&m.f&&(f["table:formula"]=Ae(("of:="+m.f.replace(ni,"$1[.$2$3$4$5]").replace(/\]:\[/g,":")).replace(/;/g,"|").replace(/,/g,";")),m.F&&m.F.slice(0,p.length)==p)){var g=Jt(m.F);f["table:number-matrix-columns-spanned"]=g.e.c-g.s.c+1,f["table:number-matrix-rows-spanned"]=g.e.r-g.s.r+1}if(m){switch(m.t){case"b":d=m.v?"TRUE":"FALSE",f["office:value-type"]="boolean",f["office:boolean-value"]=m.v?"true":"false";break;case"n":d=m.w||String(m.v||0),f["office:value-type"]="float",f["office:value"]=m.v||0;break;case"s":case"str":d=null==m.v?"":m.v,f["office:value-type"]="string";break;case"d":d=m.w||Q(m.v).toISOString(),f["office:value-type"]="date",f["office:date-value"]=Q(m.v).toISOString(),f["table:style-name"]="ce1";break;default:a.push(e);continue}var y=Ae(d).replace(/ +/g,(function(e){return''})).replace(/\t/g,"").replace(/\n/g,"").replace(/^ /,"").replace(/ $/,"");if(m.l&&m.l.Target){var b=m.l.Target;y=Ze("text:a",y,{"xlink:href":b="#"==b.charAt(0)?"#"+b.slice(1).replace(/\./,"!"):b})}a.push(" "+Ze("table:table-cell",Ze("text:p",y,{}),f)+"\n")}else a.push(e)}}a.push(" \n")}return a.push(" \n"),a.join("")};return function(e,n){var r=[me],a=Je({"xmlns:office":"urn:oasis:names:tc:opendocument:xmlns:office:1.0","xmlns:table":"urn:oasis:names:tc:opendocument:xmlns:table:1.0","xmlns:style":"urn:oasis:names:tc:opendocument:xmlns:style:1.0","xmlns:text":"urn:oasis:names:tc:opendocument:xmlns:text:1.0","xmlns:draw":"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0","xmlns:fo":"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:dc":"http://purl.org/dc/elements/1.1/","xmlns:meta":"urn:oasis:names:tc:opendocument:xmlns:meta:1.0","xmlns:number":"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0","xmlns:presentation":"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0","xmlns:svg":"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0","xmlns:chart":"urn:oasis:names:tc:opendocument:xmlns:chart:1.0","xmlns:dr3d":"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0","xmlns:math":"http://www.w3.org/1998/Math/MathML","xmlns:form":"urn:oasis:names:tc:opendocument:xmlns:form:1.0","xmlns:script":"urn:oasis:names:tc:opendocument:xmlns:script:1.0","xmlns:ooo":"http://openoffice.org/2004/office","xmlns:ooow":"http://openoffice.org/2004/writer","xmlns:oooc":"http://openoffice.org/2004/calc","xmlns:dom":"http://www.w3.org/2001/xml-events","xmlns:xforms":"http://www.w3.org/2002/xforms","xmlns:xsd":"http://www.w3.org/2001/XMLSchema","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xmlns:sheet":"urn:oasis:names:tc:opendocument:sh33tjs:1.0","xmlns:rpt":"http://openoffice.org/2005/report","xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"}),s=Je({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});"fods"==n.bookType?r.push("\n"):r.push("\n"),function(e){e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" /\n"),e.push(' \n'),e.push(" /\n"),e.push(" \n"),e.push(" \n"),e.push(' \n'),e.push(' \n'),e.push(" \n"),e.push(' \n'),e.push(" \n")}(r),r.push(" \n"),r.push(" \n");for(var i=0;i!=e.SheetNames.length;++i)r.push(t(e.Sheets[e.SheetNames[i]],e,i));return r.push(" \n"),r.push(" \n"),"fods"==n.bookType?r.push(""):r.push(""),r.join("")}}();function Zl(e,t){if("fods"==t.bookType)return Jl(e,t);var n=de(),r="",a=[],s=[];return fe(n,r="mimetype","application/vnd.oasis.opendocument.spreadsheet"),fe(n,r="content.xml",Jl(e,t)),a.push([r,"text/xml"]),s.push([r,"ContentFile"]),fe(n,r="styles.xml",Yl(e,t)),a.push([r,"text/xml"]),s.push([r,"StylesFile"]),fe(n,r="meta.xml",tr()),a.push([r,"text/xml"]),s.push([r,"MetadataFile"]),fe(n,r="manifest.rdf",function(e){var t=[me];t.push('\n');for(var n=0;n!=e.length;++n)t.push(Qn(e[n][0],e[n][1])),t.push(("",[' \n',' \n'," \n"].join("")));return t.push(Qn("","Document","pkg")),t.push(""),t.join("")}(s)),a.push([r,"application/rdf+xml"]),fe(n,r="META-INF/manifest.xml",function(e){var t=[me];t.push('\n'),t.push(' \n');for(var n=0;n\n');return t.push(""),t.join("")}(a)),n}function Ql(e){return function(t,n){var r=function(e,t){if(!t)return 0;var n=e.SheetNames.indexOf(t);if(-1==n)throw new Error("Sheet not found: "+t);return n}(t,n.sheet);return e.from_sheet(t.Sheets[t.SheetNames[r]],n,t)}}var eu=Ql(Ul),tu=Ql({from_sheet:Fu}),nu=Ql(void 0!==Ia?Ia:{}),ru=Ql(void 0!==Aa?Aa:{}),au=Ql(void 0!==Ta?Ta:{}),su=Ql(void 0!==is?is:{}),iu=Ql({from_sheet:Ru}),ou=Ql(void 0!==Na?Na:{}),lu=Ql(void 0!==Da?Da:{});function uu(e){return function(t){for(var n=0;n!=e.length;++n){var r=e[n];void 0===t[r[0]]&&(t[r[0]]=r[1]),"n"===r[2]&&(t[r[0]]=Number(t[r[0]]))}}}var cu=function(e){uu([["cellNF",!1],["cellHTML",!0],["cellFormula",!0],["cellStyles",!1],["cellText",!0],["cellDates",!1],["sheetStubs",!1],["sheetRows",0,"n"],["bookDeps",!1],["bookSheets",!1],["bookProps",!1],["bookFiles",!1],["bookVBA",!1],["password",""],["WTF",!1]])(e)},hu=uu([["cellDates",!1],["bookSST",!1],["bookType","xlsx"],["compression",!1],["WTF",!1]]);function fu(e,t,n,r,a,s,i,o,l,u,c,h){try{s[r]=Kn(he(e,n,!0),t);var f,d=ce(e,t);switch(o){case"sheet":f=rl(d,t,a,l,s[r],u,c,h);break;case"chart":if(!(f=function(e,t,n,r,a,s,i,o){return".bin"===t.slice(-4)?function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s={"!type":"chart","!drawel":null,"!rel":""},i=[],o=!1;return Pt(e,(function(e,r,l){switch(l){case 550:s["!rel"]=e;break;case 651:a.Sheets[n]||(a.Sheets[n]={}),e.name&&(a.Sheets[n].CodeName=e.name);break;case 562:case 652:case 669:case 679:case 551:case 552:case 476:case 3072:break;case 35:o=!0;break;case 36:o=!1;break;case 37:i.push(r);break;case 38:i.pop();break;default:if((r||"").indexOf("Begin")>0)i.push(r);else if((r||"").indexOf("End")>0)i.pop();else if(!o||t.WTF)throw new Error("Unexpected record "+l+" "+r)}}),t),r["!id"][s["!rel"]]&&(s["!drawel"]=r["!id"][s["!rel"]]),s}(e,r,n,a,s):function(e,t,n,r,a){if(!e)return e;r||(r={"!id":{}});var s,i={"!type":"chart","!drawel":null,"!rel":""},o=e.match(bo);return o&&wo(o[0],0,a,n),(s=e.match(/drawing r:id="(.*?)"/))&&(i["!rel"]=s[1]),r["!id"][i["!rel"]]&&(i["!drawel"]=r["!id"][i["!rel"]]),i}(e,0,n,a,s)}(d,t,a,l,s[r],u))||!f["!drawel"])break;var p=pe(f["!drawel"].Target,t),m=Xn(p),g=pe(function(e,t){if(!e)return"??";var n=(e.match(/]*r:id="([^"]*)"/)||["",""])[1];return t["!id"][n].Target}(he(e,p,!0),Kn(he(e,m,!0),p)),p),y=Xn(g);f=function(e,t,n,r,a,s){var i=s||{"!type":"chart"};if(!e)return s;var o=0,l=0,u="A",c={s:{r:2e6,c:2e6},e:{r:0,c:0}};return(e.match(/[\s\S]*?<\/c:numCache>/gm)||[]).forEach((function(e){var t=function(e){var t,n=[],r=e.match(/^/);(e.match(/(.*?)<\/c:pt>/gm)||[]).forEach((function(e){var t=e.match(/(.*)<\/c:v><\/c:pt>/);t&&(n[+t[1]]=r?+t[2]:t[2])}));var a=Se((e.match(/([\s\S]*?)<\/c:formatCode>/)||["","General"])[1]);return(e.match(/(.*?)<\/c:f>/gm)||[]).forEach((function(e){t=e.replace(/<.*?>/g,"")})),[n,a,t]}(e);c.s.r=c.s.c=0,c.e.c=o,u=Kt(o),t[0].forEach((function(e,n){i[u+Gt(n)]={t:"n",v:e,z:t[1]},l=n})),c.e.r0&&(i["!ref"]=Zt(c)),i}(he(e,g,!0),0,0,Kn(he(e,y,!0),g),0,f);break;case"macro":v=t,s[r],v.slice(-4),f={"!type":"macro"};break;case"dialog":f=function(e,t,n,r,a,s,i,o){return t.slice(-4),{"!type":"dialog"}}(0,t,0,0,s[r]);break;default:throw new Error("Unrecognized sheet type "+o)}i[r]=f;var b=[];s&&s[r]&&z(s[r]).forEach((function(n){if(s[r][n].Type==Gn.CMNT){var a=pe(s[r][n].Target,t);if(!(b=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=[],a={},s=!1;return Pt(e,(function(e,i,o){switch(o){case 632:r.push(e);break;case 635:a=e;break;case 637:a.t=e.t,a.h=e.h,a.r=e.r;break;case 636:if(a.author=r[a.iauthor],delete a.iauthor,t.sheetRows&&a.rfx&&t.sheetRows<=a.rfx.r)break;a.t||(a.t=""),delete a.rfx,n.push(a);break;case 3072:break;case 35:s=!0;break;case 36:s=!1;break;case 37:case 38:break;default:if((i||"").indexOf("Begin")>0);else if((i||"").indexOf("End")>0);else if(!s||t.WTF)throw new Error("Unexpected record "+o+" "+i)}})),n}(e,n):function(e,t){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var n=[],r=[],a=e.match(/<(?:\w+:)?authors>([\s\S]*)<\/(?:\w+:)?authors>/);a&&a[1]&&a[1].split(/<\/\w*:?author>/).forEach((function(e){if(""!==e&&""!==e.trim()){var t=e.match(/<(?:\w+:)?author[^>]*>(.*)/);t&&n.push(t[1])}}));var s=e.match(/<(?:\w+:)?commentList>([\s\S]*)<\/(?:\w+:)?commentList>/);return s&&s[1]&&s[1].split(/<\/\w*:?comment>/).forEach((function(e){if(""!==e&&""!==e.trim()){var a=e.match(/<(?:\w+:)?comment[^>]*>/);if(a){var s=we(a[0]),i={author:s.authorId&&n[s.authorId]||"sheetjsghost",ref:s.ref,guid:s.guid},o=qt(s.ref);if(!(t.sheetRows&&t.sheetRows<=o.r)){var l=e.match(/<(?:\w+:)?text>([\s\S]*)<\/(?:\w+:)?text>/),u=!!l&&!!l[1]&&Pa(l[1])||{r:"",t:"",h:""};i.r=u.r,""==u.r&&(u.t=u.h=""),i.t=u.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),t.cellHTML&&(i.h=u.h),r.push(i)}}}})),r}(e,n)}(ce(e,a,!0),a,l))||!b.length)return;!function(e,t){var n,r=Array.isArray(e);t.forEach((function(t){var a=qt(t.ref);if(r?(e[a.r]||(e[a.r]=[]),n=e[a.r][a.c]):n=e[t.ref],!n){n={t:"z"},r?e[a.r][a.c]=n:e[t.ref]=n;var s=Qt(e["!ref"]||"BDWGO1000001:A1");s.s.r>a.r&&(s.s.r=a.r),s.e.ra.c&&(s.s.c=a.c),s.e.c0?t.calcchains[0]:"",t.sst=t.strs.length>0?t.strs[0]:"",t.style=t.styles.length>0?t.styles[0]:"",t.defaults=n,delete t.calcchains,t}(he(e,"[Content_Types].xml")),i=!1;if(0===s.workbooks.length&&ce(e,r="xl/workbook.xml",!0)&&s.workbooks.push(r),0===s.workbooks.length){if(!ce(e,r="xl/workbook.bin",!0))throw new Error("Could not find workbook");s.workbooks.push(r),i=!0}"bin"==s.workbooks[0].slice(-3)&&(i=!0);var o={},l={};if(!t.bookSheets&&!t.bookProps){if(to=[],s.sst)try{to=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n=[],r=!1;return Pt(e,(function(e,a,s){switch(s){case 159:n.Count=e[0],n.Unique=e[1];break;case 19:n.push(e);break;case 160:return!0;case 35:r=!0;break;case 36:r=!1;break;default:if(a.indexOf("Begin")>0||a.indexOf("End"),!r||t.WTF)throw new Error("Unexpected record "+s+" "+a)}})),n}(e,n):function(e,t){var n=[],r="";if(!e)return n;var a=e.match(La);if(a){r=a[2].replace(za,"").split(Wa);for(var s=0;s!=r.length;++s){var i=Pa(r[s].trim(),t);null!=i&&(n[n.length]=i)}a=we(a[1]),n.Count=a.count,n.Unique=a.uniqueCount}return n}(e,n)}(ce(e,du(s.sst)),s.sst,t)}catch(e){if(t.WTF)throw e}t.cellStyles&&s.themes.length&&(o=function(e,t,n){return Hs(e,n)}(he(e,s.themes[0].replace(/^\//,""),!0)||"",s.themes[0],t)),s.style&&(l=function(e,t,n,r){return".bin"===t.slice(-4)?function(e,t,n){var r={NumberFmt:[]};for(var a in A._table)r.NumberFmt[a]=A._table[a];r.CellXf=[],r.Fonts=[];var s=[],i=!1;return Pt(e,(function(e,a,o){switch(o){case 44:r.NumberFmt[e[0]]=e[1],A.load(e[1],e[0]);break;case 43:r.Fonts.push(e),null!=e.color.theme&&t&&t.themeElements&&t.themeElements.clrScheme&&(e.color.rgb=ls(t.themeElements.clrScheme[e.color.theme].rgb,e.color.tint||0));break;case 1025:case 45:case 46:break;case 47:"BrtBeginCellXFs"==s[s.length-1]&&r.CellXf.push(e);break;case 48:case 507:case 572:case 475:break;case 1171:case 2102:case 1130:case 512:case 2095:case 3072:break;case 35:i=!0;break;case 36:i=!1;break;case 37:s.push(a),i=!0;break;case 38:s.pop(),i=!1;break;default:if((a||"").indexOf("Begin")>0)s.push(a);else if((a||"").indexOf("End")>0)s.pop();else if(!i||n.WTF&&"BrtACBegin"!=s[s.length-1])throw new Error("Unexpected record "+o+" "+a)}})),r}(e,n,r):Ss(e,n,r)}(ce(e,du(s.style)),s.style,o,t))}s.links.map((function(n){try{return Kn(he(e,Xn(du(n))),n),function(e,t,n,r){if(".bin"===n.slice(-4))return function(e,t,n,r){if(!e)return e;var a=r||{},s=!1;Pt(e,(function(e,t,n){switch(n){case 359:case 363:case 364:case 366:case 367:case 368:case 369:case 370:case 371:case 472:case 577:case 578:case 579:case 580:case 581:case 582:case 583:case 584:case 585:case 586:case 587:break;case 35:s=!0;break;case 36:s=!1;break;default:if((t||"").indexOf("Begin")>0);else if((t||"").indexOf("End")>0);else if(!s||a.WTF)throw new Error("Unexpected record "+n.toString(16)+" "+t)}}),a)}(e,0,0,r)}(ce(e,du(n)),0,n,t)}catch(e){}}));var u=function(e,t,n){return".bin"===t.slice(-4)?function(e,t){var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""},r=[],a=!1;t||(t={}),t.biff=12;var s=[],i=[[]];return i.SheetNames=[],i.XTI=[],Pt(e,(function(e,o,l){switch(l){case 156:i.SheetNames.push(e.name),n.Sheets.push(e);break;case 153:n.WBProps=e;break;case 39:null!=e.Sheet&&(t.SID=e.Sheet),e.Ref=zi(e.Ptg,0,null,i,t),delete t.SID,delete e.Ptg,s.push(e);break;case 1036:break;case 357:case 358:case 355:case 667:i[0].length?i.push([l,e]):i[0]=[l,e],i[i.length-1].XTI=[];break;case 362:0===i.length&&(i[0]=[],i[0].XTI=[]),i[i.length-1].XTI=i[i.length-1].XTI.concat(e),i.XTI=i.XTI.concat(e);break;case 361:break;case 3072:case 3073:case 2071:case 534:case 677:case 158:case 157:case 610:case 2050:case 155:case 548:case 676:case 128:case 665:case 2128:case 2125:case 549:case 2053:case 596:case 2076:case 2075:case 2082:case 397:case 154:case 1117:case 553:case 2091:break;case 35:r.push(o),a=!0;break;case 36:r.pop(),a=!1;break;case 37:r.push(o),a=!0;break;case 38:r.pop(),a=!1;break;case 16:break;default:if((o||"").indexOf("Begin")>0);else if((o||"").indexOf("End")>0);else if(!a||t.WTF&&"BrtACBegin"!=r[r.length-1]&&"BrtFRTBegin"!=r[r.length-1])throw new Error("Unexpected record "+l+" "+o)}}),t),qo(n),n.Names=s,n.supbooks=i,n}(e,n):function(e,t){if(!e)throw new Error("Could not find file");var n={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},Names:[],xmlns:""},r=!1,a="xmlns",s={},i=0;if(e.replace(ye,(function(o,l){var u=we(o);switch(_e(u[0])){case"":break;case"":case"":case"":break;case"":Vo.forEach((function(e){if(null!=u[e[0]])switch(e[2]){case"bool":n.WBProps[e[0]]=Oe(u[e[0]]);break;case"int":n.WBProps[e[0]]=parseInt(u[e[0]],10);break;default:n.WBProps[e[0]]=u[e[0]]}})),u.codeName&&(n.WBProps.CodeName=Be(u.codeName));break;case"":case"":break;case"":case"":break;case"":delete u[0],n.WBView.push(u);break;case"":break;case"":case"":break;case"":break;case"":case"":case"":case"":break;case"":case"":r=!1;break;case"":s.Ref=Se(Be(e.slice(i,l))),n.Names.push(s);break;case"":break;case"":delete u[0],n.CalcPr=u;break;case"":case"":case"":case"":break;case"":case"":case"":break;case"":case"":case"":break;case"":break;case"":case"":case"":case"":case"":break;case"":r=!1;break;case"":r=!0;break;case"":r=!1;break;case"]*>([\\s\\S]*?)"));s&&s.length>0&&(r[n[1]]=s[1])}})),r.HeadingPairs&&r.TitlesOfParts&&lr(r.HeadingPairs,r.TitlesOfParts,t,n)}(h,c,t));var f={};t.bookSheets&&!t.bookProps||0!==s.custprops.length&&(h=he(e,du(s.custprops[0]),!0))&&(f=function(e,t){var n={},r="",a=e.match(cr);if(a)for(var s=0;s!=a.length;++s){var i=a[s],o=we(i);switch(o[0]){case"":r=null;break;default:if(0===i.indexOf(""),u=l[0].slice(4),c=l[1];switch(u){case"lpstr":case"bstr":case"lpwstr":n[r]=Se(c);break;case"bool":n[r]=Oe(c);break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":n[r]=parseInt(c,10);break;case"r4":case"r8":case"decimal":n[r]=parseFloat(c);break;case"filetime":case"date":n[r]=Q(c);break;case"cy":case"error":n[r]=Se(c);break;default:if("/"==u.slice(-1))break;t.WTF&&"undefined"!=typeof console&&console.warn("Unexpected",i,u,l)}}else if("0&&(n=c.SheetNames),t.bookProps&&(d.Props=c,d.Custprops=f),t.bookSheets&&void 0!==n&&(d.SheetNames=n),t.bookSheets?d.SheetNames:t.bookProps))return d;n={};var p,m={};t.bookDeps&&s.calcchain&&(p=ce(e,du(s.calcchain)),m=".bin"===s.calcchain.slice(-4)?function(e,t,n){var r=[];return Pt(e,(function(e,t,n){switch(n){case 63:r.push(e);break;default:if((t||"").indexOf("Begin")>0);else if(!((t||"").indexOf("End")>0))throw new Error("Unexpected record "+n+" "+t)}})),r}(p):function(e){var t=[];if(!e)return t;var n=1;return(e.match(ye)||[]).forEach((function(e){var r=we(e);switch(r[0]){case"":case"":break;case"-1?"sheet":Gn.CS&&n==Gn.CS?"chart":Gn.DS&&n==Gn.DS?"dialog":Gn.MS&&n==Gn.MS?"macro":n&&n.length?n:"sheet")];var n}))}catch(e){return null}return e&&0!==e.length?e:null}(C,u.Sheets));var S=ce(e,"xl/worksheets/sheet.xml",!0)?1:0;e:for(b=0;b!=c.Worksheets;++b){var N="sheet";if(C&&C[b]?(g="xl/"+C[b][1].replace(/[\/]?xl\//,""),le(e,g)||(g=C[b][1]),le(e,g)||(g=E.replace(/_rels\/.*$/,"")+C[b][1]),N=C[b][2]):g=(g="xl/worksheets/sheet"+(b+1-S)+"."+x).replace(/sheet0\./,"sheet."),y=g.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels"),t&&null!=t.sheets)switch(typeof t.sheets){case"number":if(b!=t.sheets)continue e;break;case"string":if(c.SheetNames[b].toLowerCase()!=t.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(t.sheets)){for(var I=!1,T=0;T!=t.sheets.length;++T)"number"==typeof t.sheets[T]&&t.sheets[T]==b&&(I=1),"string"==typeof t.sheets[T]&&t.sheets[T].toLowerCase()==c.SheetNames[b].toLowerCase()&&(I=1);if(!I)continue e}}fu(e,g,y,c.SheetNames[b],b,v,n,N,t,u,o,l)}return d={Directory:s,Workbook:u,Props:c,Custprops:f,Deps:m,Sheets:n,SheetNames:c.SheetNames,Strings:to,Styles:l,Themes:o,SSF:A.get_table()},t&&t.bookFiles&&(d.keys=a,d.files=e.files),t&&t.bookVBA&&(s.vba.length>0?d.vbaraw=ce(e,du(s.vba[0]),!0):s.defaults&&"application/vnd.ms-office.vbaProject"===s.defaults.bin&&(d.vbaraw=ce(e,"xl/vbaProject.bin",!0))),d}function mu(e,t){var n=t||{},r="Workbook",a=M.find(e,r);try{if(r="/!DataSpaces/Version",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(function(e){var t={};t.id=e.read_shift(0,"lpp4"),t.R=Xa(e,4),t.U=Xa(e,4),t.W=Xa(e,4)}(a.content),r="/!DataSpaces/DataSpaceMap",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var s=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(Ka(e));return t}(a.content);if(1!==s.length||1!==s[0].comps.length||0!==s[0].comps[0].t||"StrongEncryptionDataSpace"!==s[0].name||"EncryptedPackage"!==s[0].comps[0].v)throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var i=function(e){var t=[];e.l+=4;for(var n=e.read_shift(4);n-- >0;)t.push(e.read_shift(0,"lpp4"));return t}(a.content);if(1!=i.length||"StrongEncryptionTransform"!=i[0])throw new Error("ECMA-376 Encrypted file bad "+r);if(r="/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);!function(e){var t=function(e){var t={};return e.read_shift(4),e.l+=4,t.id=e.read_shift(0,"lpp4"),t.name=e.read_shift(0,"lpp4"),t.R=Xa(e,4),t.U=Xa(e,4),t.W=Xa(e,4),t}(e);if(t.ename=e.read_shift(0,"8lpp4"),t.blksz=e.read_shift(4),t.cmode=e.read_shift(4),4!=e.read_shift(4))throw new Error("Bad !Primary record")}(a.content)}catch(e){}if(r="/EncryptionInfo",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);var o=function(e){var t=Xa(e);switch(t.Minor){case 2:return[t.Minor,Ja(e)];case 3:return[t.Minor,Za()];case 4:return[t.Minor,Qa(e)]}throw new Error("ECMA-376 Encrypted file unrecognized Version: "+t.Minor)}(a.content);if(r="/EncryptedPackage",!(a=M.find(e,r))||!a.content)throw new Error("ECMA-376 Encrypted file missing "+r);if(4==o[0]&&"undefined"!=typeof decrypt_agile)return decrypt_agile(o[1],a.content,n.password||"",n);if(2==o[0]&&"undefined"!=typeof decrypt_std76)return decrypt_std76(o[1],a.content,n.password||"",n);throw new Error("File is password-protected")}function gu(e,t){if(Ks=1024,"ods"==t.bookType)return Zl(e,t);e&&!e.SSF&&(e.SSF=A.get_table()),e&&e.SSF&&(D(A),A.load_table(e.SSF),t.revssf=V(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,ro?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var n="xlsb"==t.bookType?"bin":"xml",r=ei.indexOf(t.bookType)>-1,a={workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:""};hu(t=t||{});var s=de(),i="",o=0;if(t.cellXfs=[],oo(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),fe(s,i="docProps/core.xml",function(e,t){var n=t||{},r=[me,sr],a={};if(!e&&!n.Props)return r.join("");e&&(null!=e.CreatedDate&&ir("dcterms:created","string"==typeof e.CreatedDate?e.CreatedDate:Qe(e.CreatedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a),null!=e.ModifiedDate&&ir("dcterms:modified","string"==typeof e.ModifiedDate?e.ModifiedDate:Qe(e.ModifiedDate,n.WTF),{"xsi:type":"dcterms:W3CDTF"},r,a));for(var s=0;s!=nr.length;++s){var i=nr[s],o=n.Props&&null!=n.Props[i[1]]?n.Props[i[1]]:e?e[i[1]]:null;!0===o?o="1":!1===o?o="0":"number"==typeof o&&(o=String(o)),null!=o&&ir(i[0],o,null,r,a)}return r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(e.Props,t)),a.coreprops.push(i),Zn(t.rels,2,i,Gn.CORE_PROPS),i="docProps/app.xml",e.Props&&e.Props.SheetNames);else if(e.Workbook&&e.Workbook.Sheets){for(var l=[],u=0;uWorksheets")+n("vt:variant",n("vt:i4",String(e.Worksheets))),{size:2,baseType:"variant"})),t[t.length]=n("TitlesOfParts",n("vt:vector",e.SheetNames.map((function(e){return""+Ae(e)+""})).join(""),{size:e.Worksheets,baseType:"lpstr"})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Props)),a.extprops.push(i),Zn(t.rels,3,i,Gn.EXT_PROPS),e.Custprops!==e.Props&&z(e.Custprops||{}).length>0&&(fe(s,i="docProps/custom.xml",function(e){var t=[me,hr];if(!e)return t.join("");var n=1;return z(e).forEach((function(r){++n,t[t.length]=Ze("property",function(e,t){switch(typeof e){case"string":var n=Ze("vt:lpwstr",Ae(e));return n.replace(/"/g,"_x0022_");case"number":return Ze((0|e)==e?"vt:i4":"vt:r8",Ae(String(e)));case"boolean":return Ze("vt:bool",e?"true":"false")}if(e instanceof Date)return Ze("vt:filetime",Qe(e));throw new Error("Unable to serialize "+e)}(e[r]),{fmtid:"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}",pid:n,name:Ae(r)})})),t.length>2&&(t[t.length]="",t[1]=t[1].replace("/>",">")),t.join("")}(e.Custprops)),a.custprops.push(i),Zn(t.rels,4,i,Gn.CUST_PROPS)),o=1;o<=e.SheetNames.length;++o){var c={"!id":{}},h=e.Sheets[e.SheetNames[o-1]];switch((h||{})["!type"]||"sheet"){case"chart":default:fe(s,i="xl/worksheets/sheet"+o+"."+n,sl(o-1,i,t,e,c)),a.sheets.push(i),Zn(t.wbrels,-1,"worksheets/sheet"+o+"."+n,Gn.WS[0])}if(h){var f=h["!comments"],d=!1;if(f&&f.length>0){var p="xl/comments"+o+"."+n;fe(s,p,ol(f,p,t)),a.comments.push(p),Zn(c,-1,"../comments"+o+"."+n,Gn.CMNT),d=!0}h["!legacy"]&&d&&fe(s,"xl/drawings/vmlDrawing"+o+".vml",qs(o,h["!comments"])),delete h["!comments"],delete h["!legacy"]}c["!id"].rId1&&fe(s,Xn(i),Yn(c))}return null!=t.Strings&&t.Strings.length>0&&(fe(s,i="xl/sharedStrings."+n,il(t.Strings,i,t)),a.strs.push(i),Zn(t.wbrels,-1,"sharedStrings."+n,Gn.SST)),fe(s,i="xl/workbook."+n,al(e,i,t)),a.workbooks.push(i),Zn(t.rels,1,i,Gn.WB),fe(s,i="xl/theme/theme1.xml",Gs(e.Themes,t)),a.themes.push(i),Zn(t.wbrels,-1,"theme/theme1.xml",Gn.THEME),fe(s,i="xl/styles."+n,function(e,t,n){return(".bin"===t.slice(-4)?Ms:Is)(e,n)}(e,i,t)),a.styles.push(i),Zn(t.wbrels,-1,"styles."+n,Gn.STY),e.vbaraw&&r&&(fe(s,i="xl/vbaProject.bin",e.vbaraw),a.vba.push(i),Zn(t.wbrels,-1,"vbaProject.bin",Gn.VBA)),fe(s,"[Content_Types].xml",function(e,t){var n,r=[];r[r.length]=me,r[r.length]=jn,r=r.concat(Hn);var a=function(a){e[a]&&e[a].length>0&&(n=e[a][0],r[r.length]=Ze("Override",null,{PartName:("/"==n[0]?"":"/")+n,ContentType:Un[a][t.bookType||"xlsx"]}))},s=function(n){(e[n]||[]).forEach((function(e){r[r.length]=Ze("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Un[n][t.bookType||"xlsx"]})}))},i=function(t){(e[t]||[]).forEach((function(e){r[r.length]=Ze("Override",null,{PartName:("/"==e[0]?"":"/")+e,ContentType:Vn[t][0]})}))};return a("workbooks"),s("sheets"),s("charts"),i("themes"),["strs","styles"].forEach(a),["coreprops","extprops","custprops"].forEach(i),i("vba"),i("comments"),i("drawings"),r.length>2&&(r[r.length]="",r[1]=r[1].replace("/>",">")),r.join("")}(a,t)),fe(s,"_rels/.rels",Yn(t.rels)),fe(s,"xl/_rels/workbook."+n+".rels",Yn(t.wbrels)),delete t.revssf,delete t.ssf,s}function yu(e,t){var n="";switch((t||{}).type||"base64"){case"buffer":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case"base64":n=g.decode(e.slice(0,12));break;case"binary":n=e;break;case"array":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error("Unrecognized type "+(t&&t.type||"undefined"))}return[n.charCodeAt(0),n.charCodeAt(1),n.charCodeAt(2),n.charCodeAt(3),n.charCodeAt(4),n.charCodeAt(5),n.charCodeAt(6),n.charCodeAt(7)]}function bu(e,t){var n=0;e:for(;n=2&&0===n[3])return Fa.to_workbook(r,s);break;case 3:case 131:case 139:case 140:return Na.to_workbook(r,s);case 123:if(92===n[1]&&114===n[2]&&116===n[3])return is.to_workbook(r,s);break;case 10:case 13:case 32:return function(e,t){var n="",r=yu(e,t);switch(t.type){case"base64":n=g.decode(e);break;case"binary":n=e;break;case"buffer":n=e.toString("binary");break;case"array":n=ee(e);break;default:throw new Error("Unrecognized type "+t.type)}return 239==r[0]&&187==r[1]&&191==r[2]&&(n=Be(n)),bu(n,t)}(r,s)}return Na.versions.indexOf(n[0])>-1&&n[2]<=12&&n[3]<=31?Na.to_workbook(r,s):vu(e,r,s,a)}function _u(e,t){var n=t||{};return n.type="file",wu(e,n)}function xu(e,t){switch(t.type){case"base64":case"binary":break;case"buffer":case"array":t.type="";break;case"file":return L(t.file,M.write(e,{type:y?"buffer":""}));case"string":throw new Error("'string' output type invalid for '"+t.bookType+"' files");default:throw new Error("Unrecognized type "+t.type)}return M.write(e,t)}function ku(e,t,n){n||(n="");var r=n+e;switch(t.type){case"base64":return g.encode(Me(r));case"binary":return Me(r);case"string":return e;case"file":return L(t.file,r,"utf8");case"buffer":return y?b(r,"utf8"):ku(r,{type:"binary"}).split("").map((function(e){return e.charCodeAt(0)}))}throw new Error("Unrecognized type "+t.type)}function Eu(e,t){switch(t.type){case"string":case"base64":case"binary":for(var n="",r=0;r22)throw new Error("Bad Code Name: Worksheet"+i)}}));for(var s=0;s-1||null!=s[i][1]&&o.push(s[i]);a.length&&M.utils.cfb_add(t,"/SummaryInformation",Dr(a,Il,Bn,Tn)),(r.length||o.length)&&M.utils.cfb_add(t,"/DocumentSummaryInformation",Dr(r,Al,On,Dn,o.length?o:null,"05d5cdd59c2e1b10939708002b2cf9ae"))}(e,r),8==n.biff&&e.vbaraw&&function(e,t){t.FullPaths.forEach((function(n,r){if(0!=r){var a=n.replace(/[^\/]*[\/]/,"/_VBA_PROJECT_CUR/");"/"!==a.slice(-1)&&M.utils.cfb_add(e,a,t.FileIndex[r].content)}}))}(r,M.read(e.vbaraw,{type:"string"==typeof e.vbaraw?"binary":"buffer"})),r}(e,n),n)}(e,n);case"xlsx":case"xlsm":case"xlam":case"xlsb":case"ods":return function(e,t){var n=t||{},r=gu(e,n),a={};if(n.compression&&(a.compression="DEFLATE"),n.password)a.type=y?"nodebuffer":"string";else switch(n.type){case"base64":a.type="base64";break;case"binary":a.type="string";break;case"string":throw new Error("'string' output type invalid for '"+n.bookType+"' files");case"buffer":case"file":a.type=y?"nodebuffer":"string";break;default:throw new Error("Unrecognized type "+n.type)}var s=r.FullPaths?M.write(r,{fileType:"zip",type:{nodebuffer:"buffer",string:"binary"}[a.type]||a.type}):r.generate(a);return n.password&&"undefined"!=typeof encrypt_agile?xu(encrypt_agile(s,n.password),n):"file"===n.type?L(n.file,s):"string"==n.type?Be(s):s}(e,n);default:throw new Error("Unrecognized bookType |"+n.bookType+"|")}}function Su(e){if(!e.bookType){var t=e.file.slice(e.file.lastIndexOf(".")).toLowerCase();t.match(/^\.[a-z]+$/)&&(e.bookType=t.slice(1)),e.bookType={xls:"biff8",htm:"html",slk:"sylk",socialcalc:"eth",Sh33tJS:"WTF"}[e.bookType]||e.bookType}}function Nu(e,t,n){var r=n||{};return r.type="file",r.file=t,Su(r),Cu(e,r)}function Iu(e,t,n,r,a,s,i,o){var l=Gt(n),u=o.defval,c=o.raw||!Object.prototype.hasOwnProperty.call(o,"raw"),h=!0,f=1===a?[]:{};if(1!==a)if(Object.defineProperty)try{Object.defineProperty(f,"__rowNum__",{value:n,enumerable:!1})}catch(e){f.__rowNum__=n}else f.__rowNum__=n;if(!i||e[n])for(var d=t.s.c;d<=t.e.c;++d){var p=i?e[n][d]:e[r[d]+l];if(void 0!==p&&void 0!==p.t){var m=p.v;switch(p.t){case"z":if(null==m)break;continue;case"e":m=void 0;break;case"s":case"d":case"b":case"n":break;default:throw new Error("unrecognized type "+p.t)}if(null!=s[d]){if(null==m)if(void 0!==u)f[s[d]]=u;else{if(!c||null!==m)continue;f[s[d]]=null}else f[s[d]]=c||o.rawNumbers&&"n"==p.t?m:en(p,m,o);null!=m&&(h=!1)}}else{if(void 0===u)continue;null!=s[d]&&(f[s[d]]=u)}}return{row:f,isempty:h}}function Au(e,t){if(null==e||null==e["!ref"])return[];var n={t:"n",v:0},r=0,a=1,s=[],i=0,o="",l={s:{r:0,c:0},e:{r:0,c:0}},u=t||{},c=null!=u.range?u.range:e["!ref"];switch(1===u.header?r=1:"A"===u.header?r=2:Array.isArray(u.header)?r=3:null==u.header&&(r=0),typeof c){case"string":l=Qt(c);break;case"number":(l=Qt(e["!ref"])).s.r=c;break;default:l=c}r>0&&(a=0);var h=Gt(l.s.r),f=[],d=[],p=0,m=0,g=Array.isArray(e),y=l.s.r,b=0,v=0;for(g&&!e[y]&&(e[y]=[]),b=l.s.c;b<=l.e.c;++b)switch(f[b]=Kt(b),n=g?e[y][b]:e[f[b]+h],r){case 1:s[b]=b-l.s.c;break;case 2:s[b]=f[b];break;case 3:s[b]=u.header[b-l.s.c];break;default:for(null==n&&(n={w:"__EMPTY",t:"s"}),o=i=en(n,null,u),m=0,v=0;v=0&&(c='"'+c.replace(Du,'""')+'"'));u.push(c)}return!1===o.blankrows&&l?null:u.join(i)}function Fu(e,t){var n=[],r=null==t?{}:t;if(null==e||null==e["!ref"])return"";var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=Kt(p));for(var m=a.s.r;m<=a.e.r;++m)(d[m]||{}).hidden||null!=(c=Tu(e,a,m,h,i,l,s,r))&&(r.strip&&(c=c.replace(u,"")),n.push(c+o));return delete r.dense,n.join("")}function Ru(e,t){t||(t={}),t.FS="\t",t.RS="\n";var n=Fu(e,t);if("undefined"==typeof cptable||"string"==t.type)return n;var r=cptable.utils.encode(1200,n,"str");return String.fromCharCode(255)+String.fromCharCode(254)+r}function Ou(e){var t,n="",r="";if(null==e||null==e["!ref"])return[];var a,s=Qt(e["!ref"]),i="",o=[],l=[],u=Array.isArray(e);for(a=s.s.c;a<=s.e.c;++a)o[a]=Kt(a);for(var c=s.s.r;c<=s.e.r;++c)for(i=Gt(c),a=s.s.c;a<=s.e.c;++a)if(n=o[a]+i,r="",void 0!==(t=u?(e[c]||[])[a]:e[n])){if(null!=t.F){if(n=t.F,!t.f)continue;r=t.f,-1==n.indexOf(":")&&(n=n+":"+n)}if(null!=t.f)r=t.f;else{if("z"==t.t)continue;if("n"==t.t&&null!=t.v)r=""+t.v;else if("b"==t.t)r=t.v?"TRUE":"FALSE";else if(void 0!==t.w)r="'"+t.w;else{if(void 0===t.v)continue;r="s"==t.t?"'"+t.v:""+t.v}}l[l.length]=n+"="+r}return l}function Bu(e,t,n){var r,a=n||{},s=+!a.skipHeader,i=e||{},o=0,l=0;if(i&&null!=a.origin)if("number"==typeof a.origin)o=a.origin;else{var u="string"==typeof a.origin?qt(a.origin):a.origin;o=u.r,l=u.c}var c={s:{c:0,r:0},e:{c:l,r:o+t.length-1+s}};if(i["!ref"]){var h=Qt(i["!ref"]);c.e.c=Math.max(c.e.c,h.e.c),c.e.r=Math.max(c.e.r,h.e.r),-1==o&&(o=h.e.r+1,c.e.r=o+t.length-1+s)}else-1==o&&(o=0,c.e.r=t.length-1+s);var f=a.header||[],d=0;t.forEach((function(e,t){z(e).forEach((function(n){-1==(d=f.indexOf(n))&&(f[d=f.length]=n);var u=e[n],c="z",h="",p=Yt({c:l+d,r:o+t+s});r=$u.sheet_get_cell(i,p),!u||"object"!=typeof u||u instanceof Date?("number"==typeof u?c="n":"boolean"==typeof u?c="b":"string"==typeof u?c="s":u instanceof Date&&(c="d",a.cellDates||(c="n",u=H(u)),h=a.dateNF||A._table[14]),r?(r.t=c,r.v=u,delete r.w,delete r.R,h&&(r.z=h)):i[p]=r={t:c,v:u},h&&(r.z=h)):i[p]=u}))})),c.e.c=Math.max(c.e.c,l+f.length-1);var p=Gt(o);if(s)for(d=0;d=65535)throw new Error("Too many worksheets");if(Jo(n),e.SheetNames.indexOf(n)>=0)throw new Error("Worksheet with name |"+n+"| already exists!");e.SheetNames.push(n),e.Sheets[n]=t},e.book_set_sheet_visibility=function(e,n,r){t(e,"Workbook",{}),t(e.Workbook,"Sheets",[]);var a=function(e,t){if("number"==typeof t){if(t>=0&&e.SheetNames.length>t)return t;throw new Error("Cannot find sheet # "+t)}if("string"==typeof t){var n=e.SheetNames.indexOf(t);if(n>-1)return n;throw new Error("Cannot find sheet name |"+t+"|")}throw new Error("Cannot find sheet |"+t+"|")}(e,n);switch(t(e.Workbook.Sheets,a,{}),r){case 0:case 1:case 2:break;default:throw new Error("Bad sheet visibility setting "+r)}e.Workbook.Sheets[a].Hidden=r},[["SHEET_VISIBLE",0],["SHEET_HIDDEN",1],["SHEET_VERY_HIDDEN",2]].forEach((function(t){e.consts[t[0]]=t[1]})),e.cell_set_number_format=function(e,t){return e.z=t,e},e.cell_set_hyperlink=function(e,t,n){return t?(e.l={Target:t},n&&(e.l.Tooltip=n)):delete e.l,e},e.cell_set_internal_link=function(t,n,r){return e.cell_set_hyperlink(t,"#"+n,r)},e.cell_add_comment=function(e,t,n){e.c||(e.c=[]),e.c.push({t,a:n||"SheetJS"})},e.sheet_set_array_formula=function(e,t,r){for(var a="string"!=typeof t?t:Qt(t),s="string"==typeof t?t:Zt(t),i=a.s.r;i<=a.e.r;++i)for(var o=a.s.c;o<=a.e.c;++o){var l=n(e,i,o);l.t="n",l.F=s,delete l.v,i==a.s.r&&o==a.s.c&&(l.f=r)}return e}}($u),y&&(Mu=n(791).Readable,t.stream={to_json:function(e,t){var n=Mu({objectMode:!0});if(null==e||null==e["!ref"])return n.push(null),n;var r={t:"n",v:0},a=0,s=1,i=[],o=0,l="",u={s:{r:0,c:0},e:{r:0,c:0}},c=t||{},h=null!=c.range?c.range:e["!ref"];switch(1===c.header?a=1:"A"===c.header?a=2:Array.isArray(c.header)&&(a=3),typeof h){case"string":u=Qt(h);break;case"number":(u=Qt(e["!ref"])).s.r=h;break;default:u=h}a>0&&(s=0);var f=Gt(u.s.r),d=[],p=0,m=Array.isArray(e),g=u.s.r,y=0,b=0;for(m&&!e[g]&&(e[g]=[]),y=u.s.c;y<=u.e.c;++y)switch(d[y]=Kt(y),r=m?e[g][y]:e[d[y]+f],a){case 1:i[y]=y-u.s.c;break;case 2:i[y]=d[y];break;case 3:i[y]=c.header[y-u.s.c];break;default:for(null==r&&(r={w:"__EMPTY",t:"s"}),l=o=en(r,null,c),p=0,b=0;bu.e.r)return n.push(null);for(;g<=u.e.r;){var t=Iu(e,u,g,d,a,i,m,c);if(++g,!1===t.isempty||(1===a?!1!==c.blankrows:c.blankrows)){n.push(t.row);break}}},n},to_html:function(e,t){var n=Mu(),r=t||{},a=null!=r.header?r.header:Ul.BEGIN,s=null!=r.footer?r.footer:Ul.END;n.push(a);var i=Jt(e["!ref"]);r.dense=Array.isArray(e),n.push(Ul._preamble(e,i,r));var o=i.s.r,l=!1;return n._read=function(){if(o>i.e.r)return l||(l=!0,n.push(""+s)),n.push(null);for(;o<=i.e.r;){n.push(Ul._row(e,i,o,r)),++o;break}},n},to_csv:function(e,t){var n=Mu(),r=null==t?{}:t;if(null==e||null==e["!ref"])return n.push(null),n;var a=Qt(e["!ref"]),s=void 0!==r.FS?r.FS:",",i=s.charCodeAt(0),o=void 0!==r.RS?r.RS:"\n",l=o.charCodeAt(0),u=new RegExp(("|"==s?"\\|":s)+"+$"),c="",h=[];r.dense=Array.isArray(e);for(var f=r.skipHidden&&e["!cols"]||[],d=r.skipHidden&&e["!rows"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(h[p]=Kt(p));var m=a.s.r,g=!1;return n._read=function(){if(!g)return g=!0,n.push("\ufeff");for(;m<=a.e.r;)if(++m,!(d[m-1]||{}).hidden&&null!=(c=Tu(e,a,m-1,h,i,l,s,r))){r.strip&&(c=c.replace(u,"")),n.push(c+o);break}return m>a.e.r?n.push(null):void 0},n}}),t.parse_xlscfb=Dl,t.parse_zip=pu,t.read=wu,t.readFile=_u,t.readFileSync=_u,t.write=Cu,t.writeFile=Nu,t.writeFileSync=Nu,t.writeFileAsync=function(e,t,n,r){var a=n||{};a.type="file",a.file=e,Su(a),a.type="buffer";var s=r;return s instanceof Function||(s=n),B.writeFile(e,Cu(t,a),s)},t.utils=$u,t.SSF=A,void 0!==M&&(t.CFB=M)}(t)},3906:()=>{},2993:()=>{},8352:()=>{},791:()=>{},4589:()=>{},1758:()=>{}},__webpack_module_cache__={};function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),t.loaded=!0,t.exports}return __webpack_require__.amdD=function(){throw new Error("define cannot be used indirect")},__webpack_require__.amdO={},__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),__webpack_require__(2476)})(); //# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/danfojs-browser/lib/bundle.js.LICENSE.txt b/danfojs-browser/lib/bundle.js.LICENSE.txt index a54df15a..4edd5d32 100644 --- a/danfojs-browser/lib/bundle.js.LICENSE.txt +++ b/danfojs-browser/lib/bundle.js.LICENSE.txt @@ -146,6 +146,23 @@ * ============================================================================= */ +/** + * @license + * Copyright 2021 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ + /** * @license Complex.js v2.0.11 11/02/2016 * diff --git a/danfojs-browser/lib/bundle.js.map b/danfojs-browser/lib/bundle.js.map index 25f9af8c..863e20f6 100644 --- a/danfojs-browser/lib/bundle.js.map +++ b/danfojs-browser/lib/bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://dfd/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://dfd/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://dfd/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://dfd/./node_modules/@babel/runtime/helpers/createClass.js","webpack://dfd/./node_modules/@babel/runtime/helpers/get.js","webpack://dfd/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/inherits.js","webpack://dfd/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://dfd/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://dfd/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://dfd/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://dfd/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/superPropBase.js","webpack://dfd/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/typeof.js","webpack://dfd/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/regenerator/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util_base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/environment.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/global_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_names.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/profiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_format.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/engine.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/device_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/flags.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/operation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/model_management.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/print.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/progress.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/http.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/test_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/globals.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/eye.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moments.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/variable.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/compare.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/binary_ops.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ops.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/train.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/browser_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2D_deprecated.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub_strict.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/errors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/state.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/variables.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/logs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/losses.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/container.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/optimizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/models.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/core.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasource.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/source_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/readers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js","webpack://dfd/./node_modules/ajv/lib/compile/equal.js","webpack://dfd/./node_modules/astral-regex/index.js","webpack://dfd/./src/config/config.js","webpack://dfd/./src/core/concat.js","webpack://dfd/./src/core/frame.js","webpack://dfd/./src/core/generic.js","webpack://dfd/./src/core/groupby.js","webpack://dfd/./src/core/indexing.js","webpack://dfd/./src/core/series.js","webpack://dfd/./src/core/strings.js","webpack://dfd/./src/core/timeseries.js","webpack://dfd/./src/core/utils.js","webpack://dfd/./src/io/reader.js","webpack://dfd/./src/core/merge.js","webpack://dfd/./src/preprocessing/encodings.js","webpack://dfd/./src/preprocessing/scalers.js","webpack://dfd/./src/core/date_range.js","webpack://dfd/./src/core/get_dummies.js","webpack://dfd/./src/index.js","webpack://dfd/./src/plotting/plot.js","webpack://dfd/./node_modules/complex.js/complex.js","webpack://dfd/./node_modules/decimal.js/decimal.js","webpack://dfd/./node_modules/fast-deep-equal/index.js","webpack://dfd/./node_modules/fraction.js/fraction.js","webpack://dfd/./node_modules/is-fullwidth-code-point/index.js","webpack://dfd/./node_modules/javascript-natural-sort/naturalSort.js","webpack://dfd/./node_modules/lodash/_DataView.js","webpack://dfd/./node_modules/lodash/_Hash.js","webpack://dfd/./node_modules/lodash/_ListCache.js","webpack://dfd/./node_modules/lodash/_Map.js","webpack://dfd/./node_modules/lodash/_MapCache.js","webpack://dfd/./node_modules/lodash/_Promise.js","webpack://dfd/./node_modules/lodash/_Set.js","webpack://dfd/./node_modules/lodash/_SetCache.js","webpack://dfd/./node_modules/lodash/_Stack.js","webpack://dfd/./node_modules/lodash/_Symbol.js","webpack://dfd/./node_modules/lodash/_Uint8Array.js","webpack://dfd/./node_modules/lodash/_WeakMap.js","webpack://dfd/./node_modules/lodash/_arrayEach.js","webpack://dfd/./node_modules/lodash/_arrayFilter.js","webpack://dfd/./node_modules/lodash/_arrayLikeKeys.js","webpack://dfd/./node_modules/lodash/_arrayMap.js","webpack://dfd/./node_modules/lodash/_arrayPush.js","webpack://dfd/./node_modules/lodash/_arraySome.js","webpack://dfd/./node_modules/lodash/_asciiSize.js","webpack://dfd/./node_modules/lodash/_asciiToArray.js","webpack://dfd/./node_modules/lodash/_assignValue.js","webpack://dfd/./node_modules/lodash/_assocIndexOf.js","webpack://dfd/./node_modules/lodash/_baseAssign.js","webpack://dfd/./node_modules/lodash/_baseAssignIn.js","webpack://dfd/./node_modules/lodash/_baseAssignValue.js","webpack://dfd/./node_modules/lodash/_baseClone.js","webpack://dfd/./node_modules/lodash/_baseCreate.js","webpack://dfd/./node_modules/lodash/_baseExtremum.js","webpack://dfd/./node_modules/lodash/_baseFindIndex.js","webpack://dfd/./node_modules/lodash/_baseFlatten.js","webpack://dfd/./node_modules/lodash/_baseFor.js","webpack://dfd/./node_modules/lodash/_baseForOwn.js","webpack://dfd/./node_modules/lodash/_baseGet.js","webpack://dfd/./node_modules/lodash/_baseGetAllKeys.js","webpack://dfd/./node_modules/lodash/_baseGetTag.js","webpack://dfd/./node_modules/lodash/_baseGt.js","webpack://dfd/./node_modules/lodash/_baseHasIn.js","webpack://dfd/./node_modules/lodash/_baseIndexOf.js","webpack://dfd/./node_modules/lodash/_baseIsArguments.js","webpack://dfd/./node_modules/lodash/_baseIsEqual.js","webpack://dfd/./node_modules/lodash/_baseIsEqualDeep.js","webpack://dfd/./node_modules/lodash/_baseIsMap.js","webpack://dfd/./node_modules/lodash/_baseIsMatch.js","webpack://dfd/./node_modules/lodash/_baseIsNaN.js","webpack://dfd/./node_modules/lodash/_baseIsNative.js","webpack://dfd/./node_modules/lodash/_baseIsRegExp.js","webpack://dfd/./node_modules/lodash/_baseIsSet.js","webpack://dfd/./node_modules/lodash/_baseIsTypedArray.js","webpack://dfd/./node_modules/lodash/_baseIteratee.js","webpack://dfd/./node_modules/lodash/_baseKeys.js","webpack://dfd/./node_modules/lodash/_baseKeysIn.js","webpack://dfd/./node_modules/lodash/_baseMatches.js","webpack://dfd/./node_modules/lodash/_baseMatchesProperty.js","webpack://dfd/./node_modules/lodash/_baseProperty.js","webpack://dfd/./node_modules/lodash/_basePropertyDeep.js","webpack://dfd/./node_modules/lodash/_baseSlice.js","webpack://dfd/./node_modules/lodash/_baseTimes.js","webpack://dfd/./node_modules/lodash/_baseToString.js","webpack://dfd/./node_modules/lodash/_baseUnary.js","webpack://dfd/./node_modules/lodash/_baseValues.js","webpack://dfd/./node_modules/lodash/_cacheHas.js","webpack://dfd/./node_modules/lodash/_castFunction.js","webpack://dfd/./node_modules/lodash/_castPath.js","webpack://dfd/./node_modules/lodash/_castSlice.js","webpack://dfd/./node_modules/lodash/_charsEndIndex.js","webpack://dfd/./node_modules/lodash/_cloneArrayBuffer.js","webpack://dfd/./node_modules/lodash/_cloneBuffer.js","webpack://dfd/./node_modules/lodash/_cloneDataView.js","webpack://dfd/./node_modules/lodash/_cloneRegExp.js","webpack://dfd/./node_modules/lodash/_cloneSymbol.js","webpack://dfd/./node_modules/lodash/_cloneTypedArray.js","webpack://dfd/./node_modules/lodash/_copyArray.js","webpack://dfd/./node_modules/lodash/_copyObject.js","webpack://dfd/./node_modules/lodash/_copySymbols.js","webpack://dfd/./node_modules/lodash/_copySymbolsIn.js","webpack://dfd/./node_modules/lodash/_coreJsData.js","webpack://dfd/./node_modules/lodash/_createBaseFor.js","webpack://dfd/./node_modules/lodash/_defineProperty.js","webpack://dfd/./node_modules/lodash/_equalArrays.js","webpack://dfd/./node_modules/lodash/_equalByTag.js","webpack://dfd/./node_modules/lodash/_equalObjects.js","webpack://dfd/./node_modules/lodash/_freeGlobal.js","webpack://dfd/./node_modules/lodash/_getAllKeys.js","webpack://dfd/./node_modules/lodash/_getAllKeysIn.js","webpack://dfd/./node_modules/lodash/_getMapData.js","webpack://dfd/./node_modules/lodash/_getMatchData.js","webpack://dfd/./node_modules/lodash/_getNative.js","webpack://dfd/./node_modules/lodash/_getPrototype.js","webpack://dfd/./node_modules/lodash/_getRawTag.js","webpack://dfd/./node_modules/lodash/_getSymbols.js","webpack://dfd/./node_modules/lodash/_getSymbolsIn.js","webpack://dfd/./node_modules/lodash/_getTag.js","webpack://dfd/./node_modules/lodash/_getValue.js","webpack://dfd/./node_modules/lodash/_hasPath.js","webpack://dfd/./node_modules/lodash/_hasUnicode.js","webpack://dfd/./node_modules/lodash/_hashClear.js","webpack://dfd/./node_modules/lodash/_hashDelete.js","webpack://dfd/./node_modules/lodash/_hashGet.js","webpack://dfd/./node_modules/lodash/_hashHas.js","webpack://dfd/./node_modules/lodash/_hashSet.js","webpack://dfd/./node_modules/lodash/_initCloneArray.js","webpack://dfd/./node_modules/lodash/_initCloneByTag.js","webpack://dfd/./node_modules/lodash/_initCloneObject.js","webpack://dfd/./node_modules/lodash/_isFlattenable.js","webpack://dfd/./node_modules/lodash/_isIndex.js","webpack://dfd/./node_modules/lodash/_isKey.js","webpack://dfd/./node_modules/lodash/_isKeyable.js","webpack://dfd/./node_modules/lodash/_isMasked.js","webpack://dfd/./node_modules/lodash/_isPrototype.js","webpack://dfd/./node_modules/lodash/_isStrictComparable.js","webpack://dfd/./node_modules/lodash/_listCacheClear.js","webpack://dfd/./node_modules/lodash/_listCacheDelete.js","webpack://dfd/./node_modules/lodash/_listCacheGet.js","webpack://dfd/./node_modules/lodash/_listCacheHas.js","webpack://dfd/./node_modules/lodash/_listCacheSet.js","webpack://dfd/./node_modules/lodash/_mapCacheClear.js","webpack://dfd/./node_modules/lodash/_mapCacheDelete.js","webpack://dfd/./node_modules/lodash/_mapCacheGet.js","webpack://dfd/./node_modules/lodash/_mapCacheHas.js","webpack://dfd/./node_modules/lodash/_mapCacheSet.js","webpack://dfd/./node_modules/lodash/_mapToArray.js","webpack://dfd/./node_modules/lodash/_matchesStrictComparable.js","webpack://dfd/./node_modules/lodash/_memoizeCapped.js","webpack://dfd/./node_modules/lodash/_nativeCreate.js","webpack://dfd/./node_modules/lodash/_nativeKeys.js","webpack://dfd/./node_modules/lodash/_nativeKeysIn.js","webpack://dfd/./node_modules/lodash/_nodeUtil.js","webpack://dfd/./node_modules/lodash/_objectToString.js","webpack://dfd/./node_modules/lodash/_overArg.js","webpack://dfd/./node_modules/lodash/_root.js","webpack://dfd/./node_modules/lodash/_setCacheAdd.js","webpack://dfd/./node_modules/lodash/_setCacheHas.js","webpack://dfd/./node_modules/lodash/_setToArray.js","webpack://dfd/./node_modules/lodash/_stackClear.js","webpack://dfd/./node_modules/lodash/_stackDelete.js","webpack://dfd/./node_modules/lodash/_stackGet.js","webpack://dfd/./node_modules/lodash/_stackHas.js","webpack://dfd/./node_modules/lodash/_stackSet.js","webpack://dfd/./node_modules/lodash/_strictIndexOf.js","webpack://dfd/./node_modules/lodash/_stringSize.js","webpack://dfd/./node_modules/lodash/_stringToArray.js","webpack://dfd/./node_modules/lodash/_stringToPath.js","webpack://dfd/./node_modules/lodash/_toKey.js","webpack://dfd/./node_modules/lodash/_toSource.js","webpack://dfd/./node_modules/lodash/_unicodeSize.js","webpack://dfd/./node_modules/lodash/_unicodeToArray.js","webpack://dfd/./node_modules/lodash/cloneDeep.js","webpack://dfd/./node_modules/lodash/eq.js","webpack://dfd/./node_modules/lodash/flatten.js","webpack://dfd/./node_modules/lodash/get.js","webpack://dfd/./node_modules/lodash/hasIn.js","webpack://dfd/./node_modules/lodash/identity.js","webpack://dfd/./node_modules/lodash/isArguments.js","webpack://dfd/./node_modules/lodash/isArray.js","webpack://dfd/./node_modules/lodash/isArrayLike.js","webpack://dfd/./node_modules/lodash/isBoolean.js","webpack://dfd/./node_modules/lodash/isBuffer.js","webpack://dfd/./node_modules/lodash/isFunction.js","webpack://dfd/./node_modules/lodash/isLength.js","webpack://dfd/./node_modules/lodash/isMap.js","webpack://dfd/./node_modules/lodash/isNumber.js","webpack://dfd/./node_modules/lodash/isObject.js","webpack://dfd/./node_modules/lodash/isObjectLike.js","webpack://dfd/./node_modules/lodash/isRegExp.js","webpack://dfd/./node_modules/lodash/isSet.js","webpack://dfd/./node_modules/lodash/isString.js","webpack://dfd/./node_modules/lodash/isSymbol.js","webpack://dfd/./node_modules/lodash/isTypedArray.js","webpack://dfd/./node_modules/lodash/isUndefined.js","webpack://dfd/./node_modules/lodash/keys.js","webpack://dfd/./node_modules/lodash/keysIn.js","webpack://dfd/./node_modules/lodash/mapValues.js","webpack://dfd/./node_modules/lodash/max.js","webpack://dfd/./node_modules/lodash/memoize.js","webpack://dfd/./node_modules/lodash/property.js","webpack://dfd/./node_modules/lodash/stubArray.js","webpack://dfd/./node_modules/lodash/stubFalse.js","webpack://dfd/./node_modules/lodash/times.js","webpack://dfd/./node_modules/lodash/toFinite.js","webpack://dfd/./node_modules/lodash/toInteger.js","webpack://dfd/./node_modules/lodash/toNumber.js","webpack://dfd/./node_modules/lodash/toString.js","webpack://dfd/./node_modules/lodash/trimEnd.js","webpack://dfd/./node_modules/lodash/truncate.js","webpack://dfd/./node_modules/lodash/values.js","webpack://dfd/./node_modules/mathjs/es/core/config.js","webpack://dfd/./node_modules/mathjs/es/entry/configReadonly.js","webpack://dfd/./node_modules/mathjs/es/core/function/config.js","webpack://dfd/./node_modules/mathjs/es/utils/object.js","webpack://dfd/./node_modules/mathjs/es/utils/factory.js","webpack://dfd/./node_modules/mathjs/es/type/resultset/ResultSet.js","webpack://dfd/./node_modules/mathjs/es/type/complex/Complex.js","webpack://dfd/./node_modules/mathjs/es/utils/function.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/constants.js","webpack://dfd/./node_modules/mathjs/es/plain/number/constants.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/BigNumber.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Matrix.js","webpack://dfd/./node_modules/mathjs/es/type/unit/physicalConstants.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/Fraction.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/formatter.js","webpack://dfd/./node_modules/mathjs/es/utils/string.js","webpack://dfd/./node_modules/mathjs/es/error/DimensionError.js","webpack://dfd/./node_modules/mathjs/es/error/IndexError.js","webpack://dfd/./node_modules/mathjs/es/utils/array.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/DenseMatrix.js","webpack://dfd/./node_modules/mathjs/es/core/function/typed.js","webpack://dfd/./node_modules/mathjs/es/utils/collection.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isInteger.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNumeric.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNaN.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/nearlyEqual.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalScalar.js","webpack://dfd/./node_modules/mathjs/es/utils/complex.js","webpack://dfd/./node_modules/mathjs/es/type/number.js","webpack://dfd/./node_modules/mathjs/es/plain/number/arithmetic.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryPlus.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/apply.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/cube.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiplyScalar.js","webpack://dfd/./node_modules/mathjs/es/function/string/baseUtils.js","webpack://dfd/./node_modules/mathjs/es/function/special/erf.js","webpack://dfd/./node_modules/mathjs/es/function/string/oct.js","webpack://dfd/./node_modules/mathjs/es/function/probability/randomInt.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/function/fraction.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryMinus.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/addScalar.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/sqrt.js","webpack://dfd/./node_modules/mathjs/es/function/complex/conj.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/mode.js","webpack://dfd/./node_modules/mathjs/es/function/string/bin.js","webpack://dfd/./node_modules/mathjs/es/function/probability/random.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/SparseMatrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/function/matrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm01.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm04.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm10.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm13.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm14.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm03.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm05.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm11.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm12.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm07.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/identity.js","webpack://dfd/./node_modules/mathjs/es/utils/noop.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/size.js","webpack://dfd/./node_modules/mathjs/es/function/string/hex.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/round.js","webpack://dfd/./node_modules/mathjs/es/function/relational/compare.js","webpack://dfd/./node_modules/mathjs/es/function/relational/smaller.js","webpack://dfd/./node_modules/mathjs/es/function/relational/larger.js","webpack://dfd/./node_modules/mathjs/es/function/relational/unequal.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/FibonacciHeap.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/add.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/dot.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/abs.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiply.js","webpack://dfd/./node_modules/mathjs/es/error/ArgumentsError.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalText.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/partitionSelect.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/function/bignumber.js","webpack://dfd/./node_modules/mathjs/es/function/utils/numeric.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/utils/improveErrorMessage.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/ceil.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/subtract.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/cross.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equal.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divideScalar.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Spa.js","webpack://dfd/./node_modules/mathjs/es/function/algebra/decomposition/lup.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/det.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/inv.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divide.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/variance.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/std.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/median.js","webpack://dfd/./node_modules/mathjs/es/entry/pureFunctionsAny.generated.js","webpack://dfd/./node_modules/mathjs/es/plain/number/probability.js","webpack://dfd/./node_modules/mathjs/es/plain/number/trigonometry.js","webpack://dfd/./node_modules/mathjs/es/plain/number/utils.js","webpack://dfd/./node_modules/mathjs/es/utils/is.js","webpack://dfd/./node_modules/mathjs/es/utils/number.js","webpack://dfd/./node_modules/mathjs/es/utils/product.js","webpack://dfd/./node_modules/regenerator-runtime/runtime.js","webpack://dfd/./node_modules/seed-random/index.js","webpack://dfd/./node_modules/seedrandom/index.js","webpack://dfd/./node_modules/seedrandom/lib/alea.js","webpack://dfd/./node_modules/seedrandom/lib/tychei.js","webpack://dfd/./node_modules/seedrandom/lib/xor128.js","webpack://dfd/./node_modules/seedrandom/lib/xor4096.js","webpack://dfd/./node_modules/seedrandom/lib/xorshift7.js","webpack://dfd/./node_modules/seedrandom/lib/xorwow.js","webpack://dfd/./node_modules/seedrandom/seedrandom.js","webpack://dfd/./node_modules/slice-ansi/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/ansi-styles/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/conversions.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/route.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-name/index.js","webpack://dfd/./node_modules/table/dist/alignString.js","webpack://dfd/./node_modules/table/dist/alignTableData.js","webpack://dfd/./node_modules/table/dist/calculateCellHeight.js","webpack://dfd/./node_modules/table/dist/calculateCellWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateMaximumColumnWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/createStream.js","webpack://dfd/./node_modules/table/dist/drawBorder.js","webpack://dfd/./node_modules/table/dist/drawRow.js","webpack://dfd/./node_modules/table/dist/drawTable.js","webpack://dfd/./node_modules/table/dist/getBorderCharacters.js","webpack://dfd/./node_modules/table/dist/index.js","webpack://dfd/./node_modules/table/dist/makeConfig.js","webpack://dfd/./node_modules/table/dist/makeStreamConfig.js","webpack://dfd/./node_modules/table/dist/mapDataUsingRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/padTableData.js","webpack://dfd/./node_modules/table/dist/stringifyTableData.js","webpack://dfd/./node_modules/table/dist/table.js","webpack://dfd/./node_modules/table/dist/truncateTableData.js","webpack://dfd/./node_modules/table/dist/validateConfig.js","webpack://dfd/./node_modules/table/dist/validateTableData.js","webpack://dfd/./node_modules/table/dist/wrapCell.js","webpack://dfd/./node_modules/table/dist/wrapString.js","webpack://dfd/./node_modules/table/dist/wrapWord.js","webpack://dfd/./node_modules/table/node_modules/ansi-regex/index.js","webpack://dfd/./node_modules/table/node_modules/emoji-regex/index.js","webpack://dfd/./node_modules/table/node_modules/string-width/index.js","webpack://dfd/./node_modules/table/node_modules/strip-ansi/index.js","webpack://dfd/./node_modules/typed-function/typed-function.js","webpack://dfd/./node_modules/xlsx/dist/cpexcel.js","webpack://dfd/./node_modules/xlsx/jszip.js","webpack://dfd/./node_modules/xlsx/xlsx.js","webpack://dfd/webpack/bootstrap","webpack://dfd/webpack/startup","webpack://dfd/webpack/runtime/amd define","webpack://dfd/webpack/runtime/amd options","webpack://dfd/webpack/runtime/compat get default export","webpack://dfd/webpack/runtime/define property getters","webpack://dfd/webpack/runtime/global","webpack://dfd/webpack/runtime/hasOwnProperty shorthand","webpack://dfd/webpack/runtime/make namespace object","webpack://dfd/webpack/runtime/node module decorator"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","prototype","superPropBase","_get","property","receiver","Reflect","get","base","desc","getOwnPropertyDescriptor","call","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","object","hasOwnProperty","arrayWithoutHoles","iterableToArray","nonIterableSpread","obj","minLen","n","toString","slice","name","test","DataStorage","backend","dataMover","data","WeakMap","dataIdsCount","dataId","has","moveData","set","delete","KernelBackend","f","notYetImplemented","values","shape","dtype","floatPrecision","a","b","transposeA","transposeB","bias","activation","preluActivationWeights","x","begin","size","end","strides","axis","tensors","axes","segmentIds","numSegments","condition","k","sorted","dim","dy","y","min","max","alpha","input","filter","convInfo","dY","reps","paddings","constantValue","perm","indices","batchDims","updates","blockShape","crops","newHeight","newWidth","alignCorners","halfPixelCenters","newHEight","mean","variance","offset","scale","varianceEpsilon","radius","beta","inputImage","outputImage","logits","normalized","numSamples","seed","depth","onValue","offValue","exclusive","reverse","boxes","scores","maxOutputSize","iouThreshold","scoreThreshold","real","imag","image","boxIndex","cropSize","method","extrapolationValue","blockSize","dataFormat","sizeSplits","sparseIndices","sparseValues","outputShape","defaultValue","start","stop","num","kernelName","Error","array","counter","temp","index","Math","random","clamp","nearestLargerEven","val","sum","randUniform","r","distSquared","result","diff","Number","assert","expr","msg","assertShapesMatch","shapeA","shapeB","errorMessagePrefix","arraysEqual","assertNonNull","flatten","skipTypedArray","isTypedArray","sizeFromShape","isScalarShape","n1","n2","isInt","tanh","Infinity","e2x","exp","sizeToSquarishShape","width","ceil","sqrt","createShuffledIndices","shuffledIndices","Uint32Array","rightPad","repeat","repeatedTry","checkFn","delayFn","maxCounter","tryCount","tryFn","nextBackoff","setTimeout","inferFromImplicitShape","shapeProd","implicitIdx","newShape","parseAxisParam","rank","map","s","concat","every","ax","squeezeShape","keptDims","isEmptyArray","sort","j","getTypedArrayFromDType","Float32Array","Int32Array","Uint8Array","getArrayFromDType","checkConversionForErrors","vals","isNaN","isFinite","isValidDtype","hasEncodingLoss","oldType","newType","bytesPerElement","bytesFromStringArray","bytes","forEach","isString","String","isBoolean","isNumber","inferDtype","isFunction","nearestDivisor","computeStrides","createNestedArray","ret","d","rest","reduce","acc","c","toNestedArray","makeOnesTypedArray","makeZerosTypedArray","makeZerosNestedTypedArray","prev","curr","assertNonNegativeIntegerDimensions","dimSize","isInteger","locToIndex","locs","indexToLoc","floor","isPromise","Environment","global","flags","flagRegistry","urlFlags","populateURLFlags","platformName","platform","console","warn","flagName","evaluationFn","setHook","flagValue","evaluateFlag","assign","location","search","urlParams","queryString","params","replace","t","decodeURIComponent","decodeParam","join","getQueryParams","split","keyValue","toLowerCase","parseValue","ENV","globalNameSpace","getGlobalNamespace","ns","window","g","process","getGlobal","init","globalMap","_tfGlobals","Map","getGlobalMap","singleton","Abs","Acos","Acosh","Add","AddN","All","Any","ArgMax","ArgMin","Asin","Asinh","Atan","Atanh","Atan2","AvgPool","AvgPoolGrad","AvgPool3D","AvgPool3DGrad","BatchMatMul","BatchToSpaceND","Bincount","BroadcastTo","Cast","Ceil","ClipByValue","Complex","ComplexAbs","Concat","Conv2D","Conv2DBackpropFilter","Conv2DBackpropInput","Conv3D","Conv3DBackpropFilterV2","Conv3DBackpropInputV2","Cos","Cosh","Cumsum","CropAndResize","DenseBincount","DepthToSpace","DepthwiseConv2dNative","DepthwiseConv2dNativeBackpropFilter","DepthwiseConv2dNativeBackpropInput","Diag","Dilation2D","Dilation2DBackpropInput","Dilation2DBackpropFilter","RealDiv","Elu","EluGrad","Erf","Equal","Exp","ExpandDims","Expm1","FFT","Fill","FlipLeftRight","Floor","FloorDiv","FusedBatchNorm","GatherV2","GatherNd","Greater","GreaterEqual","Identity","IFFT","Imag","IsFinite","IsInf","IsNan","LeakyRelu","Less","LessEqual","LinSpace","Log","Log1p","LogicalAnd","LogicalNot","LogicalOr","LogSoftmax","LRN","LRNGrad","Max","Maximum","MaxPool","MaxPoolGrad","MaxPool3D","MaxPool3DGrad","MaxPoolWithArgmax","Mean","Min","Minimum","MirrorPad","Mod","Multinomial","Multiply","Neg","NotEqual","NonMaxSuppressionV3","NonMaxSuppressionV4","NonMaxSuppressionV5","OnesLike","OneHot","Pack","PadV2","Pool","Pow","Prelu","Prod","Range","Real","Reciprocal","Relu","Reshape","ResizeNearestNeighbor","ResizeNearestNeighborGrad","ResizeBilinear","ResizeBilinearGrad","Relu6","Reverse","Round","Rsqrt","ScatterNd","Select","Selu","Slice","Sin","Sinh","Sign","Sigmoid","Softplus","Sqrt","Sum","SpaceToBatchND","SplitV","Softmax","SquaredDifference","Square","Sub","SparseToDense","StridedSlice","Tan","Tanh","Tile","TopK","Transpose","Unique","Unpack","UnsortedSegmentSum","ZerosLike","Step","FromPixels","RotateWithOffset","_FusedMatMul","FusedConv2D","FusedDepthwiseConv2D","kernelRegistry","gradRegistry","getKernel","backendName","makeKey","getGradient","getKernelsForBackend","it","entries","config","registerKernel","registerGradient","getBool","unregisterKernel","unregisterGradient","copyRegisteredKernels","registeredBackendName","newBackendName","kernelConfig","Profiler","backendTimer","logger","Logger","inputs","outputs","timer","time","output","tensorVals","checkComputationForErrors","timeMs","timing","kernelMs","extraInfo","getExtraProfileInfo","kernelProfile","all","valueContainer","logKernelProfile","paddedName","inputShapesDescription","inputShape","inputRank","log","tensorToString","verbose","padPerCol","numCols","fill","valuesOrTuples","createComplexTuples","row","valToString","computeMaxSizePerColumn","valsLines","subTensorToString","lines","l","pad","valStr","parseFloat","toFixed","boolNumToString","v","isLast","storagePerElement","firstValsSize","firstVals","lastVals","subshape","substrides","stride","sep","newLineSep","complexTuples","createScalarValue","encodeString","toTypedArray","noConversionNeeded","bool","round","now","path","requestInits","fetch","encoding","encode","decodeString","decode","TensorBuffer","loc","trackerFn","makeTensor","opHandler","deprecationWarningFn","Tensor","id","kept","isDisposedInternal","rankType","buffer","dataSync","throwIfDisposed","read","_a","readSync","isDisposed","disposeTensor","print","clone","cast","trainable","makeVariable","hasInstance","Variable","initialValue","tensorId","super","newValue","incRef","disposeVariable","Rank","UpcastInt32AndMap","UpcastBoolAndMap","UpcastFloat32AndMap","UpcastComplex64AndMap","Function","upcastTypeMap","upcastType","typeA","typeB","sumOutType","type","makeTypesMatch","assertTypesMatch","isTensorInList","tensor","tensorList","some","getTensorsInContainer","list","walkTensorContainer","Set","container","seen","iterable","add","EngineState","registeredVariables","nextTapeNodeId","numBytes","numTensors","numStringTensors","numDataBuffers","gradientDepth","kernelDepth","scopeStack","numDataMovesStack","nextScopeId","tensorInfo","profiling","activeProfile","newBytes","newTensors","peakBytes","kernels","variableName","dispose","Engine","registry","registryFactory","pendingBackendInitId","state","pendingBackendInit","backendInstance","sortedBackends","getSortedBackends","initializeBackend","success","setBackend","asyncInit","initializeBackendsAndReturnBest","keys","factory","priority","setupRegisteredKernels","profiler","kernel","setupFunc","disposeFunc","registryFactoryEntry","promiseId","catch","stack","message","disposeRegisteredKernels","srcBackend","disposeData","move","shouldCheckForMemLeaks","nameOrFn","scopedRun","startScope","endScope","res","ex","nextTensorId","nextVariableId","makeTensorFromDataId","addTapeNode","activeScope","gradInputs","attrs","ENGINE","runKernelFunc","inputsToSave","outputsToSave","numDataIdsBefore","outInfos","numDataIdsAfter","numDataIds","numOutputDataIds","numMoves","dataIdsLeaked","forwardFunc","backwardsFunc","saved","isTapeOn","startingBytecount","startingNumTensors","kernelFunc","out","checkKernelForMemLeak","outTensors","outInfo","tensorsToSave","getTensorsForGradient","outsToSave","_","saveTensorsForBackwardMode","saveFunc","keep","tidy","outs","profileKernel","bytesAdded","totalBytesSnapshot","tensorsAdded","totalTensorsSnapshot","inputShapes","outputShapes","item","kernelTimeMs","gradConfig","inputTensorsToSave","saveAllInputs","inputName","outputTensorsToSave","backendVals","write","refCount","track","decComplexRef","varName","memory","unreliable","reasons","query","startBytes","startNumTensors","gradientsFunc","tapeNode","gradFunc","gradient","dys","activeTape","scopeInfo","tensorsToTrackInParent","tensorsToTrackInParentSet","oldScope","pop","scopeId","xs","allowNoGradients","startTape","endTape","filteredTape","tape","tensorsFromX","nodesFromX","node","nodeInputs","anyInputFromX","tensorsLeadToY","nodesToY","prunedInputs","nodeInput","prunedNode","getFilteredNodesXToY","accumulatedGradientMap","ones","tensorAccumulatedGradientMap","gradTensor","inputGradients","dx","curGradient","backpropagateGradients","grads","inputMap","save","gradRes","gradMap","grad","timingInfo","wallMs","reset","getOrMakeEngine","_tfengine","environment","runKernel","isMobile","navigator","userAgent","vendor","opera","substr","isBrowser","document","WorkerGlobalScope","inferShape","firstElem","deepAssertShapeConsistency","subShape","assertDtype","expectedDtype","actualDType","argName","functionName","convertToTensor","parseAsDtype","inferredDtype","indexOf","inferredShape","convertToTensorArray","registerFlag","debugValue","versions","OP_SCOPE_SUFFIX","op","opName","endsWith","substring","f2","complex","complex_","$real","$imag","providedSize","inferredSize","inferred","flatDimsDontMatch","DTYPE_VALUE_SIZE_MAP","async","encodeWeights","group","specs","dataPromises","names","spec","utf8bytes","totalNumBytes","bytesOfLength","concatenateTypedArrays","decodeWeights","float16Decode","quantization","quantizationSizeFactor","byteBuffer","quantizedArray","Uint16Array","getFloat16Decoder","byteLength","dtypeFactor","realTensor","imageTensor","JSON","stringify","totalByteLength","normalizedXs","useNodeBuffer","Buffer","Blob","atob","btoa","stringByteLength","str","concatenateArrayBuffers","buffers","basename","trim","items","getModelArtifactsInfoForJSON","modelArtifacts","modelTopology","ArrayBuffer","dateSaved","Date","modelTopologyType","modelTopologyBytes","weightSpecsBytes","weightSpecs","weightDataBytes","weightData","mantisaTable","convertMantissa","m","e","computeFloat16MantisaTable","exponentTable","computeFloat16ExponentTable","offsetTable","computeFloat16OffsetTable","bufferUint32View","float16Bits","float32Bits","IORouterRegistry","saveRouters","loadRouters","saveRouter","getInstance","loadRouter","url","getHandlers","loadOptions","handlerType","validHandlers","router","handler","registerSaveRouter","loudRouter","registerLoadRouter","getSaveHandlers","getLoadHandlers","DATABASE_NAME","MODEL_STORE_NAME","INFO_STORE_NAME","getIndexedDBFactory","theWindow","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","shimIndexedDB","setUpDatabase","openRequest","db","createObjectStore","keyPath","BrowserIndexedDB","modelPath","databaseAction","open","onupgradeneeded","onsuccess","modelTx","transaction","getRequest","objectStore","close","onerror","oncomplete","modelArtifactsInfo","infoTx","infoStore","putInfoRequest","put","putModelRequest","deleteInfoRequest","URL_SCHEME","indexedDBRouter","startsWith","BrowserIndexedDBManager","tx","getAllInfoRequest","getAll","getInfoRequest","deleteModelData","deleteModelRequest","PATH_SEPARATOR","PATH_PREFIX","INFO_SUFFIX","MODEL_TOPOLOGY_SUFFIX","WEIGHT_SPECS_SUFFIX","WEIGHT_DATA_SUFFIX","MODEL_METADATA_SUFFIX","getModelKeys","topology","modelMetadata","getModelPathFromKey","BrowserLocalStorage","localStorage","LS","setItem","buf","fromCharCode","arrayBufferToBase64String","format","generatedBy","convertedBy","signature","userDefinedMetadata","modelInitializer","removeItem","parse","getItem","metadataString","metadata","weightDataBase64","byteOffset","charCodeAt","base64StringToArrayBuffer","localStorageRouter","BrowserLocalStorageManager","prefix","suffix","URL_SCHEME_SUFFIX","ModelStoreManagerRegistry","managers","scheme","manager","parseURL","getSchemes","cloneModelInternal","sourceURL","destURL","deleteSource","loadHandlers","loadHandler","saveHandlers","saveHandler","sourceScheme","sourcePath","sameMedium","load","getManager","removeModel","saveResult","listModels","schemes","schemeOut","schemeAndPath","copyModel","moveModel","PlatformBrowser","performance","text","textEncoder","TextEncoder","TextDecoder","setPlatform","registerManager","systemFetch","util","hrtime","cast_","$x","clone_","defer","BrowserDownloads","fileNamePrefix","modelTopologyFileName","weightDataFileName","weightsURL","URL","createObjectURL","weightsManifest","paths","weights","modelTopologyAndWeightManifest","modelTopologyAndWeightManifestURL","jsonAnchor","createElement","download","href","dispatchEvent","MouseEvent","weightDataAnchor","BrowserFiles","files","jsonFile","weightFiles","jsonReader","FileReader","onload","event","modelJSON","pathToFile","checkManifestAndWeightFiles","perFileBuffers","weightsGroup","weightFileReader","readAsArrayBuffer","readAsText","manifest","basenames","fileNames","file","pathBasename","browserFiles","monitorPromisesProgress","promises","onProgress","startFraction","endFraction","checkPromises","checkFraction","resolvedPromise","promise","fraction","loadWeightsAsArrayBuffer","fetchURLs","fetchFunc","requests","fetchURL","requestInit","isBinary","bufferPromises","response","arrayBuffer","loadWeights","filePathPrefix","weightNames","weightsLoaderFactory","fetchUrls","fetchWeightsFunction","groupIndicesToFetchMap","groupWeightsToFetch","weightsFound","allManifestWeightNames","manifestGroupConfig","groupIndex","groupOffset","weightsEntry","rawDtype","weightsBytes","enqueueWeightsForFetchingFn","manifestEntry","sizeBytes","weightName","weightIndex","found","weightsNotFound","groupIndicesToFetch","accumulator","shouldFetch","filepath","fetchUrl","weightsTensorMap","bufferIndexOffset","numBuffers","groupBytes","groupBuffer","groupByteBuffer","groupBufferOffset","nameToTensorMap","browserDownloads","HTTPRequest","DEFAULT_METHOD","weightPathPrefix","weightUrlConverter","body","FormData","append","ok","responses","status","modelConfigRequest","modelConfig","json","results","artifacts","initializer","weightPath","lastSlash","lastIndexOf","lastSearchParam","parseUrl","pathPrefix","entry","urlPromises","isHTTPScheme","match","URL_SCHEME_REGEX","httpRouter","isHTTP","urlItem","http","browserHTTPRequest","PassthroughLoader","PassthroughSaver","fromMemory","trainingConfig","withSaveHandler","matMul","matMul_","$a","$b","oneHot","oneHot_","transpose","transpose_","confusionMatrix","confusionMatrix_","labels","predictions","numClasses","$labels","$predictions","oneHotLabels","oneHotPredictions","oneHotLabelsT","product","tensor3d","fromPixels2DContext","toPixels","img","canvas","$img","originalImgTensor","height","multiplier","Uint8ClampedArray","rgba","ctx","getContext","imageData","ImageData","putImageData","fromPixels","fromPixels_","pixels","numChannels","isPixelData","isImageData","isVideo","isImage","isCanvasLike","isImageBitmap","HTMLVideoElement","HTMLImageElement","ImageBitmap","HAVE_CURRENT_DATA_READY_STATE","readyState","videoWidth","videoHeight","getImageData","drawImage","numPixels","channel","prepareAndValidate","tensorRank","indicesRank","indicesShape","sliceRank","nResult","resultShape","sliceSize","validateUpdateShape","sliceDim","batchDim","shapeError","validateInput","calculateShapes","totalNd","safeSliceDim","numUpdates","outputSize","assertParamsValid","maskToAxes","mask","computeOutShape","stridesWithElidedDims","ellipsisInsertionIndex","numElidedAxes","newStrides","splice","unnormalizeAxis","normalizedAxis","getElidedAxes","elidedAxes","getNormalizedAxes","ellipsisAxes","numInterpolatedAxes","beginMask","endMask","ellipsisMask","normalizedBegin","normalizedEnd","normalizedStrides","fullIndex","startIndicesWithElidedDims","stopIndicesWithElidedDims","startForAxis","stopForAxis","stridesForAxis","originalBegin","newIndices","originalAxis","originalValue","originalEnd","MAX_SAFE_INTEGER","axisSize","startIndices","MIN_SAFE_INTEGER","stopIndices","isSliceContinous","firstNonOneAxis","computeFlatOffset","flatOffset","parseSliceParams","begin_","xRank","size_","sliceInfo","xShape","newAxisMask","shrinkAxisMask","$begin","$end","$strides","expandAxes","shrinkAxes","outShape","nonStrided","Serializable","className","cls","SerializationMap","classNameMap","getMap","fromConfig","registerClass","register","TEST_EPSILON_FLOAT16","expectArraysClose","actual","expected","epsilon","expectArraysPredicate","areClose","predicate","checkClassType","aType","bType","actualShape","expectedShape","actualFlat","expectedFlat","expectPromiseToFail","fail","expectArraysEqual","abs","expectValuesInRange","low","high","expectArrayBuffersEqual","expect","toEqual","encodeStrings","version","enableProdMode","enableDebugMode","disableDeprecationWarnings","deprecationWarn","disposeVariables","engine","profile","ready","getBackend","removeBackend","findBackend","findBackendFactory","registerBackend","add_","floorDiv","floorDiv_","div","div_","mul","mul_","sqrt_","square","square_","zerosLike","zerosLike_","$dy","gradients","checkGrads","$args","valueAndGrad","valueAndGrads","varList","specifiedVarList","specifiedNonTrainable","variable","originalVarCount","namedGrads","customGrad","Optimizer","returnCost","computeGradients","gradArray","applyGradients","iterations_","iterations","weightValues","getClassName","minimize","AdadeltaOptimizer","learningRate","rho","accumulatedGrads","accumulatedUpdates","variableGradients","originalName","accumulatedGrad","accumulatedUpdate","newAccumulatedGrad","newAccumulatedUpdate","incrementIterations","variables","saveIterations","variableCount","extractIterations","AdagradOptimizer","initialAccumulatorValue","pow","pow_","$base","$exp","sub","sub_","AdamOptimizer","beta1","beta2","accumulatedFirstMoment","accumulatedSecondMoment","accBeta1","accBeta2","varNames","oneMinusAccBeta1","oneMinusAccBeta2","firstMoment","secondMoment","newFirstMoment","newSecondMoment","biasCorrectedFirstMoment","biasCorrectedSecondMoment","abs_","getBroadcastDims","inShape","inRank","dims","unshift","getReductionAxes","inDim","outAxis","outDim","assertAndGetBroadcastShape","maximum","maximum_","AdamaxOptimizer","decay","accumulatedWeightedInfNorm","iteration","variableNames","lr","weightedInfNorm","ut0","ut1","newWeightedInfNorm","SGDOptimizer","setLearningRate","MomentumOptimizer","momentum","useNesterov","accumulations","accumulation","newAccumulation","RMSPropOptimizer","centered","accumulatedMeanSquares","accumulatedMoments","accumulatedMeanGrads","accumulatedMeanSquare","newAccumulatedMeanSquare","accumulatedMeanGrad","newAccumulatedMeanGrad","gradContribution","newAccumulatedMoments","acos","acos_","acosh","acosh_","addN","addN_","$tensors","firstTensor","all_","keepDims","any","any_","argMax","argMax_","argMin","argMin_","asin","asin_","asinh","asinh_","atan","atan_","atan2","atan2_","atanh","atanh_","computeDilation2DInfo","filterShape","dilations","computeConv2DInfo","convertConv2DDataFormat","computePool2DInfo","filterSize","roundingMode","filterHeight","filterWidth","parseTupleParam","computePool3DInfo","filterDepth","parse3TupleParam","$dataFormat","computeConv3DInfo","depthwise","batchSize","inHeight","inWidth","inChannels","filterChannels","strideHeight","strideWidth","dilationHeight","dilationWidth","effectiveFilterHeight","getEffectiveFilterSize","effectiveFilterWidth","padInfo","outHeight","outWidth","top","bottom","left","right","fieldSize","zeroPad","computeDefaultPad","inputCols","computeOutputShape2D","padAlongHeight","padAlongWidth","getPadAndOutInfo","outChannels","inDepth","strideDepth","dilationDepth","effectiveFilterDepth","outDepth","front","back","inputRows","computeOutputShape4D","padAlongDepth","get3DPadAndOutInfo","dilation","effectiveFieldSize","param","trunc","tupleValuesAreOne","dimA","dimB","dimC","eitherStridesOrDilationsAreOne","reshape","reshape_","avgPool","avgPool_","dimRoundingMode","x4D","reshapedTo4D","avgPool3d","avgPool3d_","x5D","reshapedTo5D","concat_","attr","sigmoid","sigmoid_","slice_","tanh_","basicLSTMCell","basicLSTMCell_","forgetBias","lstmKernel","lstmBias","h","$forgetBias","$lstmKernel","$lstmBias","$data","$c","$h","combined","weighted","sliceCols","newC","batchToSpaceND","batchToSpaceND_","prod","batchNorm","batchNorm_","$mean","$variance","$scale","$offset","xAs4D","batchNorm2d","batchNorm2d_","batchNorm3d","batchNorm3d_","batchNorm4d","batchNorm4d_","bincount","bincount_","$weights","broadcastTo","broadcastTo_","ceil_","clipByValue","clipByValue_","clipValueMin","clipValueMax","concat1d","concat1d_","concat2d","concat2d_","concat3d","concat3d_","concat4d","concat4d_","conv2d","conv2d_","$filter","conv1d","conv1d_","x3D","reshapedTo3D","filter4D","input4D","conv2DBackpropInput","conv2DBackpropInput_","xShape4D","dy4D","conv2dTranspose","conv2dTranspose_","conv3d","conv3d_","conv3DBackpropInput","conv3DBackpropInput_","xShape5D","dy5D","conv3dTranspose","conv3dTranspose_","cos","cos_","cosh","cosh_","cumsum","cumsum_","denseBincount","denseBincount_","binaryOutput","depthToSpace","depthToSpace_","inputHeight","inputWidth","inputDepth","depthwiseConv2d","depthwiseConv2d_","diag","diag_","dilation2d","dilation2d_","equal","equal_","where_","$condition","broadcastShape","$broadcastedA","$broadcastedB","divNoNan","divNoNan_","divResult","zeros","bEqualsZero","dot","dot_","t1","t2","$t1","$t2","t1Inner","t2Inner","t12D","t22D","t1t2","elu","elu_","erf","erf_","exp_","expandDims","expandDims_","expm1","expm1_","tile","tile_","eye","eye_","numRows","numColumns","batchShape","buff","toTensor","floor_","gather","gather_","greater","greater_","greaterEqual","greaterEqual_","imag_","isFinite_","isInf","isInf_","isNaN_","leakyRelu","leakyRelu_","less","less_","lessEqual","lessEqual_","linspace","localResponseNormalization","localResponseNormalization_","depthRadius","log_","log1p","log1p_","neg","neg_","softplus","softplus_","logSigmoid","logSigmoid_","customOp","max_","reductionIndices","sum_","logSoftmax","logSoftmax_","$logits","xMax","shifted","softmax","axesAreInnerMostDims","combineLocations","outputLoc","reduceLoc","outIdx","reduceIdx","computeOutAndReduceShapes","aShape","expandShapeToKeepDim","assertAxesAreInnerMostDims","getAxesPermutation","getUndoAxesPermutation","getInnerMostAxes","numAxes","logSumExp","logSumExp_","logicalAnd","logicalAnd_","logicalNot","logicalNot_","logicalOr","logicalOr_","logicalXor","logicalXor_","maxPool","maxPool_","maxPool3d","maxPool3d_","maxPoolWithArgmax","maxPoolWithArgmax_","includeBatchInIndex","indexes","mean_","min_","minimum","minimum_","mirrorPad","mirrorPad_","mode","shapeOffset","mod","mod_","moments","moments_","xMean","keepDimsShape","devSquared","multiRNNCell","multiRNNCell_","lstmCells","newStates","newH","multinomial","multinomial_","numOutcomes","origRank","notEqual","notEqual_","onesLike","onesLike_","outerProduct","outerProduct_","v1","v2","$v1","$v2","v12D","v22D","pad_","pad1d","pad1d_","pad2d","pad2d_","pad3d","pad3d_","pad4d","pad4d_","spaceToBatchND","spaceToBatchND_","pool","pool_","windowShape","poolingType","basePadding","padExtraShape","padExtraStart","padExtraEnd","withSpaceToBatchBasePaddings","isDilationOne","adjustedPadding","adjustedCrops","padStart","origPadEnd","fullInputShape","padEndExtra","padEnd","requiredSpaceToBatchPaddings","convertedPad","convertedX","prelu","prelu_","prod_","rand","rand_","randFunction","MPRandGauss","stdDeviation","truncated","stdDev","nextVal","NaN","upper","lower","seedValue","seedrandom","alea","resultX","resultY","isValid","isValidTruncated","convertValue","RandGamma","randu","randn","x2","v0","u","nextValue","UniformRandom","canReturnFloat","range","randomGamma","randomGamma_","rgamma","randomNormal","randomNormal_","randGauss","randomUniform","randomUniform_","minval","maxval","step","real_","reciprocal","reciprocal_","relu","relu_","relu6","relu6_","reverse_","reverse1d","reverse1d_","reverse2d","reverse2d_","reverse3d","reverse3d_","reverse4d","reverse4d_","round_","rsqrt","rsqrt_","selu","selu_","separableConv2d","separableConv2d_","depthwiseFilter","pointwiseFilter","$depthwiseFilter","$pointwiseFilter","channelMultiplier","setdiff1dAsync","$y","xVals","yVals","ySet","sign","sign_","sin","sin_","sinh","sinh_","slice1d","slice1d_","slice2d","slice2d_","slice3d","slice3d_","slice4d","slice4d_","softmax_","fft","fft_","ifft","ifft_","irfft","irfft_","innerDimensionSize","batch","complexInput","realInput","imagInput","realConjugate","imagConjugate","split_","numOrSizeSplits","rfft","rfft_","fftLength","adjustedInput","zerosShape","zerosInput","half","realValues","imagValues","realComplexConjugate","imagComplexConjugate","squaredDifference","squaredDifference_","squeeze","squeeze_","stack_","step_","stridedSlice","stridedSlice_","tan","tan_","tensor1d","tensor2d","tensor4d","tensor5d","tensor6d","topk","topk_","lastDim","truncatedNormal","truncatedNormal_","unique","unique_","unsortedSegmentSum","unsortedSegmentSum_","$segmentIds","unstack","unstack_","whereImpl","condShape","condVals","inBuffer","whereAsync","booleanMaskAsync","$tensor","$mask","axisFrom","maskDim","tensorShape","leadingSize","targetTensorShape","reshapedTensor","reshapedMask","positivePositions","equalStrict","equalStrict_","greaterEqualStrict","greaterEqualStrict_","greaterStrict","greaterStrict_","lessEqualStrict","lessEqualStrict_","lessStrict","lessStrict_","notEqualStrict","notEqualStrict_","addStrict","addStrict_","divStrict","divStrict_","maximumStrict","maximumStrict_","minimumStrict","minimumStrict_","modStrict","modStrict_","mulStrict","mulStrict_","powStrict","powStrict_","squaredDifferenceStrict","squaredDifferenceStrict_","subStrict","subStrict_","normImpl","norm","norm_","ord","movingAverage","movingAverage_","zeroDebias","$v","$decay","one","oneMinusDecay","update","$step","scatterND","scatterND_","$indices","$updates","sparseToDense","sparseToDense_","$sparseIndices","$sparseValues","$defaultValue","defaultValues","numElems","numDims","numValues","gatherND","gatherND_","dropout","dropout_","rate","noiseShape","$noiseShape","newDimension","getNoiseShape","keepProb","enclosingPowerOfTwo","cosineWindow","windowLength","even","newValues","cosArg","PI","inTopKAsync","targets","$targets","predictionsVals","targetsVals","precision","subarray","valAndInd","conv2DBackpropFilter","conv2DBackpropFilter_","getFusedDyActivation","getFusedBiasGradient","dyActivation","reduceAxes","applyActivation","leakyreluAlpha","shouldFuse","fusedConv2d_","$bias","$preluActivationWeights","der","biasDer","customOpWithBias","depthwiseConv2dNativeBackpropFilter","depthwiseConv2dNativeBackpropFilter_","depthwiseConv2dNativeBackpropInput","depthwiseConv2dNativeBackpropInput_","fusedDepthwiseConv2d_","xDer","filterDer","fusedMatMul_","innerShapeA","innerShapeB","outerShapeA","outerShapeB","outerDimsA","outerDimsB","batchDimA","batchDimB","a3D","b3D","aDer","bDer","hammingWindow","hammingWindow_","hannWindow","hannWindow_","frame_","signal","frameLength","frameStep","padValue","padLen","stft","stft_","windowFn","framedSignal","windowedSignal","cropAndResize","cropAndResize_","boxInd","$image","$boxes","$boxInd","numBoxes","flipLeftRight","flipLeftRight_","rotateWithOffset","rotateWithOffset_","radians","fillValue","center","nonMaxSuppSanityCheck","softNmsSigma","NEGATIVE_INFINITY","nonMaxSuppression","nonMaxSuppression_","$scores","binaryInsert","element","comparator","middle","compareResult","binarySearch_","defaultComparator","binarySearch","insertionPoint","nonMaxSuppressionV3Impl","nonMaxSuppressionImpl_","nonMaxSuppressionV4Impl","padToMaxOutputSize","nonMaxSuppressionV5Impl","returnScoresTensor","returnValidOutputs","candidates","score","suppressBeginIndex","ascendingComparator","selectedIndices","selectedScores","candidate","originalScore","ignoreCandidate","iou","intersectionOverUnion","suppressWeight","validOutputs","elemsToPad","iCoord","jCoord","yminI","xminI","ymaxI","xmaxI","yminJ","xminJ","ymaxJ","xmaxJ","areaI","areaJ","intersectionYmin","intersectionXmin","intersectionYmax","intersectionXmax","intersectionArea","weight","c1","c2","nonMaxSuppressionWithScore","nonMaxSuppressionWithScore_","nonMaxSuppressionPadded","nonMaxSuppressionPadded_","resizeBilinear","resizeBilinear_","images","$images","batchImages","resizeNearestNeighbor","resizeNearestNeighbor_","bandPart","bandPart_","numLower","numUpper","M","N","ij","inBand","zero","mat","gramSchmidt","gramSchmidt_","inputIsTensor2D","ys","xs1d","proj","qr2d","fullMatrices","q","one2D","w","iters","rTemp","wTemp","qTemp","rjEnd1","normX","rjj","u1","wPre","tau","rjEndAll","tauTimesW","wT","rTimesTau","tawTimesWT","qAllJEnd","qTimesTau","qr","qr_","outerDimsProd","x2ds","q2ds","r2ds","x2d","q2d","r2d","Reduction","computeWeightedLoss","computeWeightedLoss_","losses","reduction","SUM_BY_NONZERO_WEIGHTS","$losses","weightedLoss","NONE","SUM","MEAN","broadcastFactor","broadcastedWeights","numNonZeros","absoluteDifference","absoluteDifference_","cosineDistance","cosineDistance_","hingeLoss","hingeLoss_","huberLoss","huberLoss_","delta","deltaScalar","quadratic","linear","logLoss","logLoss_","epsilonScalar","l1","l2","meanSquaredError","meanSquaredError_","sigmoidCrossEntropy","sigmoidCrossEntropy_","multiClassLabels","labelSmoothing","$multiClassLabels","labelSmoothingScalar","maxOutput","outputXTarget","sigmoidOutput","sigmoidCrossEntropyWithLogits_","softmaxCrossEntropy","softmaxCrossEntropy_","onehotLabels","$onehotLabels","lse","logResult","costVector","dyShape","softmaxCrossEntropyWithLogits_","spectral","frame","nonMaxSuppressionAsync","boxesAndScores","boxesVals","scoresVals","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPaddedAsync","$maxOutputSize","$iouThreshold","$scoreThreshold","linalg","OptimizerConstructors","train","sgd","adadelta","adagrad","rmsprop","adamax","adam","delayCallback","requestAnimationFrame","setImmediate","nextFrame","assertParamsConsistent","shapes","firstShape","PARALLELIZE_THRESHOLD","computeOptimalWindowSize","inSize","getImageCenter","imageHeight","imageWidth","getReshaped","batchToSpace","reshaped","spatialLength","getPermuted","reshapedRank","blockShapeRank","permuted","permutedBeforeBatch","permutedAfterBatch","getReshapedPermuted","reshapedPermuted","getSliceBeginCoords","sliceBeginCoords","getSliceSize","uncroppedShape","SELU_SCALEALPHA","SELU_SCALE","ERF_P","ERF_A1","ERF_A2","ERF_A3","ERF_A4","ERF_A5","mergeRealAndImagArrays","splitRealAndImagArrays","complexWithEvenIndex","complexWithOddIndex","getComplexWithIndex","assignToTypedArray","exponents","inverse","exponent","prepareSplitSize","splitSizes","count","negIndex","total","segOpComputeOptimalWindowSize","collectGatherOpShapeInfo","outerSize","castTensor","zerosTensor","floatX","int","reshapeTensor","fromUint8ToStringArray","fromStringArrayToUint8","strings","absGradConfig","acosGradConfig","acoshGradConfig","addGradConfig","addNGradConfig","ders","argMaxGradConfig","argMinGradConfig","asinGradConfig","asinhGradConfig","atan2GradConfig","atanGradConfig","atanhGradConfig","avgPool3dGrad","avgPool3dGrad_","$input","input5D","avgPool3DGradConfig","$dilations","avgPoolGrad","avgPoolGrad_","avgPoolGradConfig","batchMatMulGradConfig","batchToSpaceNDGradConfig","broadcastToGradConfig","broadCastToAttrs","castGradConfig","ceilGradConfig","clipByValueGradConfig","complexAbsGradConfig","concatGradConfig","$axis","conv2DGradConfig","conv2DBackpropInputGradConfig","ddx","conv3DBackpropFilter","conv3DBackpropFilter_","conv3DGradConfig","cosGradConfig","coshGradConfig","cumsumGradConfig","permutation","depthwiseConv2dNativeGradConfig","dilation2dGradConfig","inputInputs","filterInputs","eluGradConfig","erfGradConfig","expGradConfig","expandDimsGradConfig","expm1GradConfig","floorGradConfig","floorDivGradConfig","tmp","fusedBatchNormGradConfig","scaleValue","reductionAxes","tileShape","xMinusMean","dyTimesScaleValue","oneOverSqrtVariance","minusHalfRCube","meanDer","varianceDer","xMinusMean2TimesRsqrt","scaleDer","offsetDer","gatherGradConfig","parsedAxis","paramsShape","indicesSize","outerShape","outerDims","innerShape","innerDims","outerAxesIndices","arrayRange","innerAxesIndices","valuesShape","arrayConcat","reshapedIndices","transposeDims","valuesTranspose","paramsGrad","invertTransposeDims","arrays","greaterEqualGradConfig","identityGradConfig","isFiniteGradConfig","isInfGradConfig","isNanGradConfig","leakyReluGradConfig","log1pGradConfig","logGradConfig","logSoftmaxGradConfig","localResponseNormalizationBackprop","localResponseNormalizationBackprop_","lrnGradConfig","gradForMinAndMax","xOrig","origAxes","maxGradConfig","maxAttrs","maxGrad","maximumGradConfig","maxPool3dGrad","maxPool3dGrad_","$output","output5D","maxPool3DGradConfig","maxPoolGrad","maxPoolGrad_","padV2GradConfig","spaceToBatchNDGradConfig","splitVGradConfig","gradConfigs","reduceSize","expandedDyShape","expandedDy","minAttrs","minGrad","expFloat","logBase","scaleAlpha","greaterThanZeroDer","lessEqualZeroDer","dyTimesY","two","derX","xGrad","transposeAttrs","undoPerm","unpackAttrs","zeroClippedIndices","gathered","isPositive","numIters","zeroSlice","gatherDropNegatives","gradientConfig","_epsilon","asScalar","asType","as1D","as2D","rows","columns","as3D","as4D","depth2","as5D","depth3","depthwiseConv2D","padding","dilationRate","reshapeAs","newShape2D","halfFloatCenters","tensorsToBeStacked","toBool","toFloat","toInt","where","AttributeError","RuntimeError","AssertionError","pyListRepeat","newArray","refernce","singletonOrArray","toList","toSnakeCase","insecure","toCamelCase","identifier","p1","toUpperCase","_GLOBAL_CUSTOM_OBJECTS","serializeKerasObject","dict","getConfig","convertNDArrayScalarsInConfig","configItem","fields","field","deserializeKerasObject","moduleObjects","customObjects","printableModuleName","fastWeightInit","customObjectsCombined","backupCustomObjects","returnObj","reverseNumberCompare","numberCompare","isObjectEmpty","checkStringTypeUnionValue","label","checkArrayTypeAndLength","expectedType","minLength","maxLength","assertPositiveInteger","formatAsFriendlyString","mapActivationToFusedKernel","activationName","calcL2Norms","Constraint","MaxNorm","defaultMaxValue","defaultAxis","maxValue","norms","desired","UnitNorm","NonNeg","MinMaxNorm","defaultMinValue","defaultRate","minValue","CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeConstraint","constraint","deserializeConstraint","getConstraint","maxNorm","unitNorm","nonNeg","minMaxNorm","VALID_DATA_FORMAT_VALUES","VALID_INTERPOLATION_FORMAT_VALUES","VALID_PADDING_MODE_VALUES","VALID_POOL_MODE_VALUES","VALID_BIDIRECTIONAL_MERGE_MODES","nameMap","checkPaddingMode","checkPoolMode","_nameScopeStack","nameScope","getScopedTensorName","tensorName","isValidTensorName","getUniqueTensorName","scopedName","tensorNameRegex","RegExp","arrayProd","toArray1D","sliceAlongFirstAxis","sliceAlongLastAxis","sliceAlongAxis","concatenate","concatAlongFirstAxis","stddev","reshapeBias","aFirstDims","aLastDim","bShape","bLastDim","ySecondLastDim","yOtherDims","reference","biasShape","biasAdd","level","inTrainPhase","alt","training","VALID_FAN_MODE_VALUES","VALID_DISTRIBUTION_VALUES","Initializer","Zeros","Ones","Constant","RandomUniform","DEFAULT_MINVAL","DEFAULT_MAXVAL","RandomNormal","DEFAULT_MEAN","DEFAULT_STDDEV","TruncatedNormal","gain","VarianceScaling","distribution","checkDistribution","fans","fanIn","fanOut","receptiveFieldSize","computeFans","limit","GlorotUniform","GlorotNormal","HeNormal","HeUniform","LeCunNormal","LeCunUniform","Orthogonal","DEFAULT_GAIN","INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","deserializeInitializer","serializeInitializer","getInitializer","constant","identity","varianceScaling","glorotUniform","glorotNormal","heNormal","heUniform","leCunNormal","leCunUniform","orthogonal","_nextUniqueTensorId","getNextUniqueTensorId","_uidPrefixes","getUid","isArrayOfShapes","normalizeShapeList","getExactlyOneTensor","getExactlyOneShape","countParamsInWeights","LayerVariable","DEFAULT_VARIABLE_NAME_PREFIX","trainable_","assertNotDisposed","newVal","checkShapesMatch","batchGetValue","batchSetValue","variablesAndValues","variableAndValue","InputSpec","ndim","maxNDim","minNDim","SymbolicTensor","sourceLayer","callArgs","outputTensorIndex","_nextNodeID","Node","outboundLayer","inboundLayers","nodeIndices","tensorIndices","inputTensors","outputTensors","inputMasks","outputMasks","layer","outboundNodes","inboundNodes","inboundNames","_nextLayerID","Layer","_callHook","_addedWeightNames","_stateful","activityRegularizer","inputSpec","supportsMasking","_trainableWeights","_nonTrainableWeights","_losses","_updates","_built","batchInputShape","inputDType","initialWeights","_refCount","fastWeightInitDuringBuild","nodeIndex","attrName","getNodeAtIndex","lossFn","built","trainableWeights","nonTrainableWeights","stateful","inputIndex","xShapeAtAxis","specDim","kwargs","callHook","inputsList","allAreSymbolic","noneAreSymbolic","assertInputCompatibility","xElem","build","setWeights","outputList","outputListCopy","collectInputShape","computeOutputShape","outputDType","warnOnIncompatibleInputShape","addInboundNode","dimMismatch","dimension","allOutputShapes","shapeString","trainableOnly","weightValueTuples","paramValues","pv","regularizer","initValue","addLoss","maskElement","inputTensorList","tensorIndex","numDisposedVariables","disposeWeights","refCountAfterDispose","getSourceInputs","sourceTensors","previousSources","InputLayer","sparse","inputTensor","Input","resolveScalarsInLogs","logs","scalarsToDispose","valueScalar","disposeTensorsInLogs","ModelLoggingVerbosity","BaseCallback","validationData","epoch","model","CallbackList","callbacks","queueLength","callback","setParams","setModel","onEpochBegin","onEpochEnd","onBatchBegin","onBatchEnd","onTrainBegin","onTrainEnd","BaseLogger","totals","oldTotalsToDispose","History","history","valueArray","CustomCallback","yieldEvery","currentEpoch","onYield","maybeWait","waitMs","lastResult","lastTime","bind","trainBegin","trainEnd","epochBegin","epochEnd","batchBegin","batchEnd","yield","ps","standardizeCallbacks","callbackConfig","CallbackConstructorRegistry","verbosityLevel","callbackConstructor","checkForDuplicate","constructors","levelName","ctor","configureCallbacks","epochs","initialEpoch","numTrainSamples","stepsPerEpoch","doValidation","callbackMetrics","actualCallbacks","createCallbacks","callbackList","samples","steps","metrics","deserialize","l2Normalize","squareSum","epsilonTensor","yTrue","yPred","meanAbsoluteError","meanAbsolutePercentageError","clippedTrue","MAX_VALUE","absResult","categoricalCrossentropy","fromLogits","outputSum","sparseCategoricalCrossentropy","flatTarget","binaryCrossentropy","reluLogits","negAbsLogits","sigmoidCrossEntropyWithLogits","cosineProximity","trueNormalized","predNormalized","trueXPred","lossesMap","meanSquaredLogarithmicError","clippedPred","firstLog","secondLog","squaredHinge","maxResult","hinge","categoricalHinge","pos","logcosh","log2","predictionDiff","logcoshResult","kullbackLeiblerDivergence","poisson","logPred","identifierOrFn","errMsg","includes","binaryAccuracy","threshold","yPredThresholded","categoricalAccuracy","truePositives","tp","fp","falsePositives","denominator","sparseCategoricalAccuracy","metricsMap","mse","MSE","mae","MAE","mape","MAPE","cosine","getLossOrMetricName","fnName","checkUserDefinedMetadata","modelName","checkSize","plainObjectCheck","xType","printRow","positions","printFn","line","printLayerSummary","countParams","printLayerSummaryWithConnections","relevantNodes","connections","inboundLayer","inboundLayerIndex","inboundTensorIndex","firstConnection","isArrayItemInputOrOutputName","convertPythonicToTs","pythonicConfig","tsArray","arrayLength","tsDict","pythonicKey","pythonicValue","tsKey","convertTsToPythonic","tsConfig","pyArray","pyDict","tsValue","FeedDict","feeds","id2Value","id2Mask","name2Id","feed","assertFeedCompatibility","cachedSorted","cachedRecipientCounts","execute","fetches","feedDict","probe","arrayFetches","fetchArray","outputNames","finalOutputs","feedNames","outputName","getValue","maxNumTensors","minNumTensors","fetchAndFeedKey","recipientCounts","finalSorted","finalRecipientMap","getTopologicalSortAndRecipientCountsForOneFetch","recipientMap","visited","symbolicTensor","recipient","recipientMap2Counts","getTopologicalSortAndRecipientCounts","internalFeedDict","symbolic","srcLayer","inputValues","tensorsToDispose","maskExists","getMask","hasKey","outputMask","computeMask","layerOutputs","getNodeOutputs","outputSymbolicTensors","disposeMasks","marks","topIsMarked","outputTensor","getOutputAt","Container","containerNodes","inputLayers","inputLayersNodeIndices","inputLayersTensorIndices","outputLayers","outputLayersNodeIndices","outputLayersTensorIndices","layers","internalContainerRefs","inputNames","feedInputShapes","feedInputNames","feedOutputNames","internalInputShapes","internalOutputShapes","nodesDepths","nodeIDToNode","layersDepths","layerIDToLayer","layerIndices","nodesInDecreasingDepth","buildMapOfGraph","finishedNodes","nodesInProgress","nodeKey","numInboundLayers","reversedNodesInDecreasingDepth","previousDepth","inboundNode","nodesByDepth","nodeID","layersByDepth","layerID","depthKeys","parseInt","layersForDepth","aIndex","bIndex","computableTensors","layersWithCompleteInput","allNames","numOccurrences","strict","nameToWeight","totalWeightsCount","validatedName","tokens","unsetNames","theConfig","unused","returnString","updatedConfig","masks","runInternalGraph","layersToOutputShapes","nodes","outputShapeKeys","shapeKey","tensorMap","referenceInputTensors","referenceOutputTensors","computedData","computedTensors","computedMasks","computedTensor","computedMask","nodeConversionMap","keptNodes","originalNodeIndex","calculateLosses","buildNodeConversionMap","layerConfigs","layerClassName","layerConfig","filteredInboundNodes","nodeData","newNodeIndex","modelInputs","modelOutputs","createdLayers","unprocessedNodes","addUnprocessedNode","processNode","inputData","inboundLayerName","inboundNodeIndex","processLayer","layerData","layerName","setFastWeightInitDuringBuild","layersFromConfig","currentUnprocessedNodesForLayer","inputLayersFromConfig","layerOutputTensors","outputLayersFromConfig","resetStates","standardizeClassWeights","classWeight","xWeight","weightType","numOutputs","standardizeSampleOrClassWeights","standardizeWeights","sampleWeight","sampleWeightMode","yClasses","yClassIndices","classSampleWeight","classIndex","sampleWeights","standardizeDataIteratorOutput","iteratorOut","iteratorOutObj","flattenedXs","flattenTensorOrArrayOrMap","flattenedYs","xIndex","yIndex","inputOrOutput","isDatasetObject","dataset","checkBatchSize","sliceArrays","sliceArraysByIndices","makeBatches","batchStart","ensureTensorsRank2OrHigher","disposeNewTensors","refTensors","oldTensorIds","oldTensor","isDataArray","isDataDict","isDataTensor","standardizeInputData","checkBatchAxis","exceptionPrefix","gotUnexpectedData","refDim","checkInputData","LayersModel","isTraining","lineLength","sequentialLike","depthNodes","flag","isModelSequentialLike","toDisplay","checkTrainableWeightsConsistency","trainableCount","collectedTrainableWeights","countTrainableParams","nonTrainableCount","printSummary","loss","optimizer","optimizer_","optimizerMap","isOptimizerOwned","lossFunctions","theLosses","lossFunction","feedOutputShapes","feedLossFns","skipTargetIndices","metricsNames","metricsTensors","nestedMetrics","wrappedMetrics","outputMetrics","collectMetrics","appendMetric","outputIndex","metricName","metricTensor","accFn","weightedMetricFn","metric","metricFn","metricResult","handleMetrics","standardizedOuts","standardizeUserDataXY","ins","makeTestFunction","testFunction","testLoop","hasBatches","batches","dataIterator","numExamples","xsAndYs","batchOuts","batchOut","oldScalar","evaluateDataset","stepsName","outputsIsArray","retrieveSymbolicTensors","tensorValue","executeOutputs","symbolicTensorNames","outputsRemaining","layerOutputNames","remainingNames","checkNumSamples","outsBatches","batchIndex","insBatch","xsRank2OrHigher","predictLoop","setX","setY","checkArrayLengths","lossFns","keyLosses","slicedYShape","slicedShape","targetDim","checkLossAndTargetCompatibility","standardXs","standardYs","standardSampleWeights","classWeights","indexArray","batchIds","outLabels","dedupedOutLabels","newLabel","lossValues","metricsValues","totalLoss","meanLoss","weightedMetric","regularizerLoss","valOutputs","meanMetric","inputValX","inputValY","valX","valY","standardizeUserData","valIns","valStandardized","validationSplit","splitAt","originalBatchSize","validationSteps","trainFunction","makeTrainFunction","getDedupedMetricsNames","valFunction","valF","shuffle","stopTraining_","epochLogs","epochIndexArray1D","batchLogs","valOuts","syncData","fitLoop","fitTensors","hasBatchesPerEpoch","batchesPerEpoch","valXs","valYs","validationBatches","standardizeTensorValidationData","getStepsPerEpoch","stepsDone","standardClassWeights","evaluate","validationBatchSize","fitDataset","standardizeOut","namedWeights","getWeights","numTensorsBeforeOptmizerDisposal","lossNames","metricsIdentifiers","getLossIdentifiers","getMetricIdentifiers","optimizer_config","class_name","weighted_metrics","loss_weights","sample_weight_mode","lossEntry","compile","handlerOrURL","handlers","weightDataAndSpecs","getNamedWeights","toJSON","includeOptimizer","getTrainingConfig","optimizerWeightData","optimizerWeightSpecs","Functional","modelFromJSON","modelAndWeightsConfig","uniqueWeightValues","Sequential","isLayerModelInstance","modelLayer","checkShape","lastLayerIndex","summary","predict","predictOnBatch","fit","trainOnBatch","configArray","extraModelConfig","conf","stopTraining","sequential","loadLayersModel","pathOrIOHandler","options","loadTrainingConfig","setUserDefinedMetadata","modelWeights","optimizerWeights","name2Tensor","decodeModelAndOptimizerWeights","loadLayersModelFromIOHandler","loadLayersModelInternal","registerCallbackConstructor","Activation","Linear","HardSigmoid","Softsign","Swish","serializeActivation","deserializeActivation","getActivation","assertObjectArgs","Regularizer","L1L2","hasL1","hasL2","regularization","REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeRegularizer","deserializeRegularizer","getRegularizer","ReLU","baseConfig","LeakyReLU","DEFAULT_ALPHA","PReLU","DEFAULT_ALPHA_INITIALIZER","alphaInitializer","alphaRegularizer","alphaConstraint","sharedAxes","paramShape","addWeight","ELU","ThresholdedReLU","DEFAULT_THETA","theta","DEFAULT_AXIS","normalizeArray","singleValue","convOutputLength","inputLength","outputLength","deconvLength","strideSize","kernelSize","preprocessConv2DInput","preprocessConv3DInput","conv2dWithBiasActivation","BaseConv","DEFAULT_KERNEL_INITIALIZER","DEFAULT_BIAS_INITIALIZER","verifyArgs","useBias","biasInitializer","biasConstraint","biasRegularizer","Conv","filters","kernelInitializer","kernelConstraint","kernelRegularizer","channelAxis","inputDim","kernelShape","biasValue","fusedActivationName","conv1dWithBias","conv3dWithBias","newSpace","space","newDim","Conv2DTranspose","hAxis","wAxis","kernelH","kernelW","strideH","strideW","heightAxis","widthAxis","SeparableConv","DEFAULT_DEPTHWISE_INITIALIZER","DEFAULT_POINTWISE_INITIALIZER","depthwiseKernel","pointwiseKernel","depthMultiplier","depthwiseInitializer","depthwiseRegularizer","depthwiseConstraint","pointwiseInitializer","pointwiseRegularizer","pointwiseConstraint","depthwiseKernelShape","pointwiseKernelShape","SeparableConv2D","Conv1D","Cropping2D","cropping","hSliced","UpSampling2D","DEFAULT_SIZE","interpolation","resized","DepthwiseConv2D","cols","outFilters","outRows","outCols","standardizeArgs","initialState","constants","numConstants","toListOrNull","rnn","stepFunction","initialStates","goBackwards","unroll","needPerStepOutputs","perStepOutputs","lastOutput","states","timeSteps","perStepInputs","perStepMasks","currentInput","stepOutputs","maskedOutputs","stepMask","negStepMask","RNN","cell","StackedRNNCells","cells","stateSize","returnSequences","returnState","stateSpec","states_","keptStates","outputDim","stateShape","stateMask","numStates","stepInputShape","standardized","additionalInputs","additionalSpecs","fullInput","fullInputSpec","originalInputSpec","getInitialState","cellCallKwargs","rnnOutputs","cellConfig","SimpleRNNCell","DEFAULT_ACTIVATION","DEFAULT_RECURRENT_INITIALIZER","units","recurrentInitializer","recurrentRegularizer","recurrentConstraint","recurrentDropout","dropoutMask","recurrentDropoutMask","recurrentKernel","prevOutput","generateDropoutMask","dpMask","recDpMask","SimpleRNN","GRUCell","DEFAULT_RECURRENT_ACTIVATION","resetAfter","recurrentActivation","implementation","hTMinus1","z","hh","matrixX","recurrentKernelValue","rk1","rk2","matrixInner","xZ","xR","xH","recurrentZ","recurrentR","recurrentH","GRU","LSTMCell","unitForgetBias","capturedBiasInit","capturedUnits","bI","bF","bCAndH","cTMinus1","z0","z1","z2","z3","LSTM","nestedStates","newNestedStates","callInputs","cellStates","tuples","numParams","inputWeights","droppedInputs","createMask","ConvRNN2D","computeSingleOutputShape","getStates","isChannelsFirst","hOut","wOut","ConvLSTM2DCell","recurrentKernelShape","applyDropout","xI","xF","xC","xO","recDropoutMask","hI","hF","hC","hO","kernelI","kernelF","kernelC","kernelO","biasI","biasF","biasC","biasO","inputConv","recKernelI","recKernelF","recKernelC","recKernelO","recurrentConv","getOwnPropertySymbols","propertyIsEnumerable","__rest","ConvLSTM2D","Dropout","invokeCallHook","SpatialDropout1D","Dense","inputLastDim","Flatten","RepeatVector","targetShape","isUnknown","errorMsg","finalShape","known","unknown","originalSize","anyUnknownDims","fixUnknownDimension","Permute","expectedSortedIndices","dimsIncludingBatch","Masking","maskValue","booleanMask","Embedding","embeddings","DEFAULT_EMBEDDINGS_INITIALIZER","embeddingsInitializer","embeddingsRegularizer","embeddingsConstraint","maskZero","inLens","s1","s2","Merge","shape1","shape2","computeElementwiseOpOutputShape","batchSizes","allRanks","reshapeRequired","reshapedInputs","inputDims","xNDim","mergeFunction","transposed","xTransposed","yNDim","yShape","Average","Concatenate","allNoneShape","shapeSet","shapeWithoutConcatAxis","exists","allNullMasks","concatenatedMasks","interpretAxis","Dot","normalize","interpretAxes","x1","axesArray","diffShape","adjX","adjY","idx","squeezeAxes","batchDot","GaussianNoise","GaussianDropout","AlphaDropout","_getNoiseShape","alphaP","keptIdx","batchNormalization","gamma","BatchNormalization","betaInitializer","gammaInitializer","movingMeanInitializer","movingVarianceInitializer","betaConstraint","gammaConstraint","betaRegularizer","gammaRegularizer","movingMean","movingVariance","sortedReductionAxes","needsBroadcasting","broadcastMovingMean","broadcastMovingVariance","broadcastBeta","broadcastGamma","normalizeInference","normedTraining","meanAndVariance","regularNormalizeBatchInTraining","broadcastMean","broadcastVariance","broadcastNormalizeBatchInTraining","normalizeBatchInTraining","doMovingAverage","origValue","updateDelta","updateMovingMeanAndVariance","LayerNormalization","nDims","broadcast","momentsTiling","scaleOffsetTiling","ZeroPadding2D","heightPadding","widthPadding","spatial2dPadding","pattern","pool2d","poolSize","poolMode","paddingString","pool3d","Pooling1D","poolingFunction","MaxPooling1D","AveragePooling1D","Pooling2D","MaxPooling2D","AveragePooling2D","Pooling3D","depths","MaxPooling3D","AveragePooling3D","GlobalPooling1D","GlobalAveragePooling1D","GlobalMaxPooling1D","GlobalPooling2D","GlobalAveragePooling2D","GlobalMaxPooling2D","Wrapper","newConfig","TimeDistributed","childInputShape","childOutputShape","timesteps","Bidirectional","forwDict","forwardLayer","backDict","backwardLayer","mergeMode","_trainable","numWeights","numeightsOver2","layerShapes","stateSpecs","isSymbolicTensor","yRev","forwardState","backwardState","rnnLayer","inputLayer","reLU","leakyReLU","thresholdedReLU","cropping2D","upSampling2d","dense","spatialDropout1d","repeatVector","permute","embedding","layerNormalization","zeroPadding2d","averagePooling1d","avgPool1d","avgPooling1d","averagePooling2d","avgPool2d","avgPooling2d","averagePooling3d","avgPooling3d","globalAveragePooling1d","globalAveragePooling2d","globalMaxPooling1d","globalMaxPooling2d","maxPooling1d","maxPooling2d","maxPooling3d","gru","gruCell","lstm","lstmCell","simpleRNN","simpleRNNCell","convLstm2d","convLstm2dCell","stackedRNNCells","bidirectional","timeDistributed","globalMaxPool1d","globalMaxPool2d","maxPool1d","maxPool2d","gaussianNoise","gaussianDropout","alphaDropout","masking","falseNegatives","l1l2","Callback","currVal","prevVal","EarlyStopping","restoreBestWeights","monitor","minDelta","patience","baseline","monitorFunc","wait","stoppedEpoch","best","current","getMonitorValue","monitorValue","earlyStopping","DataType","SaverDef","CheckpointFormatVersion","CUSTOM_OPS","registerOp","opFunc","opMapper","tfOpName","category","customExecutor","getRegisteredOp","deregisterOp","getParamValue","paramName","context","resourceManager","inputParam","inputParams","inputIndexStart","inputIndexEnd","getTensor","attrParam","attrParams","tensorsMap","nodeName","parseNodeName","getHashTableHandleByName","contextId","currentContextIds","find","getNodeNameWithContextId","getNodeNameAndIndex","currentContextId","parts","getPadding","explicitPadding","cloneTensor","OperationMapper","_instance","mappersJson","opMappers","mapper","graph","tfNodes","placeholders","initNodes","mapNode","inputNodeNameToKey","outputNodeNameToKey","mapSignatureEntries","allNodes","children","signatureKey","functions","library","function","func","mapFunction","newNode","rawAttrs","getStringParam","tfName","tfDeprecatedName","getStringArrayParam","getNumberParam","getNumericArrayParam","getBoolParam","getBoolArrayParam","getTensorShapeParam","getTensorShapeArrayParam","getDtypeParam","getDtypeArrayParam","getFuncParam","functionDef","nodeDef","inputArg","parseDtypeParam","returnNodeMap","outputArg","defaultOutput","mapArgsToSignature","methodName","mapArgToTensorInfo","parseStringParam","keepCase","decodeBase64","def","parseTensorShapeParam","unknownRank","NodeValueImpl","getInput","getAttr","assertShapesMatchAllowUndefinedSize","shapesEqualAllowUndefinedSize","TensorArray","maxSize","elementShape","identicalElementShapes","dynamicSize","clearAfterRead","closed_","idTensor","keepIds","tensorWithState","cleared","written","readMany","maxIndex","writeMany","totalLength","cumulativeLengths","elementPerRow","sizes","TensorList","elementDtype","maxNumElements","numElements","reshapedTensors","elementIndex","fusedConvAndDepthWiseParams","extraOp","activationFunc","isBiasAdd","isPrelu","isBatchNorm","numArgs","biasArg","preluArg","nmsParams","HashTable","keyDType","valueDType","handle","clear","checkKeyAndValueTensor","$keys","$values","keysLength","valuesLength","findWithDefault","thenFunc","elseFunc","cond","functionMap","executeFunctionAsync","tensorArrayMap","tensorListMap","bodyFunc","condFunc","condResult","argIds","condValue","origResult","resultIds","pred","frameId","enterFrame","exitFrame","nextIteration","tensorArray","addTensorArray","writeTensor","writeTensorArray","getTensorArray","readId","readIndex","gatherId","gatherIndices","gatherDtype","scatterId","scatterIndices","scatterTensor","scatterTensorArray","scatter","concatId","concatTensorArray","concatDtype","splitId","splitTensor","lengths","splitTensorArray","sizeId","closeId","closeTensorArray","clearAndClose","getTensorList","elementDType","addTensorList","numElementsParam","reserve","fromTensor","pushBack","popBack","summarize","squeezedShape","mapped","sameShape","hashTable","addHashTable","getHashTableById","import","ExecutionContext","weightMap","rootContext","frameName","iterationId","contexts","lastId","generateCurrentContextIds","_currentContextIds","contextIdforContexts","newFrame","shift","getExecutionSubgraph","usedNodes","missingInputs","dynamicNode","syncInputs","inputNodeNames","initNodeNames","frontier","isControlFlow","isDynamicShape","isHashTable","child","CONTROL_FLOW_OPS","DYNAMIC_SHAPE_OPS","HASH_TABLE_OPS","GraphExecutor","parent","compiledMap","_weightMap","SEPERATOR","_functions","_functionExecutorMap","_outputs","_inputs","_initNodes","_signature","weightIds","_weightIds","functionExecutorMap","_resourceManager","sortedInputs","sortedOutputs","executionInfo","outNames","inNames","inputNodes","orderedNodes","getNodesInTopologicalOrder","mapInputs","checkInputs","checkInputShapeAndType","mapOutputs","checkOutputs","outputNodeNames","outputNodes","compilationKey","getCompilationKey","tensorsToKeep","getFrozenTensorIds","intermediateTensorConsumerCount","checkTensorForDisposal","ids","getTensorsForCurrentContenxt","_executeAsync","isFunctionExecution","executeWithControlFlow","outputIds","inputIds","mappedInputs","currentContext","added","processStack","missingOutputs","alternativeMsg","processChildNodes","childNode","notInGraph","normalizedName","ResourceManager","hashTableNameToHandle","hashTableMap","GraphModel","modelUrl","executor","findIOHandler","loadSync","producer","minConsumer","Instance","transformGraph","convertTensorMapToTensorsMap","executeAsync","normalizeInputs","normalizeOutputs","newMap","loadGraphModel","fromTFHub","deepMapInternal","mapFn","containedIn","recurse","mappedIterable","childResult","deepZip","zipFn","zipToList","deepZipInternal","deepMapAndAwaitAll","mappedValue","isView","cloneIfTensor","RingBuffer","capacity","RangeError","doubledCapacity","isFull","wrap","isEmpty","relativeIndex","GrowingRingBuffer","INITIAL_CAPACITY","expand","newCapacity","newData","iteratorFromItems","ArrayIterator","iteratorFromFunction","FunctionCallIterator","LazyIterator","stream","prefetch","shouldContinue","ErrorHandlingLazyIterator","FilterIterator","transform","MapIterator","AsyncMapIterator","serial","FlatmapIterator","resolveFully","serialMapAsync","resolveWhile","smallLastBatch","RowMajorBatchIterator","rowMajorBatch","baseErrorHandler","ChainedIterator","TakeIterator","SkipIterator","bufferSize","PrefetchIterator","windowSize","ShuffleIterator","SerialIterator","trav","deepMap","nextFn","upstream","lastRead","serialNext","maxCount","skipped","enableSmallLastBatch","OneToManyIterator","outputQueue","pump","mappedArray","pushAll","iterators","moreIterators","readFromChain","iteratorResult","handleErrors","itemResult","ZipMismatchMode","ZipIterator","mismatchMode","FAIL","currentPromise","afterState","numIterators","iteratorsDone","SHORTEST","LONGEST","nextState","refill","upstreamExhausted","randomInt","chosenIndex","chooseIndex","shuffleExcise","Dataset","datasetFromIteratorFn","columnMajorBatch","deepBatchConcat","forEachAsync","mapAsync","baseIterators","take","skip","reshuffleEachIteration","seed2","int32","toArray","toArrayForTest","iteratorFn","zip","datasets","ds","iteratorFromZipped","batchConcat","MAX_BUFFER_SIZE","TextLineDataset","decodeUTF8","CODE_QUOTE","STATE_OUT","STATE_FIELD","STATE_QUOTE","STATE_QUOTE_AFTER_QUOTE","STATE_WITHIN_QUOTE_IN_QUOTE","CSVDataset","csvConfig","hasHeader","fullColumnNames","columnNamesValidated","columnConfigs","configuredColumnsOnly","delimiter","delimWhitespace","columnNames","setColumnNames","columnNamesFromFile","maybeReadHeaderLine","counts","countAcc","duplicateNames","firstElement","firstLine","parseRow","makeDataElement","features","parsedValue","default","required","isLabel","valueAsNum","getBoolean","validateElementCount","readOffset","readLength","currentState","charAt","MicrophoneIterator","microphoneConfig","isClosed","fftSize","fftSizeLog2","numFrames","numFramesPerSpectrogram","sampleRateHz","columnTruncateLength","audioTrackConstraints","smoothingTimeConstant","includeSpectrogram","includeWaveform","microphoneIterator","mediaDevices","getUserMedia","audio","video","ctxConstructor","AudioContext","webkitAudioContext","audioContext","sampleRate","streamSource","createMediaStreamSource","analyser","createAnalyser","connect","freqData","timeData","spectrogramTensor","waveformTensor","audioDataQueue","getAudioData","flattenQueue","freqDataQueue","getTensorFromAudioDataArray","timeDataQueue","currentFrames","intervalID","setInterval","getFloatFrequencyData","getFloatTimeDomainData","clearInterval","disconnect","getTracks","queue","frameSize","WebcamIterator","webcamVideoElement","webcamConfig","resize","needToResize","resizeHeight","resizeWidth","cropBoxInd","centerCrop","widthCroppingRatio","heightCroppingRatio","widthCropStart","heightCropStart","widthCropEnd","heightCropEnd","cropBox","webcamIterator","facingMode","deviceId","srcObject","src","play","onloadedmetadata","cropAndResizeFrame","expandedImage","resizedImage","DataSource","StringIterator","separator","SplitIterator","impl","SplitIteratorImpl","carryover","chunkResult","ByteChunkIterator","Utf8Iterator","Utf8IteratorImpl","decoder","StringDecoder","chunk","FileChunkIterator","File","chunkSize","fileReader","onabort","isLocalPath","source","FileDataSource","fs","readFileSync","URLDataSource","fileOptions","urlString","request","headers","credentials","cache","redirect","referrer","integrity","uint8Array","statusText","urlChunkIterator","csv","generator","webcam","microphone","assertNotComplex","MathBackendCPU","firstUse","outId","encodedValues","complexTensorInfos","decodedData","tensorData","unaryKernelFunc","cpuBackend","xSize","$dtype","makeTensorInfo","unaryKernelFuncFromImpl","unaryImpl","xi","eluConfig","identityConfig","outVals","leakyReluConfig","createSimpleBinaryKernelImpl","aVals","bVals","resultRank","resultStrides","aRank","bRank","aStrides","bStrides","aBroadcastDims","bBroadcastDims","aLoc","bLoc","preluImpl","xValue","aValue","resultData","preluConfig","reluConfig","relu6Config","realVals","imagVals","complexInfo","complexConfig","realVal","realConfig","zerosTensorInfo","disposeIntermediateTensorInfo","realPart","resultValues","castConfig","binaryKernelFunc","simpleImpl","complexImpl","$aComplex","$aComplexVals","aReal","aImag","aRealVals","aImagVals","$bComplex","$bComplexVals","bReal","bImag","bRealVals","bImagVals","resultRealData","resultImagData","resultReal","resultImag","createComplexBinaryKernelImpl","resultSize","resultRealVals","resultImagVals","aIdx","bIdx","opResult","addImpl","addComplexImpl","addConfig","$shape","$xSize","xData","reshapeConfig","batchMatMul","b3dShape","a3d","b3d","sharedDim","leftDim","rightDim","a3dValues","b3dValues","a3dStrides","b3dStrides","aBatch","aOuterStep","aInnerStep","bInnerStep","bOuterStep","bBatch","resVals","bi","i0","j0","k0","iBlock","jBlock","kBlock","batchOffsetA","batchOffsetB","batchMatMulConfig","_fusedMatMulConfig","addRes","activationRes","intermediates","simpleAbsImpl","absConfig","makeOutput","acosConfig","acoshConfig","addNConfig","outBuf","currVals","transposeImpl","xStrides","newLoc","transposeConfig","allConfig","permutedAxes","reduceShape","reshapedResult","anyConfig","anyVal","argMaxConfig","intermediateTensorInfos","argMinConfig","minIndex","asinConfig","asinhConfig","atanConfig","atan2Impl","bValue","atan2Config","atanhConfig","xValues","poolType","padTop","padLeft","POSITIVE_INFINITY","outputVals","outputBatchStrides","outputRowStrides","outputColStrides","outputBatchOffset","inputBatchOffset","yR","xRCorner","xRMin","xRMax","outputRowOffset","yC","xCCorner","xCMin","xCMax","minMaxValue","avgValue","xROffset","pixel","maxPoolPositions","flattenPositions","maxPositions","xBuf","maxPosition","wR","wC","padFront","outputDepthStrides","yDepth","xDepthCorner","xDepthMin","xDepthMax","outputDepthOffset","yRow","xRowCorner","xRowMin","xRowMax","yCol","xColCorner","xColMin","xColMax","outputColOffset","xDepth","xDepthOffset","xRow","xRowOffset","xCol","avgPoolConfig","avgPool3DConfig","avgMultiplier","dyBuf","bufferSync","dxDepth","dxRow","dxCol","dyDepthCorner","dyRowCorner","dyColCorner","dotProd","wDepth","dyDepth","wRow","dyRow","wCol","dyCol","dyData","dxR","dxC","dyRCorner","dyCCorner","dyR","dyC","batchNormConfig","mVals","varVals","sVals","offVals","offValsLength","sValsLength","varValsLength","mValsLength","offi","mi","si","vi","sliceImpl","isContinous","inBuf","outLoc","inLoc","$size","sliceConfig","batchToSpaceNDConfig","xReshaped","xTransposedReshaped","bincountImpl","weightsVals","weightsDtype","weightsShape","weightsSize","bincountReduceImpl","weightsBuf","bincountConfig","createSimpleUnaryImpl","ceilImpl","ceilConfig","clip","clipAttrs","clipConfig","complexAbsConfig","complexVals","hypot","concatImpl","simplyConcat","colOffset","tIdx","resIdx","col","imagVal","imagConfig","$inputs","reals","imags","realConcated","imagConcated","inputs2D","innerSize","inputsValShapes","finalOutShape","concatConfig","conv2D","isChannelsLast","filterStrides","xBatchStride","xRowStride","xColStride","xChannelStride","yBatchStride","yRowStride","yColStride","yChannelStride","wVals","xOffset1","yOffset1","yOffset2","wOffset1","xOffset2","yOffset3","xOffset3","wOffset3","d1","xVal","d2","conv2DConfig","conv2DBackpropFilterConfig","dW","leftPad","topPad","dyVals","yRMin","yRMax","yCMin","yCMax","conv2DBackpropInputConfig","dyStrides","dxValues","dyValues","fltValues","fltS0","fltS1","fltS2","dyOffset","fltOffset","conv3DConfig","yF","xFCorner","wF","wOffset2","yOffset4","xOffset4","wOffset4","conv3DBackpropFilterV2Config","dw","dwValues","dwS0","dwS1","dwS2","dwS3","dyS0","dyS1","dyS2","dyS3","xS0","xS1","xS2","xS3","frontPad","yFMin","yFMax","conv3DBackpropInputV2Config","dxS0","dxS1","dxS2","dxS3","fltS3","xFMin","cosConfig","coshConfig","cropAndResizeConfig","cropHeight","cropWidth","boxVals","boxIndVals","imageVals","inStride","outStride","startInd","y1","y2","bInd","heightScale","widthScale","yInd","ind","topInd","bottomInd","yLerp","xInd","leftInd","rightInd","xLerp","topLeft","topRight","bottomLeft","closestX","closestY","inInd","outInd","cumsumConfig","permutedAxis","resultDtype","finalDim","indexAdjuster","prevIdx","reverseTransposedResult","denseBincountConfig","depthToSpaceConfig","outputHeight","outputWidth","outputDepth","outputIdx","inH","offsetH","inW","offsetD","inputIdx","depthwiseConv2dNative","chMul","depthwiseConv2dNativeConfig","depthwiseConv2dNativeBackpropFilterConfig","dm","depthwiseConv2dNativeBackpropInputConfig","diagConfig","dilation2dConfig","filterVals","filterRank","outSize","outRank","hBeg","wBeg","curVal","hIn","wIn","filterIndex","dilation2dBackpropFilterConfig","hMax","wMax","dilation2dBackpropInputConfig","hInMax","wInMax","equalImpl","equalConfig","a1","a2","a3","a4","a5","erfConfig","expImpl","expConfig","$dim","expandDimsConfig","expm1Impl","expm1Config","multiplyImpl","multiplyComplexImpl","multiplyConfig","realDivImpl","realDivConfig","subImpl","subComplexImpl","subConfig","fftBatch","innerDim","inputVals","real2D","imag2D","fftImpl","$realInfo","$imagInfo","inputSize","fftRadix2","realInfo","imagInfo","sizeInfo","sizeInfoCopy","divRealInfo","divImagInfo","divRealVals","divImagVals","term","fourierTransformByMatmul","evenComplex","evenRealVals","evenImagVals","evenShape","evenRealInfo","evenImagInfo","evenTensorInfo","oddComplex","oddRealVals","oddImagVals","oddShape","oddRealInfo","oddImagInfo","oddTensorInfo","$evenComplex","$evenRealVals","$evenImagVals","$evenShape","$evenRealInfo","$evenImagInfo","$evenTensorInfo","$oddComplex","$oddRealVals","$oddImagVals","$oddShape","$oddRealInfo","$oddImagInfo","$oddTensorInfo","eShape","eRealInfo","eImagInfo","exponentInfo","addPart","subPart","addPartReal","subPartReal","addPartImag","subPartImag","$realVals","$imagVals","fftConfig","input2D","resultReshaped","fillValues","fillConfig","flipLeftRightConfig","batchIdx","batchOffset","rowOffset","coordX","outputValue","floorImpl","floorConfig","floorDivImpl","floorDivConfig","fusedConv2DConfig","resultOld","fusedDepthwiseConv2DConfig","oldResult","gatherNdConfig","paramsSize","numSlices","indicesData","paramsData","flattenIndex","gatherV2Impl","indicesBuf","flattenOutputShape","originalLoc","indicesIdx","indicesIndex","originalIndex","gatherV2Config","$batchDims","shapeInfo","flattenX","greaterImpl","greaterConfig","greaterEqualImpl","greaterEqualConfig","ifftConfig","isFiniteConfig","isInfConfig","isNaNConfig","lessImpl","lessConfig","lessEqualImpl","lessEqualConfig","linSpaceImpl","linSpaceConfig","logImpl","logConfig","log1pConfig","logicalAndImpl","logicalAndConfig","logicalNotConfig","logicalOrImpl","logicalOrConfig","lRNConfig","channels","maxD","sumAcrossChannels","currentChannel","beginSumOffset","endSumOffset","lRNGradConfig","dySize","yValues","depthBegin","depthEnd","dyi","maxImpl","maxOutShape","maxConfig","maximumImpl","maximumConfig","maxPoolConfig","maxPool3DConfig","maxPosBuf","maxPool3dPositions","maxPoolWithArgmaxConfig","pooled","maxPools","maxPoolWithArgmaxImpl","pooledDataId","indexesDataId","permutedX","sumConfig","meanConfig","toDispose","reduceSizeScalar","minConfig","minimumImpl","minimumConfig","mirrorPadConfig","coords","inIndex","modImpl","rem","modConfig","logitsRank","maxLogit","expandedShape","maxLogitReshaped","sumExp","sumReshaped","softmaxConfig","multinomialConfig","probabilities","numEvents","probVals","resShape","cdf","outOffset","sampleId","negImpl","xDtype","minusOne","negConfig","nonMaxSuppressionV3Config","nonMaxSuppressionV4Config","nonMaxSuppressionV5Config","maxOutputSizeVal","iouThresholdVal","scoreThresholdVal","softNmsSigmaVal","notEqualImpl","notEqualConfig","oneHotConfig","indicesVal","imagPart","zerosLikeConfig","onesLikeConfig","pack","expandedT","packConfig","padV2Config","powImpl","powConfig","prodImpl","outDtype","prodConfig","rangeImpl","rangeConfig","reciprocalConfig","resizeBilinearConfig","imagesStrides","oldHeight","oldWidth","effectiveInputSize","effectiveOutputSize","effectiveRowSizeRatio","effectiveColSizeRatio","sourceFracRow","sourceRowFloor","rowFrac","sourceRowCeil","topRowOffset","botRowOffset","sourceFracCol","sourceColFloor","colFrac","sourceColCeil","topLeftOffest","botLeftOffset","topRightOffset","botRightOffest","xHeight","xWidth","yHeight","yWidth","effectiveXSize","effectiveYSize","bOffset","topDxRIndex","bottomDxRIndex","topDxROffset","bottomDxROffset","dxRLerp","inverseDxRLerp","leftDxCIndex","rightDxCIndex","dxCLerp","inverseDxCLerp","topLeftRCOffset","topRightRCOffset","bottomLeftRCOffset","bottomRightRCOffset","inverseDxRLerpTimesInverseDxCLerp","inverseDxRLerpTimesDxCLerp","dxRLerpTimesInverseDxCLerp","dxRLerpTimesDxCLerp","dyVal","resizeNearestNeighborConfig","outputOffset","sourceNearestRow","sourceNearestCol","invHeightScale","invWidthScale","winHeight","winWidth","startRLerp","startDyR","startCLerp","startDyC","accum","dyRIndex","dyROffset","dyCIndex","dyCOffset","reverseConfig","$dims","rotateWithOffsetConfig","centerX","centerY","sinFactor","cosFactor","coordY","roundConfig","rsqrtImpl","rsqrtConfig","scatterImpl","sumDupeIndices","flattenShape","updatesData","scatterNdConfig","selectConfig","conditionRank","tValues","eValues","seluConfig","sigmoidConfig","signConfig","sinConfig","sinhConfig","tooLarge","tooSmall","expX","softplusConfig","spaceToBatchNDConfig","completePaddings","paddedX","reshapedPaddedShape","permutedReshapedPaddedPermutation","paddedXReshaped","paddedXT","sparseToDenseConfig","splitVConfig","sliceT","sqrtConfig","squareConfig","squaredDifferenceImpl","squaredDifferenceConfig","stepAttrs","stepConfig","stridedSliceImpl","stridedSliceConfig","sliced","tanConfig","tileImpl","topKImpl","allTopKVals","allTopKIndices","topKVals","topKIndices","uniqueImpl","uniqueElements","inputBuffer","uniqueIndices","is1DTensor","axisValues","uniqueIndex","outputTmpShape","outputBuffer","uniqueElementIndex","outputValues","kernelConfigs","valueRank","outIndex","tempRes","expanded","scalarValue","segmentId","maskCasted","sumTensorInfo","WEBGL_ATTRIBUTES","antialias","premultipliedAlpha","preserveDrawingBuffer","stencil","failIfMajorPerformanceCaveat","getWebGLContext","webGLVersion","newCtx","OffscreenCanvas","createCanvas","addEventListener","ev","preventDefault","getWebGLRenderingContext","gl","isContextLost","disable","DEPTH_TEST","STENCIL_TEST","BLEND","DITHER","POLYGON_OFFSET_FILL","SAMPLE_COVERAGE","enable","SCISSOR_TEST","CULL_FACE","cullFace","BACK","PackingScheme","TextureUsage","PhysicalTextureType","getUnpackedMatrixTextureShapeWidthHeight","getDenseTexShape","getPackedMatrixTextureShapeWidthHeight","getTextureConfig","textureHalfFloatExtension","glany","internalFormatFloat","internalFormatHalfFloat","internalFormatPackedHalfFloat","internalFormatPackedFloat","textureFormatFloat","downloadTextureFormat","downloadUnpackNumChannels","defaultNumChannels","textureTypeHalfFloat","textureTypeFloat","getNumber","R32F","R16F","RGBA16F","RGBA32F","RED","HALF_FLOAT","FLOAT","RGBA","HALF_FLOAT_OES","callAndCheck","returnValue","getError","NO_ERROR","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","INVALID_FRAMEBUFFER_OPERATION","OUT_OF_MEMORY","CONTEXT_LOST_WEBGL","getWebGLErrorMessage","checkWebGLError","canBeRepresented","getExtensionOrThrow","extensionName","throwIfNull","getExtension","lineNumberRegex","validateProgram","program","getProgramParameter","VALIDATE_STATUS","getProgramInfoLog","bindVertexBufferToProgramAttribute","attribute","arrayEntriesPerItem","itemStrideInBytes","itemOffsetInBytes","getAttribLocation","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","enableVertexAttribArray","bindTextureToProgramUniformSampler","texture","uniformSamplerLocation","textureUnit","maxTextureUnit","MAX_COMBINED_TEXTURE_IMAGE_UNITS","glTextureUnit","TEXTURE0","validateTextureUnit","activeTexture","bindTexture","TEXTURE_2D","bindTextureUnit","uniform1i","bindColorTextureToFramebuffer","framebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","unbindColorTextureFromFramebuffer","validateFramebuffer","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","getFramebufferErrorMessage","returnTOrNull","failureMessage","tOrNull","getBatchDim","dimsToSkip","getRowsCols","getShapeAs3D","shapeAs3D","isEven","isReshapeFree","shape1Cols","shape2Cols","MAX_TEXTURE_SIZE","MAX_TEXTURES_IN_SHADER","hasExtension","isWebGLVersionEnabled","createFloatTextureAndBindToFramebuffer","texConfig","createTexture","texImage2D","frameBuffer","createFramebuffer","isFrameBufferComplete","deleteTexture","deleteFramebuffer","getGlslDifferences","varyingVs","varyingFs","texture2D","defineOutput","defineSpecialNaN","defineSpecialInf","defineRound","getLogicalCoordinatesFromFlatIndex","getFlatIndexFrom3D","getParameter","getWebGLMaxTextureSize","MAX_TEXTURE_IMAGE_UNITS","getMaxTexturesInShader","queryTimerVersion","getWebGLDisjointQueryTimerVersion","isCapableOfRenderingToFloatTexture","COLOR_BUFFER_HALF_FLOAT","createHalfFloatTextureAndBindToFramebuffer","isDownloadFloatTextureEnabled","isWebGLFenceEnabled","fenceSync","ENCODE_FLOAT_SNIPPET","DecodeMatrixProgram","packedInputs","packedOutput","outPackingScheme","DENSE","texShape","glsl","userCode","DecodeMatrixPackedProgram","EncodeFloatProgram","outTexUsage","DOWNLOAD","EncodeFloatPackedProgram","EncodeMatrixProgram","inputIsUnsignedByte","EncodeMatrixPackedProgram","mainLoop","createAndConfigureTexture","internalFormat","textureFormat","textureType","maxTextureSize","tex2d","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","getInternalFormatForFloat32MatrixTexture","textureConfig","getInternalFormatForFloat16MatrixTexture","getInternalFormatForUnsignedBytesMatrixTexture","getInternalFormatForPackedMatrixTexture","getInternalFormatForFloat16PackedMatrixTexture","GPGPUContext","outputTexture","disposed","vertexAttrsAreBound","itemsToPoll","glVersion","setWebGLContext","COLOR_BUFFER_FLOAT","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","textureFloatExtension","colorBufferFloatExtension","colorBufferHalfFloatExtension","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","indexBuffer","ELEMENT_ARRAY_BUFFER","finish","deleteBuffer","UNSIGNED_BYTE","dataForUpload","texelDataType","downloadMatrixDriver","downloadTarget","readPixels","physicalRows","physicalCols","gl2","PIXEL_PACK_BUFFER","getBufferSubData","bindTextureToFrameBuffer","bufferSizeBytes","bytesPerFloat","STREAM_READ","unbindTextureToFrameBuffer","fenceContext","createFence","pollFence","isFencePassed","sync","SYNC_GPU_COMMANDS_COMPLETE","flush","clientWaitSync","ALREADY_SIGNALED","CONDITION_SATISFIED","beginQuery","endQuery","isQueryAvailable","packedRGBA","fragmentShaderSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","shaderInfoLog","lineNumberRegexResult","exec","lineNumber","shaderLines","linesWithLineNumbers","maxLineLength","beforeErrorLines","errorLine","afterErrorLines","logShaderSourceAndInfoLog","getShaderInfoLog","vertexShader","vertexShaderSource","VERTEX_SHADER","createProgram","attachShader","linkProgram","LINK_STATUS","debug","setProgram","deleteProgram","useProgram","uniformName","shouldThrow","getUniformLocation","inputMatrixTexture","uniformLocation","throwIfNoProgram","outputMatrixTexture","setOutputMatrixTextureDriver","outputPackedMatrixTexture","startRow","startColumn","setOutputMatrixWriteRegionDriver","debugValidate","drawElements","TRIANGLES","UNSIGNED_SHORT","disjointQueryTimerExtension","getQueryTimerExtension","ext","getQueryTimerExtensionWebGL2","createQuery","TIME_ELAPSED_EXT","getQueryTimerExtensionWebGL1","createQueryEXT","beginQueryEXT","endQueryEXT","getQueryTime","getQueryParameter","QUERY_RESULT","getQueryObjectEXT","QUERY_RESULT_EXT","available","QUERY_RESULT_AVAILABLE","disjoint","GPU_DISJOINT_EXT","QUERY_RESULT_AVAILABLE_EXT","addItemToPoll","linearSearchLastTrue","isDoneFn","resolveFn","pollItems","downloadAndDecode","outputMatrixTextureMaybePacked","viewport","scissor","makeShader","inputsInfo","usesPackedTextures","prefixSnippets","logicalShape","isUniform","inputPrefixSnippet","inputSamplingSnippet","inInfo","outShapeInfo","getPackedSamplerFromInInfo","getSamplerFromInInfo","inputInfo","texName","texFuncSnippet","funcName","broadcastDims","getCoordsDataType","rankDiff","coordsSnippet","unpackedCoordsSnippet","isInputScalar","isOutputScalar","getPackedSamplerAtOutputCoords","outTexShape","inTexShape","getSamplerAtOutputCoords","getInputSamplingSnippet","floatTextureSampleSnippet","getFloatTextureSampleSnippet","outputSamplingSnippet","floatTextureSetOutputSnippet","shaderPrefix","SAMPLE_1D_SNIPPET","SAMPLE_2D_SNIPPET","SAMPLE_3D_SNIPPET","getShaderPrefix","isPacked","packedTexShape","getOutputPacked1DCoords","texelsInLogicalRow","getOutputPacked2DCoords","texelsInBatch","getOutputPacked3DCoords","texelsInBatchN","getOutputPackedNDCoords","getPackedOutputSamplingSnippet","getFloatTextureSetRGBASnippet","getOutput2DCoords","coordsFromIndexSnippet","getOutput3DCoords","getOutput4DCoords","getOutput5DCoords","getOutput6DCoords","getOutputSamplingSnippet","getFloatTextureSetRSnippet","SHADER_PACKED_PREFIX","texNumR","texNumC","tNumR","tNumC","getFlatOffsetUniformName","getSamplerScalar","getUniformSampler","getSampler1D","squeezeInputInfo","getSqueezedParams","getSampler2D","stride0","stride1","getSampler3D","stride2","getSampler4D","stride3","getSampler5D","stride4","getSampler6D","getPackedSamplerScalar","getPackedSampler1D","getPackedSampler2D","valuesPerRow","getPackedSampler3D","getPackedSamplerND","newInputInfo","validateBinaryAndProgram","shapeInfos","texShapeA","texShapeB","texData","addImplCPU","bincountImplCPU","bincountReduceImplCPU","ceilImplCPU","concatImplCPU","expImplCPU","expm1ImplCPU","floorImplCPU","gatherV2ImplCPU","greaterImplCPU","lessImplCPU","linSpaceImplCPU","logImplCPU","maxImplCPU","maximumImplCPU","minimumImplCPU","multiplyImplCPU","negImplCPU","prodImplCPU","rangeImplCPU","rsqrtImplCPU","simpleAbsImplCPU","sliceImplCPU","stridedSliceImplCPU","subImplCPU","tileImplCPU","topKImplCPU","transposeImplCPU","uniqueImplCPU","getVecChannels","getChannels","PackProgram","outOfBoundsCondition","getOutOfBoundsCondition","setup","getSetup","sourceCoords","coord","getSourceCoordsArr","getOutput","ReshapePackedProgram","thisRC","TextureManager","gpgpu","numUsedTextures","numFreeTextures","_numBytesAllocated","_numBytesFree","freeTextures","logEnabled","usedTextures","shapeRC","usage","physicalTexType","getPhysicalFromLogicalTextureType","getKeyFromTextureShape","texBytes","computeBytes","newTexture","PACKED_2X2_FLOAT32","createPackedMatrixTexture","PACKED_2X2_FLOAT16","createFloat16PackedMatrixTexture","UNPACKED_FLOAT32","createFloat32MatrixTexture","UNPACKED_FLOAT16","createFloat16MatrixTexture","PACKED_4X1_UNSIGNED_BYTE","createUnsignedBytesMatrixTexture","logicalTexType","deleteTexThreshold","deleteMatrixTexture","texList","texIndex","freeRatio","tex","internalFormatForPhysicalTexType","packedWidth","packedHeight","numBytesForInternalFormat","UPLOAD","RENDER","getPhysicalTextureForRendering","PIXELS","shapeRowsCol","UnaryOpProgram","opSnippet","ABS","CLONE","UnaryOpPackedProgram","UnpackProgram","getSourceCoords","binaryCaches","MathBackendWebGL","pendingRead","pendingDisposal","WeakSet","dataRefCount","numBytesInGPU","uploadWaitMs","downloadWaitMs","warnedAboutMemory","warnedAboutCPUBackend","pendingDeletes","binaryCache","gpgpuCreatedLocally","textureManager","numMBBeforeWarning","screen","devicePixelRatio","checkNumericalProblems","complexParentRefCount","textureData","runWebGLProgram","convertAndCacheOnCPU","shouldTimeProgram","activeTimers","getValuesFromTexture","subscribers","tmpDownloadTarget","tmpData","createBufferFromTexture","createAndWaitForFence","downloadFloat32MatrixFromBuffer","dTypeVals","tmpTarget","downloadMatrixFromPackedTexture","shouldUsePackedProgram","downloadByteEncodedFloatMatrixFromOutputTexture","oldActiveTimers","newActiveTimers","outerMostTime","programTimersStack","flattenedActiveTimerQueries","flattenedActiveTimerNames","ms","numBytesInGPUAllocated","numBytesAllocated","numBytesInGPUFree","numBytesFree","startMs","endMs","waitForQueryAndGetTime","timerQuery","releaseGPUData","origDataId","releaseTexture","uploadToGPU","sizeThreshold","getCPUBackend","compileAndRun","shouldExecuteOnCPU","outValues","packedUnaryOp","afterShape","input3DShape","input3D","afterShapeAs3D","outputDtype","customSetup","preventEagerUnpackingOfOutput","outData","texelShape","dataToDispose","inputsData","uniformValues","unpackTensor","packTensor","savedInput","packedReshape","outputData","keyInputs","hasOffset","keyUserCode","binary","getAndSaveBinary","inputInfos","inShapeInfos","webGLProgram","infLoc","nanLoc","uniformLocations","startTimer","outTex","setOutputPackedMatrixTexture","setOutputMatrixTexture","uniform1f","varLoc","varOffsetLoc","uniform1fv","setInputMatrixTexture","executeProgram","endTimer","unpacked","getBinary","HTMLCanvasElement","remove","floatPrecisionValue","debugFlag","underflowCheckValue","logShape","maxTexSize","squeezeResult","isByteArray","tempDenseInputHandle","uploadDenseMatrixToTexture","getTexture","preventEagerUnpacking","encodedOutputTarget","outputTexData","acquireTexture","float32Values","float32ToTypedArray","texType","mb","BinaryOpProgram","BinaryOpPackedProgram","checkOutOfBounds","supportsBroadcasting","checkOutOfBoundsString","realTensorInfo","imagTensorInfo","LEAKYRELU","LEAKYRELU_PACKED","$alpha","PRELU","PRELU_PACKED","packedOpSnippet","cpuKernelImpl","webglBackend","supportsComplex","aData","bData","complexParts","aPart","bPart","aHandle","bHandle","complexOutput","mapActivationToShaderProgram","packed","CHECK_NAN_SNIPPET","MatMulPackedProgram","addBias","hasPreluActivation","hasLeakyreluActivation","sharedDimensionPacked","aSample","bSample","aSwizzle","bSwizzle","activationSnippet","applyActivationSnippet","addBiasSnippet","batchASnippet","batchBSnippet","BinaryOpComplexProgram","MUL","realProgram","imagProgram","xTexData","MeanProgram","reduceInfo","divisor","windowSizeNearestVec4","windowSizeVec4Remainder","updateSnippet","toPrecision","ReduceProgram","reduceType","initializationValue","compareOp","vecType","reductionType","reductionStages","stages","getReductionStages","previousResult","TransposeProgram","switched","originalOrder","switchedCoords","getSwitchedCoords","TransposePackedProgram","outputOrder","switchedOrder","nextColumn","getc","sumInputIsTransposed","sumInput","sumOutShape","reshapedInput","reduced","sumImpl","batchMatMulImpl","a3dShape","hasBias","hasPreluActivationWeights","hasLeakyreluAlpha","fusedActivation","aVec","bVec","shouldReshapeB","aVec3d","bVec3d","$leakyreluAlpha","outReshaped","ADD","addKernelFunc","AddNProgram","snippets","operation","AddNPackedProgram","midIndex","leftSide","rightSide","a2D","ArgMinMaxProgram","firstPass","compOp","indexSnippet","ArgMinMaxPackedProgram","sourceLocSetup","sourceRank","sourceLocDType","inChannel","intChannels","srcRCoords","srcGCoords","srcBCoords","srcACoords","fetchCandidateIdx","fetchValue","getBestIndicesAChannelSnippet","argReduce","bestIndicesA","argReducePacked","argMinMaxReduce","CHECK_NAN_SNIPPET_BINARY","Pool2DProgram","computePositions","isAvgPool","batchFlattenPositionStr","flattenPositionStr","filterWidthNearestVec4","filterWidthVec4Remainder","Pool3DProgram","avgPoolProgram","AvgPool2DBackpropProgram","AvgPool3DBackpropProgram","avgPoolGrad3DConfig","avgPoolBackpropProgram","BatchNormProgram","meanShape","varianceShape","offsetShape","scaleShape","offsetSnippet","scaleSnippet","BatchNormPackedProgram","finalInputs","SliceProgram","destSize","uniformPart","getCoords","startLoc","getUniformLocationNoThrow","uniform1iv","SlicePackedProgram","sourceLoc","getChannel","upperRow","lowerRow","getCustomSetupFunc","newTexData","shallowSlice","reshapedIntermediate","transposedIntermediate","reshapedIntermediate2","CEIL","ClipProgram","minLoc","maxLoc","ClipPackedProgram","clipByValueConfig","ComplexAbsProgram","makeComplexComponentTensorInfo","complexTensor","complexPart","programInputs","ConcatProgram","offsets","lastIndex","lastShift","ConcatPackedProgram","lastChannels","allChannels","getValueSnippet","shiftedChannels","channelIdx","tensors2D","computeTensors2D","Conv2DProgram","inputDepthNearestVec4","inputDepthVec4Remainder","rowDim","colDim","channelDim","Conv3DProgram","Im2ColPackedProgram","itemsPerBlockRow","unrolled","conv2dByMatMul","sharedMatMulDim","outerShapeX","outerShapeFilter","batchMatMulWillBeUnpacked","reshapeWillBeExpensive","originalXTexDataShape","filterReshaped","pointwiseConv","pointwiseConvTexData","conv2dWithIm2Row","x2ColShape","xSqueezed","w2Row","im2ColProgram","im2Col","im2ColReshaped","matmulProgram","Conv2DDerFilterProgram","Conv2DDerInputProgram","Conv3DDerFilterProgram","Conv3DDerInputProgram","conv3DBackpropInputConfig","CHECK_NAN_SNIPPET_UNARY","CropAndResizeProgram","imageShape","boxShape","methodId","inputHeightFloat","inputWidthFloat","heightRatio","inY","widthRatio","inX","CumSumProgram","idxString","getFinalCoord","prevResult","DepthToSpaceProgram","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","DepthwiseConv2DProgram","hasLeakyReluAlpha","xNumRows","xNumCols","channelMul","DepthwiseConvPacked2DProgram","texelsAcross","texelC","nextTexelOffset","DepthwiseConv2DDerFilterProgram","DepthwiseConv2DDerInputProgram","DiagProgram","flat","Dilation2DProgram","dilation2DConfig","EXP","EXPM1","FFTProgram","component","exponentMultiplierSnippet","resultDenominator","opString","complexOutputReshaped","FillProgram","valueLoc","FlipLeftRightProgram","FLOOR","FromPixelsProgram","FromPixelsPackedProgram","fromPixelsConfig","tempPixelHandle","uploadPixelDataToTexture","shouldPackDepthwiseConv","GatherNDProgram","stridesType","strideString","flattenIndices","GatherProgram","currentCoords","LRNProgram","rad","powOperator","basis","LRNPackedProgram","LRNConfig","LRNGradProgram","LRNGradConfig","maxInputIsTransposed","maxInput","maxInputValues","reshapedOutput","maxPoolProgram","MaxPool2DBackpropProgram","MaxPool3DBackpropProgram","maxPoolGrad3DConfig","maxPool3dPositionsProgram","maxPoolBackpropProgram","maxPoolPositionsProgram","maxPoolBackPropProgram","poolOutput","meanInputIsTransposed","meanInput","meanInputValues","meanOutShape","meanImpl","MirrorPadProgram","unpackedCoords","MirrorPadPackedProgram","cLimit","padSetup","MultinomialProgram","seedLoc","realDiv","SUB","maxLogitsReshaped","sumExpReshaped","probs","NEG","OneHotProgram","numIndices","PadProgram","PadPackedProgram","componentSetup","paddingArea","ResizeBilinearProgram","effectiveInSize","effectiveOutSize","sourceFracIndexRC","ResizeBilinearPackedProgram","ResizeBilinearBackpropProgram","ResizeNearestNeighborProgram","roundBase","ResizeNearestNeigborBackpropProgram","ReverseProgram","inCoords","getInCoord","ReversePackedProgram","nextRow","inCoordsArray","channels1","getR","getG","getB","getA","RotateProgram","centerXString","centerYString","fillSnippet","ScatterProgram","updateSize","updatesRank","summingDupeIndex","indicesString","indicesSnippet","updatesString","updatesSnippet","SelectProgram","cRank","cCoords","abCoords","cCoordVars","abCoordVars","reshapedPaddedX","StridedSliceProgram","inputDtype","newCoords","outputAxis","TileProgram","SegmentOpProgram","segOpInfo","segOpType","checkValueOutOfBounds","checkSegmentIdOutOfBounds","segOpCompute","rangeInfo","tileInfo","regex","opts","exact","Configs","table_width","table_truncate","dtype_test_lim","table_max_row","table_max_col_in_console","utils","Utils","__in_object","df_list","df_object","duplicate_col_count","max_length","a_key","column","col_name","column_length","null_array","DataFrame","row_indexes","col_i","r_index","column_set","df_columns","not_exist","col_index","row_value","new_arr","Series","_set_column_property","col_vals","col_data","col_names","column_names","addColumn","csvFilePath","csvContent","require","writeFileSync","webCSV","encodeURI","params_needed","_throw_wrong_params_error","to_drop","new_col_data","new_dtype","col_idx","dtypes","old_cols","new_columns","df","__set_col_property","__update_frame_in_place","__key_in_object","new_data","new_index","data_idx","__remove_arr","row_data_tensor","tf","__set_index","indexLoc","row_len","indx","shuffled_index","iloc","other","__frame_is_compactible_for_operation","__get_ops_tensors","sum_vals","__get_df_from_tensor","operands","__get_tensor_and_idx","tensor_vals","sf","arraySync","col_data_tensor","median","__median","std","__count_nan","dp","new_vals","__round","ops","df_data","temp_val","temp_data","curr_val","__get_col_values","__cum_ops","inplace","copy","__reset_index","drop","numeric_df","select_dtypes","stats_arr","col_series","_stats","include","original_col_vals","__supported_dtypes","val_sums","temp_sum","abs_data","t_axis","operators","column_index","operator","data_value","elem","eval","new_df","column_name","data_length","new_val","new_dtypes","__get_t","new_col_names","col_dict","key_column","data1","data2","column_1_Unique","__unique","column_2_unique","col_value","col2_value","column_Unique","GroupBy","__arr_to_obj","__temp","final_data","nan_val","__isna","df_values","index_data","__is_function","callable","callable_data","new_row","__is_1D_array","__logical_ops","new_col_data_obj","temp_col_data","replaced_arr","old_arr","inner_arr","logical_type","int_vals","__is_number","series","__map_int_to_bool","new_array","__is_undefined","tensors_arr","this_tensor","other_tensor","new_values","Plot","new_types","col_types","col_values","new_col_values","temp_col","new_col_obj","cname","_unique","_index","data_set","_nunique","old_col_names","old_index","row_index","asc","index_val","__sort_by","column_val","row_data","col_obj","_res","_get_row_and_col_values","index_arr","df_index","sorted_val","__sort","duplicate_obj","__get_duplicate","indexs","row_i","df2","__is_object","d_types","Ndframe","NDframe","_read_array","_read_object","__is_string","__replace_undefined_with_NaN","_set_col_types","row_arr","data_arr","infer","new_idx","temp_arr","records","header","csv_str","json_arr","get_width","get_truncate","max_row","get_max_row","max_col_in_console","get_max_col_in_console","table_config","col_len","sub_idx","values_1","value_2","first_4_cols","last_3_cols","df_subset_1","df_subset_2","truncate","table_data","table","key_col","data_tensors","col1_index","col2_index","col1_value","key2","selected_column","group_col","key1","gp","group_col_name","ops_name","ops_map","is_array","local","count_group","arithemetic","to_DataFrame","col_gp","operations","toLocaleLowerCase","key_1","key_val","key_2","k_data","key_data","callable_rslt","ndframe","isColumnSplit","row_split","__range","row_idx","data_values","row_val","max_rowIndex","max_colIndex","final_row","__convert_2D_to_1D","__check_series_op_compactibility","div_result","tensor1","tensor2","_throw_str_dtype_error","_remove_nans","max_result","sorted_values","arr_obj","range_idx","sorted_idx","_sort_arr_with_index","is_callable","s_data","data_dict","__bool_ops","old_values","isna_vals","isna","ascending","sorted_index","sort_values","b_ops","r_series","l_series","l_val","r_val","Boolean","el","Str","timeseries","TimeSeries","preprocessed","__create_new_sf_from","f_char","l_char","new_str","position","final_arr","l_str","r_str","searchValue","replaceValue","startIndex","endIndex","splitVal","valToJoin","joinChar","r_char","new_char","__in_format","__monthName","__weekName","format_values","generate_format","date_list","date_string","format_dateString","__apply_format","valueDate","__is_validDate","is_timestamp","string2int","format_list","int2string","date_instance","toDateString","__date_ops","getMonth","getHours","getDay","getFullYear","getDate","getSeconds","getMinutes","to_datetime","destructive","selected","population","cols_len","cols_arr","first_col_len","rows_len","rows_arr","temp_row","isSeries","full_arr","ele","arr_val","lim","int_tracker","float_tracker","string_tracker","bool_tracker","get_dtype_test_lim","__checker","arr_map","return_val","null_count","val_count","result_arr","ele_arr","modes","arr_ele","gen_num","randi","recursive","recur_val","outer_val","tensor_data","zero_data","isNode","temp_obj","rslt_obj","arr1","arg1","read_csv","configs","tfdata","read_json","read_excel","sheet","header_index","data_index","workbook","XLSX","worksheet","Sheets","SheetNames","R","C","cell_ref","how","on","left_col_index","right_col_index","left_index","right_index","left_key_dict","right_key_dict","left_values","right_values","left_value","left_key_comb","left_value_filter","right_value","right_key_comb","right_value_filter","__create_columns","outer","inner","left_merge","right_merge","left_col","right_col","column_duplicate","temp_column","basic","left_keys","right_keys","key_array","left_row","left_i","left_row_row","right_row","r_i","right_row_row","inner_data","nan_array","merge","LabelEncoder","in_data","output_data","OneHotEncoder","onehot_data","__zeros","elem_index","MinMaxScaler","StandardScaler","date_range","period","freq","freq_list","freq_split","start_date","end_date","start_range","end_range","freq_type","start_year","end_year","month_end","day_end","range_array","offset_count","month_range","set_dateProps","toLocalString","date","ftype","rslt","d_array","r_array","new_date","valueOf","setYear","setMonth","setSeconds","setDate","setHours","setMinutes","toLocaleString","end_month","minus","y_val","m_range","prefix_sep","prefix_labels","get_dummies","is_dataframe","name_column","column_data","one_hotColumns","one_hotData","dt","final_columns","_version","Plotly","ret_params","__get_plot_params","this_config","trace","newPlot","xaxis","yaxis","____check_if_cols_exist","c_name","hoverinfo","automargin","cols_to_plot","cols_2_show","cols_data","root","parser_exit","SyntaxError","logHypot","_b","plus","loh","re","im","xx","cosm1","noIM","oneMinus","onePlus","places","E","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","P","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","comparedTo","cmp","xdL","ydL","xd","yd","pr","Ctor","sd","tinyPow","taylorSeries","times","cos2x","toLessThanHalfPi","cubeRoot","cbrt","rep","t3","t3plusx","isZero","toExponential","divide","eq","decimalPlaces","dividedBy","dividedToIntegerBy","divToInt","equals","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","inverseCosine","halfPi","isNeg","getPi","inverseHyperbolicCosine","lte","ln","inverseHyperbolicSine","inverseHyperbolicTangent","wpr","xsd","inverseSine","inverseTangent","px","isNegative","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","carry","getPrecision","sine","sin2_x","squareRoot","tangent","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","d0","n0","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yn","intPow","toSignificantDigits","toSD","multiplyInteger","compare","aL","bL","subtract","more","prodL","qd","remL","rem0","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","zs","isOdd","maxOrMin","ltgt","guard","c0","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","pi","useDefaults","defaults","getRandomValues","randomBytes","isDecimalInstance","log10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","createError","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","p2","A","B","D","gcd","eps","cont","rec","excludeWhole","whole","dec","cycLen","cycleLen","cycOff","rem1","rem2","modpow","cycleStart","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","iteratee","resIndex","baseTimes","isArguments","isBuffer","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","asciiSize","baseProperty","string","baseAssignValue","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isObject","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","tag","isFunc","stacked","subValue","objectCreate","baseCreate","proto","isSymbol","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","isPrototype","nativeKeys","nativeKeysIn","isProto","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","symbolProto","symbolToString","baseToString","stringToPath","baseSlice","baseIndexOf","strSymbols","chrSymbols","freeExports","nodeType","freeModule","allocUnsafe","cloneArrayBuffer","dataView","reFlags","regexp","symbolValueOf","symbol","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","setToArray","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","nodeUtil","types","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","hasUnicode","unicodeSize","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","CLONE_DEEP_FLAG","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsMap","baseUnary","nodeIsMap","baseIsRegExp","nodeIsRegExp","isRegExp","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseKeysIn","baseForOwn","baseIteratee","baseExtremum","baseGt","resolver","memoized","Cache","basePropertyDeep","castFunction","toInteger","MAX_ARRAY_LENGTH","nativeMin","toFinite","remainder","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","castSlice","charsEndIndex","stringToArray","reTrimEnd","chars","stringSize","omission","strLength","newEnd","baseValues","matrix","predictable","randomSeed","_extends","freeze","MATRIX_OPTIONS","NUMBER_OPTIONS","is","extend","prop","deepStrictEqual","dependencies","meta","assertAndCreate","scope","deps","properties","pickShallow","stripOptionalNotation","dependency","isOptionalDependency","missingDependencies","assertDependencies","isFactory","createComplexClass","mathjs","phi","strRe","strIm","hasBase","isClass","hasher","hash","BigNumber","createBigNumberPi","createBigNumberClass","_ref","isBigNumber","fromJSON","createMatrixClass","Matrix","isMatrix","storage","datatype","subset","replacement","skipZeros","numberFactory","_ref2","createFractionClass","notation","newExp","valueWithoutExp","valueStr","toEngineering","lowerExp","upperExp","rounded","looksLikeFraction","formatArray","syntax","DimensionError","relation","IndexError","arraySize","_validate","dimNext","validate","validateIndex","_resize","oldLen","newLen","unsqueeze","_unsqueeze","ii","getArrayDataType","typeOf","itemType","isDimensionError","isIndexError","createDenseMatrixClass","DenseMatrix","_data","_size","_datatype","preprocess","isScalar","_getSubmatrix","last","_set","submatrix","sSize","iSize","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","createDenseMatrix","isDenseMatrix","getDataType","indexI","sizeArray","flatArray","totalSize","sizeIndex","tmpArray2","tmpArray","_reshape","me","diagonal","kSuper","kSub","_value","swapRows","_swapRows","_createTyped2","createTyped","typed","conversions","to","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","deepForEach","createIsInteger","createIsNumeric","createIsNaN","isNaNNumber","Unit","createEqualScalar","complexEquals","equalBase","createNumber","unit","valuelessUnit","absNumber","addNumber","multiplyNumber","unaryMinusNumber","createApply","_apply","tran","I","J","createMultiplyScalar","_normalize","multiply","baseFormatter","2","8","16","createBaseFormatterFactory","createFraction","createUnaryMinus","createAddScalar","fixPrefix","createSqrt","_sqrtNumber","createConj","conjugate","createMode","isNumeric","_mode","createSparseMatrixClass","equalScalar","SparseMatrix","_values","_ptr","_createFromArray","_createFromMatrix","ptr","_getsubset","kk","mvalues","mindex","mptr","_setsubset","x0","y0","_getValueIndex","_insert","k1","_toArray","createSparseMatrix","isSparseMatrix","density","_remove","colIndex","rowIndex","r1","_i2","_i3","_j","minRow","maxRow","minColumn","maxColumn","invoke","_k","_i5","_map","_k2","_i7","_forEachRow","kx","ky","vx","vy","createMatrix","_create","createAlgorithm01","denseMatrix","sparseMatrix","adata","asize","adt","bvalues","bindex","bptr","bsize","bdt","cf","cdata","mark","createAlgorithm04","avalues","aindex","aptr","cvalues","cindex","cptr","xa","xb","wa","wb","createAlgorithm10","createAlgorithm13","bdata","csize","_iterate","av","bv","cv","createAlgorithm14","createAlgorithm03","createAlgorithm05","wai","wbi","vc","createAlgorithm11","createAlgorithm12","createAlgorithm07","_scatter","va","vb","createIdentity","_identity","_identityVector","Big","noBignumber","noFraction","createSize","noMatrix","createCompare","algorithm03","algorithm05","algorithm12","algorithm13","algorithm14","createSmaller","algorithm07","createLarger","createFibonacciHeapClass","smaller","larger","oneOverLogPhi","FibonacciHeap","_minimum","_cut","degree","_cascadingCut","isFibonacciHeap","insert","extractMinimum","numberOfChildren","tempRight","numRoots","_linkNodes","_findMinimumNode","_decreaseKey","createAdd","addScalar","algorithm01","algorithm04","algorithm10","signatures","createDot","multiplyScalar","conj","_validateDim","aIsColumn","bIsColumn","_c","_c2","_c3","xindex","xvalues","yindex","yvalues","xLen","yLen","ySize","createAbs","createMultiply","algorithm11","_validateMatrixDimensions","size1","size2","_multiplyMatrixVector","arows","acolumns","af","mf","brows","ib","vbi","ka0","ka1","ka","ia","ic","_multiplyMatrixMatrix","bcolumns","jb","kb0","kb1","cij","kb","vbij","p0","xsize","ysize","_multiplyVectorVector","alength","_multiplyVectorDenseMatrix","_multiplyVectorMatrix","ArgumentsError","isArgumentsError","createPartitionSelect","_partitionSelect","quickSelect","pivot","createBignumber","createNumeric","_number","bignumber","validInputTypes","validOutputTypes","outputType","inputType","improveErrorMessage","details","createSubtract","unaryMinus","checkEqualDimensions","createDivideScalar","numeric","createSpaClass","Spa","_heap","isSpa","accumulate","heap","swap","nodei","nodej","createLup","divideScalar","_denseLUP","lvalues","lindex","lptr","lsize","uvalues","uindex","uptr","usize","pvCo","pvOc","_loop","spa","vkj","vik","vjj","pabsv","absv","L","U","_sparseLUP","ldata","udata","vij","createDet","lup","decomp","det","evenCycles","_det","createInv","_inv","ABig","rBig","Ac","Bc","Ar","Br","createDivide","inv","DEFAULT_NORMALIZATION","createVariance","_var","_varDim","normalization","createStd","_std","createMedian","partitionSelect","_median","mid","middle2","containsCollections","gammaNumber","twoN","threeN","fourN","fiveN","gammaP","gammaG","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","xInv","asecNumber","asechNumber","asinhNumber","atanhNumber","cotNumber","cothNumber","cscNumber","cschNumber","secNumber","sechNumber","sinhNumber","isNegativeNumber","isPositiveNumber","isZeroNumber","isComplex","isFraction","isUnit","isCollection","isRange","isResultSet","isHelp","isDate","isNull","isUndefined","isAccessorNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isOperatorNode","isParenthesisNode","isRangeNode","isSymbolNode","isChain","LN2","negate","roundDigits","splitNumber","coefficients","missingZeros","expDiff","decimalIdx","decimals","decimalVal","splitValue","pp","first","DBL_EPSILON","EPSILON","nearlyEqual","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","GLOBAL","startdenom","significance","overflow","oldRandom","ARC4","keylen","S","typ","mixkey","smear","stringseed","tostring","autoseed","plugins","use_entropy","entropy","arc4","resetGlobal","xor128","xorwow","xorshift7","xor4096","tychei","sr","Alea","mash","s0","xg","prng","double","quick","XorGen","strseed","X","math","nodecrypto","shortseed","msCrypto","browser","pass","is_math_call","isFullwidthCodePoint","astralRegex","ansiStyles","ESCAPES","wrapAnsi","code","insideEscape","escapeCode","visible","leftEscape","codePointAt","codes","colorConvert","wrapAnsi16","wrapAnsi256","wrapAnsi16m","rgb","styles","modifier","bold","italic","underline","hidden","strikethrough","color","black","red","green","yellow","blue","magenta","cyan","white","gray","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","grey","groupName","styleName","style","ansi2ansi","rgb2rgb","ansi","ansi256","ansi16m","suite","ansi16","cssKeywords","reverseKeywords","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","hcg","apple","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","smin","lmin","hi","sl","vmin","wh","bl","ratio","hr","mult","colorString","char","integer","hue","chroma","mg","pure","route","fromModel","routes","toModel","wrappedFn","conversion","wrapRounded","raw","wrapRaw","link","wrapConversion","cur","models","buildGraph","adjacents","adjacent","deriveBFS","_isNumber2","_interopRequireDefault","_isString2","_stringWidth","__esModule","alignments","subject","containerWidth","alignment","subjectWidth","availableWidth","alignLeft","alignRight","halfWidth","alignCenter","_alignString","index1","_wrapCell","columnWidth","useWrapWord","_calculateCellWidthIndex","valueWidth","index0","_max2","_isBoolean2","_calculateCellHeight","tableWidth","rowSpanIndex","cellHeightIndex","wrapWord","_mapValues2","_values2","_trimEnd2","_makeStreamConfig","_drawRow","_drawBorder","_stringifyTableData","_truncateTableData","_mapDataUsingRowHeightIndex","_alignTableData","_padTableData","_calculateRowHeightIndex","prepareData","rowHeightIndex","userConfig","columnWidthIndex","paddingLeft","paddingRight","empty","columnCount","literalRow","border","drawBorderTop","drawBorderBottom","stdout","drawBorderJoin","drawBorder","columnSizeIndex","topBody","topJoin","joinBody","joinJoin","joinLeft","joinRight","bottomBody","bottomJoin","bottomRight","bodyLeft","bodyJoin","bodyRight","drawHorizontalLine","singleLine","realRowIndex","rowHeight","rowCount","_table","_cloneDeep2","_isUndefined2","_times2","_getBorderCharacters","_validateConfig","_calculateMaximumColumnWidthIndex","makeBorder","columnDefault","maximumColumnWidthIndex","makeColumns","_flatten2","unmappedRows","mappedRows","cellLine","index2","_drawTable","_makeConfig","_validateTableData","cellWidthIndex","_truncate2","content","refVal","refVal1","dataPath","parentData","parentDataProperty","rootData","vErrors","errors","key0","schema","schemaPath","additionalProperty","refVal2","pattern0","refVal3","refVal4","valid1","errs_1","schema1","enum","i1","allowedValues","errs__1","ruleErr1","columnNumber","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","return","_wrapString","_wrapWord","cellValue","cellLines","lineNr","lineChunks","_sliceAnsi","subjectSlice","chunks","onlyFirst","stripAnsi","emojiRegex","ansiRegex","notOk","undef","_types","anyType","_ignore","_conversions","ignore","findTypeByName","typeName","findInArray","hint","findTypeIndex","findTypeName","stringifyParams","typeNames","getTypeName","restParam","parseParam","notEmpty","notIgnore","matchingConversions","matches","filterConversions","exactTypes","typeIndex","conversionIndex","convertibleTypes","hasRestParam","hasConversions","compileTest","test0","test1","tests","compileTests","varIndex","lastTest","testRestParam","getParamAtIndex","getExpectedTypeNames","excludeConversions","isExactType","mergeExpectedParams","uniq","flatMap","_name","matchingSignatures","nextMatchingDefs","actualType","expectedLength","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","compareSignatures","signature1","signature2","compileArgConversion","conversion0","conversion1","splitParams","ignoreConversionTypes","_splitParams","typeGroups","filteredTypes","typeGroup","createTypedFunction","signaturesMap","parsedSignatures","parsedParam","isInvalidParam","parseSignature","notNull","parsedSignature","conflictingSignature","hasOverlap","len1","len2","restParam1","restParam2","hasConflictingParams","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","fns","fnConvert","compiledConversions","fnPreprocess","compileArgsPreprocessing","fn0","fn1","fn2","fn3","fn4","fn5","len0","len3","len4","len5","iStart","iEnd","generic","arg0","createSignaturesMap","array1","array2","getName","extractSignatures","validateUnique","_fn","addType","beforeObjectTest","addConversion","cptable","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","Buffer_from","nbfs","enc","mdl","mdb","sbcs_encode","cp","EE","ee","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","jj","dbcs_decode","utf8_d","ww","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","F","dash","tt","o64","c3","e2","e3","e4","isstr","hascp","DO_NOT_EXPORT_JSZIP","JSZipSync","globalThis","$","1","_dereq_","_keyStr","utf8","chr1","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","getContent","getCompressedContent","3","STORE","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","4","crc","getTypeOf","iTop","5","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","6","base64","dir","createFolders","compression","comment","7","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","9","newObj","support","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","alloc","12","Uint8ArrayReader","NodeBufferReader","13","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","fileAdd","dataType","prepareFileAttrs","parentFolder","folderAdd","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","filename","relativePath","fileClone","folder","newFolder","kids","generate","writer","dirEnd","zipData","localDirLength","centralDirLength","compressionName","zipPart","CENTRAL_DIRECTORY_END","finalize","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","17","arraybuffer","uint8array","blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","18","sig0","sig1","sig2","sig3","19","20","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","21","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","22","ZipEntry","jszipProto","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","25","zlib_deflate","zstream","Deflate","windowBits","memLevel","strategy","opt","gzip","ended","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflate","inflator","next_out_utf8","tail","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","fnTyped","dest","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","29","adler","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","31","crcTable","makeTable","32","trees","adler32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","head","total_in","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","extra","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","33","xflags","extra_len","34","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","TYPE","BAD","ZSWAP32","InflateState","havedict","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","sym","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","updatewindow","inflateInfo","36","lbase","lext","dbase","dext","lens_index","table_index","incr","used","huff","base_index","MAXBITS","offs","extra_index","37","38","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","39","current_codepage","current_ansi","VALID_ANSI","CS2CP","0","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","set_cp","reset_cp","char_codes","debom","utf16leread","utf16beread","_getchar","_getansi","Base64","e1","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","ab2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","mixed","sgn","P_2","P_1","Q_2","Q_1","Q","parse_date_code","b2","dow","dout","T","H","date1904","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","getTimezoneOffset","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","V","LOG10E","small_exp","large_exp","normalize_exp","general_fmt","write_date","fmt","ss0","ss","outl","commaify","_general_num","_general","write_num","pct1","write_num_exp","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","_frac","write_num_flt","ffmt","write_num_cm","sfmt","write_num_pct","ri","ff","aval","den","rr","myn","myd","write_num_f1","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","lst","ssm","bt","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","lat","m1","m2","choose_fmt","load_entry","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","signed_crc_table","bstr","crc32_buf_8","_fs","CFB","dirname","write_dos_date","hms","write_shift","ymd","parse_extra_field","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","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","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","mini","minifat_store","pl","sector","namelen","__utf16le","clsid","ct","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","payload","MSSZ","new_buf","cnt","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","HEADER_CLSID","Z","namecmp","elt","_write","_opts","fileType","cdirs","start_cd","fcnt","fi","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","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","off","clens","cmap","MAX","maxlen","ccode","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","dst","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read_file","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","msSaveBlob","saveAs","chrome","downloads","revokeObjectURL","appendChild","click","removeChild","Folder","ks","o2","evert_key","K","evert","evert_num","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","safegetzipfile","getzipfile","getzipdata","safe","getdatabin","getzipstr","zip_add_file","zip_new","resolve_path","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","quot","strip_ns","encregex","coderegex","encodings","rencoding","unescapexml","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8read","orig","utf8readb","corpus","utf8readc","mtcache","entities","vt_cache","matchtag","htmldecode","vtregex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","__lpp4","___lpp4","XMLNS","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","oo","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","cstr","decode_range","encode_range","cs","ce","safe_decode_range","format_cell","XF","numFmtId","safe_format_cell","sheet_to_workbook","sheets","sheet_add_aoa","_ws","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","O","_crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","parse_ClipboardFormatOrString","VT_STRING","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","vt","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","parse_TypedPropertyValue","parse_dictionary","CodePage","pid","parse_BLOB","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecHeadingPair","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","fSharedNote","parse_BOF","BIFFVer","write_BOF","bookType","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","ref","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","hcnt","coltypes","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","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","push_value","topic","ETH","eth_to_sheet","eth_to_aoa","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","finish_cell","Y","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet","firstbyte","prn_to_aoa_str","prn_to_sheet_str","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","Rn","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","font","shadow","outline","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","align","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","xmlns","main","Count","uniqueCount","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PadArray","InitialCode","XorMatrix","XorRor","crypto_CreateXorArray_Method1","byte1","byte2","Byte","password","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","G","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","pt","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","themes","NumberFmt","formatCode","parse_numFmts","Fonts","condense","vertAlign","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","vertical","horizontal","textRotation","indent","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_sty_bin","write_FMTS_bin","grbit","write_FontFlags","sss","charset","write_BrtFont","write_FONTS_bin","write_FILLS_bin","write_BrtBorder","write_BORDERS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","xfId","builtinId","write_BrtStyle","write_STYLES_bin","write_DXFS_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_TABLESTYLES_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_ExtProp","extType","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_FullColorExt","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","run","write_StrRun","write_BrtCommentText","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","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","rt","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","defs","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml_sheetpr","sheetPr","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","sviewregex","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","parse_ws_xml_data","sdata","sstr","ftag","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","_r","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","margin","relc","tooltip","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","ncell","write_BrtCellIsst","write_BrtCellSt","d100","write_RkNumber","write_BrtCellRk","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_ws_bin","write_BrtWsProp","write_BrtBeginWsView","write_WSVIEWS2","write_BrtColInfo","write_COLINFOS","cap","write_CELLTABLE","write_BrtSheetProtection","write_SHEETPROTECT","write_AUTOFILTER","write_BrtBeginMergeCells","write_MERGECELLS","locidx","write_BrtHLink","write_HLINKS","write_BrtMargins","write_BrtCellIgnoreEC","write_IGNOREECS","write_LEGACYDRAWING","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","vistab","write_BrtBookView","write_BOOKVIEWS","write_BUNDLESHS","parse_ws","ai","seencol","R_n","aii","relId","Rel","rfx","tmpref","parse_ws_bin","mtch","ridx","parse_ws_xml_dim","svs","parse_ws_xml_sheetviews","coli","colm","colM","parse_ws_xml_cols","afilter","parse_ws_xml_autofilter","_merge","hlink","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","parse_ws_xml","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","process_style_xlml","stag","Interior","Pattern","ID","parse_xlml_data","csty","nf","sid","StyleID","interiors","Parent","UTC","safe_format_xlml","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_name_xlml","write_ws_xlml_cell","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_props_xlml","write_sty_xlml","write_names_xlml","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","PSCLSID","parse_xlscfb","CompObj","WorkbookP","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","parse_compobj","lastcell","cmnt","rngC","rngR","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Encryption","Metadata","Country","parse_workbook","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","ArchID","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","display","idObj","stAuthor","parse_NoteSh","Info","Data","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","parse_FilePassHeader","XorArrayIndex","XorArray","verificationBytes","verifier","Value","crypto_DecryptData_Method1","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkMoniker","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","cexts","cchComment","themeXML","parse_frtHeader","area","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff8_cell","bf","o1","write_FormulaValue","o3","write_Formula","write_Number","write_Bes","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_Font","write_FONTS_biff8","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","write_biff_buf","fix_write_opts","write_biff8_buf","write_ws_biff2","write_biff2_buf","html_to_sheet","mtch2","split_regex","hd","midx","colspan","rowspan","_t","make_html_row","editable","make_html_preamble","_BEGIN","_END","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","parse_dom_table","get_computed_style","ownerDocument","defaultView","getComputedStyle","get_get_computed_style_function","getPropertyValue","number_formats","parse_content_xml","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","fixed","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","parse_cs_bin","parse_cs_xml","parse_cs","dfile","drelsp","chartp","parse_drawing","crelsp","csheet","nc","parse_Cache","parse_chart","parse_ds","authors","author","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","textMatch","parse_comments_xml","parse_cmnt","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","links","coreprops","extprops","custprops","calcchains","vba","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_sst_bin","parse_sst_xml","parse_sst","parse_theme","parse_sty_bin","parse_sty","parse_xlink_bin","parse_xlink","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_wb","propdata","parse_ext_props","toks","parse_cust_props","bookDeps","parse_cc_bin","parse_cc_xml","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","W","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","parse_TransformInfoHeader","ename","cmode","parse_Primary","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","write_core_props","_sn","write_ext_props","write_vt","write_cust_props","wsrels","need_vml","rId1","write_sty","f1","f3","write_ct","read_plaintext","read_prn","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","zip_read","read_zip","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","cn","check_wb","write_stxt_type","wbpath","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","fill_vba_xls","write_xlscfb","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","Readable","split_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","__webpack_module_cache__","__webpack_require__","moduleId","loaded","__webpack_modules__","amdD","amdO","getter","definition","nmd"],"mappings":"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ChCgiK,EAAe,GAAKrlK,OAAOopB,KAAK27I,GAAgBtnK,OAChD,MAAM6nK,EAAe,IAAI/hJ,GAAa8hJ,EAAgB7gK,GACtDygK,EAAc31J,SAAQ,CAACi2J,EAAoB7nK,KACvC,IAAK,IAAIm6B,EAAI,EAAGA,EAAIpqB,EAAS,GAAIoqB,IAC7B,IAAK,IAAI10B,EAAI,EAAGA,EAAIsK,EAAS,GAAItK,IAC7BmiK,EAAarhK,IAAI+gK,EAAYtkK,IAAIm3B,EAAG0tI,EAAoBpiK,GAAI00B,EAAGn6B,EAAGyF,MAM9E,MAAMsG,EAAclF,EAAMlB,QAE1B,OADAoG,EAAYmvE,GAASysF,EAAe,GAC7B,CACHG,aAAcF,EAAahhK,OAC3BmF,cACA7C,WClFD,MCkHD6+J,GAAgB,CAClBpqB,GACAK,GACAE,GACAC,GACAzC,GACA0C,GACAO,GACAI,GACAE,GACAE,GACAE,GACAC,GACAC,GACAG,GACAC,GACAqD,GACAC,GACA,GACA,GACAvF,GACA+G,GACAoB,GACAU,GACA1M,GACA6M,GACAG,GACAvN,GACAwN,GACAoB,GACAyB,GACAS,GACAV,GACA4B,GACAkB,GACA1B,GACAiC,GACAC,GACAC,GACA8B,GACAO,GACAC,GACAY,GACAC,GACAE,GACAC,GACAC,GACAc,GACAH,GACAwB,GACAhb,GACA,GACA+Z,GACAM,GACAE,GACAE,GACAE,GACAqE,GACAI,GACAC,GACAO,GACAE,GACAC,GACAE,GACAE,GACAa,GACAK,GACAE,GACAthB,GACAuhB,GACA3R,GACA4R,GACAC,GACAC,GACAxhB,GACA0hB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAO,GACAU,GACAC,GACAC,GACA,GACA,GACAG,GACAP,GACAe,GACAG,GACAE,GACAC,GACAK,GACAQ,GACA7K,GACAwL,GACAC,GACAC,GACAC,GACAM,GACAC,GACAI,GACAG,GACAC,GACAE,GACArmB,GACAwmB,GACAE,GACAlmB,GACAmmB,GACA1mB,GACAC,GACA4C,GACA8jB,GACA,GACAgD,GACA,GACAi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,GACA,GACA,GACA,GACA,GACAxJ,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAoC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAe,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAyB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GDlPoC,CACpCt2L,WAAYwT,GACZW,YAAa,QACbmO,WA3DG,SAA4BntB,GAC/B,MAAM,OAAEogB,EAAM,QAAE5b,EAAO,MAAEynB,GAAUjsB,GAC7B,EAAEgG,EAAC,WAAEQ,GAAe4Z,GACpB,YAAE3Z,GAAgBwlB,EAClBimB,EAAQlsC,EAAEV,MAAM9G,OAChBq8J,EAAY,GAClB,IAAIx0J,EAAO,EACX,MAAMg0E,EAAc,GAAgC,CAACh0E,GAAO6rC,GAC5D,IAAIwoH,EAAY10J,EACG,MAAfq0E,IACAqgF,EAAY,GAAU,CAAEt6I,OAAQ,CAAEpa,KAAKxB,UAASynB,MAAO,CAAEvkB,KAAM2yE,KAC/DwgF,EAAU33J,KAAKw3J,GACfr0J,EAAO,GAA8B,EAAG6rC,GAAO,IAEnD,MAAMW,EAAW,GAA0C6nH,EAAUp1J,MAAOe,EAAMI,GAC5E8tE,EAAS,GAAmB,CAACmmF,EAAUp1J,M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ACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,E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","file":"bundle.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","module.exports = require(\"regenerator-runtime\");\n","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport const EPSILON_FLOAT32 = 1e-7;\nexport const EPSILON_FLOAT16 = 1e-4;\n/** Convenient class for storing tensor-related data. */\nexport class DataStorage {\n constructor(backend, dataMover) {\n this.backend = backend;\n this.dataMover = dataMover;\n this.data = new WeakMap();\n this.dataIdsCount = 0;\n }\n get(dataId) {\n if (!this.data.has(dataId)) {\n this.dataMover.moveData(this.backend, dataId);\n }\n return this.data.get(dataId);\n }\n set(dataId, value) {\n this.dataIdsCount++;\n this.data.set(dataId, value);\n }\n has(dataId) {\n return this.data.has(dataId);\n }\n delete(dataId) {\n this.dataIdsCount--;\n return this.data.delete(dataId);\n }\n numDataIds() {\n return this.dataIdsCount;\n }\n}\n/**\n * The interface that defines the kernels that should be implemented when\n * adding a new backend. New backends don't need to implement every one of the\n * methods, this can be done gradually (throw an error for unimplemented\n * methods).\n */\nexport class KernelBackend {\n /**\n * Decrease the complex ref count for the dataId, this is useful for WebGL\n * backend to keep the real and imag components of the complex tensor in sync\n * with the engine. WASM and node do not have internal ref count, they will\n * use on the default implementation.\n * @param dataId\n */\n decComplexRef(dataId) {\n return;\n }\n time(f) {\n return notYetImplemented('time');\n }\n read(dataId) {\n return notYetImplemented('read');\n }\n readSync(dataId) {\n return notYetImplemented('readSync');\n }\n numDataIds() {\n return notYetImplemented('numDataIds');\n }\n disposeData(dataId) {\n return notYetImplemented('disposeData');\n }\n write(values, shape, dtype) {\n return notYetImplemented('write');\n }\n move(dataId, values, shape, dtype) {\n return notYetImplemented('move');\n }\n memory() {\n return notYetImplemented('memory');\n }\n /** Returns the highest precision for floats in bits (e.g. 16 or 32) */\n floatPrecision() {\n return notYetImplemented('floatPrecision');\n }\n /** Returns the smallest representable number. */\n epsilon() {\n return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;\n }\n batchMatMul(a, b, transposeA, transposeB) {\n return notYetImplemented('batchMatMul');\n }\n fusedBatchMatMul({ a, b, transposeA, transposeB, bias, activation, preluActivationWeights }) {\n return notYetImplemented('fusedBatchMatMul');\n }\n slice(x, begin, size) {\n return notYetImplemented('slice');\n }\n stridedSlice(x, begin, end, strides) {\n return notYetImplemented('stridedSlice');\n }\n unstack(x, axis) {\n return notYetImplemented('unstack');\n }\n reverse(a, axis) {\n return notYetImplemented('reverse');\n }\n concat(tensors, axis) {\n return notYetImplemented('concat');\n }\n neg(a) {\n return notYetImplemented('neg');\n }\n add(a, b) {\n return notYetImplemented('add');\n }\n addN(tensors) {\n return notYetImplemented('addN');\n }\n subtract(a, b) {\n return notYetImplemented('subtract');\n }\n multiply(a, b) {\n return notYetImplemented('multiply');\n }\n realDivide(a, b) {\n return notYetImplemented('realDivide');\n }\n floorDiv(a, b) {\n return notYetImplemented('floorDiv');\n }\n sum(x, axes) {\n return notYetImplemented('sum');\n }\n prod(x, axes) {\n return notYetImplemented('prod');\n }\n unsortedSegmentSum(x, segmentIds, numSegments) {\n return notYetImplemented('unsortedSegmentSum');\n }\n argMin(x, axis) {\n return notYetImplemented('argMin');\n }\n argMax(x, axis) {\n return notYetImplemented('argMax');\n }\n equal(a, b) {\n return notYetImplemented('equal');\n }\n notEqual(a, b) {\n return notYetImplemented('notEqual');\n }\n less(a, b) {\n return notYetImplemented('less');\n }\n lessEqual(a, b) {\n return notYetImplemented('lessEqual');\n }\n greater(a, b) {\n return notYetImplemented('greater');\n }\n greaterEqual(a, b) {\n return notYetImplemented('greaterEqual');\n }\n logicalNot(a) {\n return notYetImplemented('logicalNot');\n }\n logicalAnd(a, b) {\n return notYetImplemented('logicalAnd');\n }\n logicalOr(a, b) {\n return notYetImplemented('logicalOr');\n }\n where(condition) {\n return notYetImplemented('where');\n }\n select(condition, a, b) {\n return notYetImplemented('select');\n }\n topk(x, k, sorted) {\n return notYetImplemented('topk');\n }\n min(x, axes) {\n return notYetImplemented('min');\n }\n minimum(a, b) {\n return notYetImplemented('minimum');\n }\n mod(a, b) {\n return notYetImplemented('mod');\n }\n max(x, axes) {\n return notYetImplemented('max');\n }\n maximum(a, b) {\n return notYetImplemented('maximum');\n }\n all(x, axes) {\n return notYetImplemented('all');\n }\n any(x, axes) {\n return notYetImplemented('any');\n }\n squaredDifference(a, b) {\n return notYetImplemented('squaredDifference');\n }\n ceil(x) {\n return notYetImplemented('ceil');\n }\n floor(x) {\n return notYetImplemented('floor');\n }\n round(x) {\n return notYetImplemented('round');\n }\n sign(x) {\n return notYetImplemented('sign');\n }\n isNaN(x) {\n return notYetImplemented('isNaN');\n }\n isInf(x) {\n return notYetImplemented('isInf');\n }\n isFinite(x) {\n return notYetImplemented('isFinite');\n }\n pow(a, b) {\n return notYetImplemented('pow');\n }\n exp(x) {\n return notYetImplemented('exp');\n }\n expm1(x) {\n return notYetImplemented('expm1');\n }\n softmax(x, dim) {\n return notYetImplemented('softmax');\n }\n log(x) {\n return notYetImplemented('log');\n }\n log1p(x) {\n return notYetImplemented('log1p');\n }\n sqrt(x) {\n return notYetImplemented('sqrt');\n }\n rsqrt(x) {\n return notYetImplemented('rsqrt');\n }\n square(x) {\n return notYetImplemented('square');\n }\n reciprocal(x) {\n return notYetImplemented('reciprocal');\n }\n relu(x) {\n return notYetImplemented('relu');\n }\n relu6(x) {\n return notYetImplemented('relu6');\n }\n prelu(x, a) {\n return notYetImplemented('prelu');\n }\n elu(x) {\n return notYetImplemented('elu');\n }\n eluDer(dy, y) {\n return notYetImplemented('eluDer');\n }\n selu(x) {\n return notYetImplemented('selu');\n }\n int(x) {\n return notYetImplemented('int');\n }\n clip(x, min, max) {\n return notYetImplemented('clip');\n }\n abs(x) {\n return notYetImplemented('abs');\n }\n complexAbs(x) {\n return notYetImplemented('complexAbs');\n }\n sigmoid(x) {\n return notYetImplemented('sigmoid');\n }\n softplus(x) {\n return notYetImplemented('softplus');\n }\n sin(x) {\n return notYetImplemented('sin');\n }\n cos(x) {\n return notYetImplemented('cos');\n }\n tan(x) {\n return notYetImplemented('tan');\n }\n asin(x) {\n return notYetImplemented('asin');\n }\n acos(x) {\n return notYetImplemented('acos');\n }\n atan(x) {\n return notYetImplemented('atan');\n }\n atan2(a, b) {\n return notYetImplemented('atan2');\n }\n sinh(x) {\n return notYetImplemented('sinh');\n }\n cosh(x) {\n return notYetImplemented('cosh');\n }\n tanh(x) {\n return notYetImplemented('tanh');\n }\n asinh(x) {\n return notYetImplemented('asinh');\n }\n acosh(x) {\n return notYetImplemented('acosh');\n }\n atanh(x) {\n return notYetImplemented('atanh');\n }\n erf(x) {\n return notYetImplemented('erf');\n }\n step(x, alpha) {\n return notYetImplemented('step');\n }\n fusedConv2d({ input, filter, convInfo, bias, activation, preluActivationWeights }) {\n return notYetImplemented('fusedConv2d');\n }\n conv2d(x, filter, convInfo) {\n return notYetImplemented('conv2d');\n }\n conv2dDerInput(dy, filter, convInfo) {\n return notYetImplemented('conv2dDerInput');\n }\n conv2dDerFilter(x, dY, convInfo) {\n return notYetImplemented('conv2dDerFilter');\n }\n fusedDepthwiseConv2D({ input, filter, convInfo, bias, activation, preluActivationWeights }) {\n return notYetImplemented('fusedDepthwiseConv2D');\n }\n depthwiseConv2D(input, filter, convInfo) {\n return notYetImplemented('depthwiseConv2D');\n }\n depthwiseConv2DDerInput(dy, filter, convInfo) {\n return notYetImplemented('depthwiseConv2DDerInput');\n }\n depthwiseConv2DDerFilter(x, dY, convInfo) {\n return notYetImplemented('depthwiseConv2DDerFilter');\n }\n conv3d(x, filter, convInfo) {\n return notYetImplemented('conv3d');\n }\n conv3dDerInput(dy, filter, convInfo) {\n return notYetImplemented('conv3dDerInput');\n }\n conv3dDerFilter(x, dY, convInfo) {\n return notYetImplemented('conv3dDerFilter');\n }\n maxPool(x, convInfo) {\n return notYetImplemented('maxPool');\n }\n maxPoolBackprop(dy, x, y, convInfo) {\n return notYetImplemented('maxPoolBackprop');\n }\n avgPool(x, convInfo) {\n return notYetImplemented('avgPool');\n }\n avgPoolBackprop(dy, x, convInfo) {\n return notYetImplemented('avgPoolBackprop');\n }\n avgPool3d(x, convInfo) {\n return notYetImplemented('avgPool3d');\n }\n avgPool3dBackprop(dy, x, convInfo) {\n return notYetImplemented('avgPool3dBackprop');\n }\n maxPool3d(x, convInfo) {\n return notYetImplemented('maxPool3d');\n }\n maxPool3dBackprop(dy, x, y, convInfo) {\n return notYetImplemented('maxPool3dBackprop');\n }\n reshape(x, shape) {\n return notYetImplemented('reshape');\n }\n cast(x, dtype) {\n return notYetImplemented('cast');\n }\n tile(x, reps) {\n return notYetImplemented('tile');\n }\n pad(x, paddings, constantValue) {\n return notYetImplemented('pad');\n }\n transpose(x, perm) {\n return notYetImplemented('transpose');\n }\n gather(x, indices, axis, batchDims = 0) {\n return notYetImplemented('gather');\n }\n gatherND(x, indices) {\n return notYetImplemented('gatherND');\n }\n scatterND(indices, updates, shape) {\n return notYetImplemented('scatterND');\n }\n batchToSpaceND(x, blockShape, crops) {\n return notYetImplemented('batchToSpaceND');\n }\n spaceToBatchND(x, blockShape, paddings) {\n return notYetImplemented('spaceToBatchND');\n }\n resizeBilinear(x, newHeight, newWidth, alignCorners, halfPixelCenters) {\n return notYetImplemented('resizeBilinear');\n }\n resizeBilinearBackprop(dy, x, alignCorners) {\n return notYetImplemented('resizeBilinearBackprop');\n }\n resizeNearestNeighbor(x, newHEight, newWidth, alignCorners, halfPixelCenters) {\n return notYetImplemented('resizeNearestNeighbor');\n }\n resizeNearestNeighborBackprop(dy, x, alignCorners) {\n return notYetImplemented('resizeNearestNeighborBackprop');\n }\n batchNorm(x, mean, variance, offset, scale, varianceEpsilon) {\n return notYetImplemented('batchNorm');\n }\n localResponseNormalization4D(x, radius, bias, alpha, beta) {\n return notYetImplemented('localResponseNormalization4D');\n }\n LRNGrad(dy, inputImage, outputImage, radius, bias, alpha, beta) {\n return notYetImplemented('LRNGrad');\n }\n multinomial(logits, normalized, numSamples, seed) {\n return notYetImplemented('multinomial');\n }\n oneHot(indices, depth, onValue, offValue) {\n return notYetImplemented('oneHot');\n }\n cumsum(x, axis, exclusive, reverse) {\n return notYetImplemented('cumsum');\n }\n nonMaxSuppression(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {\n return notYetImplemented('nonMaxSuppression');\n }\n fft(x) {\n return notYetImplemented('fft');\n }\n ifft(x) {\n return notYetImplemented('ifft');\n }\n complex(real, imag) {\n return notYetImplemented('complex');\n }\n real(input) {\n return notYetImplemented('real');\n }\n imag(input) {\n return notYetImplemented('imag');\n }\n cropAndResize(image, boxes, boxIndex, cropSize, method, extrapolationValue) {\n return notYetImplemented('cropAndResize');\n }\n depthToSpace(x, blockSize, dataFormat) {\n return notYetImplemented('depthToSpace');\n }\n // Aligns with the \"SplitV\" kernel in TensorFlow.\n split(value, sizeSplits, axis) {\n return notYetImplemented('split');\n }\n sparseToDense(sparseIndices, sparseValues, outputShape, defaultValue) {\n return notYetImplemented('sparseToDense');\n }\n diag(x) {\n return notYetImplemented('diag');\n }\n fill(shape, value, dtype) {\n return notYetImplemented('fill');\n }\n onesLike(x) {\n return notYetImplemented('onesLike');\n }\n zerosLike(x) {\n return notYetImplemented('zerosLike');\n }\n linspace(start, stop, num) {\n return notYetImplemented('linspace');\n }\n dispose() {\n return notYetImplemented('dispose');\n }\n}\nfunction notYetImplemented(kernelName) {\n throw new Error(`'${kernelName}' not yet implemented or not found in the registry. ` +\n `This kernel may not be supported by the tfjs backend you have chosen`);\n}\n//# sourceMappingURL=backend.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Shuffles the array in-place using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1, 2, 3, 4, 5];\n * tf.util.shuffle(a);\n * console.log(a);\n * ```\n *\n * @param array The array to shuffle in-place.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffle(array) {\n let counter = array.length;\n let temp = 0;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element with it\n temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n}\n/** Clamps a value to a specified range. */\nexport function clamp(min, x, max) {\n return Math.max(min, Math.min(x, max));\n}\nexport function nearestLargerEven(val) {\n return val % 2 === 0 ? val : val + 1;\n}\nexport function sum(arr) {\n let sum = 0;\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n return sum;\n}\n/**\n * Returns a sample from a uniform [a, b) distribution.\n *\n * @param a The minimum support (inclusive).\n * @param b The maximum support (exclusive).\n * @return A pseudorandom number on the half-open interval [a,b).\n */\nexport function randUniform(a, b) {\n const r = Math.random();\n return (b * r) + (1 - r) * a;\n}\n/** Returns the squared Euclidean distance between two vectors. */\nexport function distSquared(a, b) {\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n const diff = Number(a[i]) - Number(b[i]);\n result += diff * diff;\n }\n return result;\n}\n/**\n * Asserts that the expression is true. Otherwise throws an error with the\n * provided message.\n *\n * ```js\n * const x = 2;\n * tf.util.assert(x === 2, 'x is not 2');\n * ```\n *\n * @param expr The expression to assert (as a boolean).\n * @param msg A function that returns the message to report when throwing an\n * error. We use a function for performance reasons.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function assert(expr, msg) {\n if (!expr) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\nexport function assertShapesMatch(shapeA, shapeB, errorMessagePrefix = '') {\n assert(arraysEqual(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);\n}\nexport function assertNonNull(a) {\n assert(a != null, () => `The input to the tensor constructor must be a non-null value.`);\n}\n// NOTE: We explicitly type out what T extends instead of any so that\n// util.flatten on a nested array of number doesn't try to infer T as a\n// number[][], causing us to explicitly type util.flatten().\n/**\n * Flattens an arbitrarily nested array.\n *\n * ```js\n * const a = [[1, 2], [3, 4], [5, [6, [7]]]];\n * const flat = tf.util.flatten(a);\n * console.log(flat);\n * ```\n *\n * @param arr The nested array to flatten.\n * @param result The destination array which holds the elements.\n * @param skipTypedArray If true, avoids flattening the typed arrays. Defaults\n * to false.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function flatten(arr, result = [], skipTypedArray = false) {\n if (result == null) {\n result = [];\n }\n if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {\n for (let i = 0; i < arr.length; ++i) {\n flatten(arr[i], result, skipTypedArray);\n }\n }\n else {\n result.push(arr);\n }\n return result;\n}\n/**\n * Returns the size (number of elements) of the tensor given its shape.\n *\n * ```js\n * const shape = [3, 4, 2];\n * const size = tf.util.sizeFromShape(shape);\n * console.log(size);\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function sizeFromShape(shape) {\n if (shape.length === 0) {\n // Scalar.\n return 1;\n }\n let size = shape[0];\n for (let i = 1; i < shape.length; i++) {\n size *= shape[i];\n }\n return size;\n}\nexport function isScalarShape(shape) {\n return shape.length === 0;\n}\nexport function arraysEqual(n1, n2) {\n if (n1 === n2) {\n return true;\n }\n if (n1 == null || n2 == null) {\n return false;\n }\n if (n1.length !== n2.length) {\n return false;\n }\n for (let i = 0; i < n1.length; i++) {\n if (n1[i] !== n2[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isInt(a) {\n return a % 1 === 0;\n}\nexport function tanh(x) {\n // tslint:disable-next-line:no-any\n if (Math.tanh != null) {\n // tslint:disable-next-line:no-any\n return Math.tanh(x);\n }\n if (x === Infinity) {\n return 1;\n }\n else if (x === -Infinity) {\n return -1;\n }\n else {\n const e2x = Math.exp(2 * x);\n return (e2x - 1) / (e2x + 1);\n }\n}\nexport function sizeToSquarishShape(size) {\n const width = Math.ceil(Math.sqrt(size));\n return [width, Math.ceil(size / width)];\n}\n/**\n * Creates a new array with randomized indicies to a given quantity.\n *\n * ```js\n * const randomTen = tf.util.createShuffledIndices(10);\n * console.log(randomTen);\n * ```\n *\n * @param number Quantity of how many shuffled indicies to create.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function createShuffledIndices(n) {\n const shuffledIndices = new Uint32Array(n);\n for (let i = 0; i < n; ++i) {\n shuffledIndices[i] = i;\n }\n shuffle(shuffledIndices);\n return shuffledIndices;\n}\nexport function rightPad(a, size) {\n if (size <= a.length) {\n return a;\n }\n return a + ' '.repeat(size - a.length);\n}\nexport function repeatedTry(checkFn, delayFn = (counter) => 0, maxCounter) {\n return new Promise((resolve, reject) => {\n let tryCount = 0;\n const tryFn = () => {\n if (checkFn()) {\n resolve();\n return;\n }\n tryCount++;\n const nextBackoff = delayFn(tryCount);\n if (maxCounter != null && tryCount >= maxCounter) {\n reject();\n return;\n }\n setTimeout(tryFn, nextBackoff);\n };\n tryFn();\n });\n}\n/**\n * Given the full size of the array and a shape that may contain -1 as the\n * implicit dimension, returns the inferred shape where -1 is replaced.\n * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].\n *\n * @param shape The shape, which may contain -1 in some dimension.\n * @param size The full size (number of elements) of the array.\n * @return The inferred shape where -1 is replaced with the inferred size.\n */\nexport function inferFromImplicitShape(shape, size) {\n let shapeProd = 1;\n let implicitIdx = -1;\n for (let i = 0; i < shape.length; ++i) {\n if (shape[i] >= 0) {\n shapeProd *= shape[i];\n }\n else if (shape[i] === -1) {\n if (implicitIdx !== -1) {\n throw Error(`Shapes can only have 1 implicit size. ` +\n `Found -1 at dim ${implicitIdx} and dim ${i}`);\n }\n implicitIdx = i;\n }\n else if (shape[i] < 0) {\n throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);\n }\n }\n if (implicitIdx === -1) {\n if (size > 0 && size !== shapeProd) {\n throw Error(`Size(${size}) must match the product of shape ${shape}`);\n }\n return shape;\n }\n if (shapeProd === 0) {\n throw Error(`Cannot infer the missing size in [${shape}] when ` +\n `there are 0 elements`);\n }\n if (size % shapeProd !== 0) {\n throw Error(`The implicit shape can't be a fractional number. ` +\n `Got ${size} / ${shapeProd}`);\n }\n const newShape = shape.slice();\n newShape[implicitIdx] = size / shapeProd;\n return newShape;\n}\nexport function parseAxisParam(axis, shape) {\n const rank = shape.length;\n // Normalize input\n axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);\n // Check for valid range\n assert(axis.every(ax => ax >= -rank && ax < rank), () => `All values in axis param must be in range [-${rank}, ${rank}) but ` +\n `got axis ${axis}`);\n // Check for only integers\n assert(axis.every(ax => isInt(ax)), () => `All values in axis param must be integers but ` +\n `got axis ${axis}`);\n // Handle negative axis.\n return axis.map(a => a < 0 ? rank + a : a);\n}\n/** Reduces the shape by removing all dimensions of shape 1. */\nexport function squeezeShape(shape, axis) {\n const newShape = [];\n const keptDims = [];\n const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;\n const axes = (axis == null || isEmptyArray) ?\n null :\n parseAxisParam(axis, shape).sort();\n let j = 0;\n for (let i = 0; i < shape.length; ++i) {\n if (axes != null) {\n if (axes[j] === i && shape[i] !== 1) {\n throw new Error(`Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);\n }\n if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n if (axes[j] <= i) {\n j++;\n }\n }\n if (shape[i] !== 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n }\n return { newShape, keptDims };\n}\nexport function getTypedArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function getArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else if (dtype === 'string') {\n values = new Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function checkConversionForErrors(vals, dtype) {\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);\n }\n }\n}\n/** Returns true if the dtype is valid. */\nexport function isValidDtype(dtype) {\n return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' ||\n dtype === 'int32' || dtype === 'string';\n}\n/**\n * Returns true if the new type can't encode the old type without loss of\n * precision.\n */\nexport function hasEncodingLoss(oldType, newType) {\n if (newType === 'complex64') {\n return false;\n }\n if (newType === 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'bool' && oldType === 'bool') {\n return false;\n }\n return true;\n}\nexport function isTypedArray(a) {\n return a instanceof Float32Array || a instanceof Int32Array ||\n a instanceof Uint8Array;\n}\nexport function bytesPerElement(dtype) {\n if (dtype === 'float32' || dtype === 'int32') {\n return 4;\n }\n else if (dtype === 'complex64') {\n return 8;\n }\n else if (dtype === 'bool') {\n return 1;\n }\n else {\n throw new Error(`Unknown dtype ${dtype}`);\n }\n}\n/**\n * Returns the approximate number of bytes allocated in the string array - 2\n * bytes per character. Computing the exact bytes for a native string in JS is\n * not possible since it depends on the encoding of the html page that serves\n * the website.\n */\nexport function bytesFromStringArray(arr) {\n if (arr == null) {\n return 0;\n }\n let bytes = 0;\n arr.forEach(x => bytes += x.length);\n return bytes;\n}\n/** Returns true if the value is a string. */\nexport function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexport function isBoolean(value) {\n return typeof value === 'boolean';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function inferDtype(values) {\n if (Array.isArray(values)) {\n return inferDtype(values[0]);\n }\n if (values instanceof Float32Array) {\n return 'float32';\n }\n else if (values instanceof Int32Array || values instanceof Uint8Array) {\n return 'int32';\n }\n else if (isNumber(values)) {\n return 'float32';\n }\n else if (isString(values)) {\n return 'string';\n }\n else if (isBoolean(values)) {\n return 'bool';\n }\n return 'float32';\n}\nexport function isFunction(f) {\n return !!(f && f.constructor && f.call && f.apply);\n}\nexport function nearestDivisor(size, start) {\n for (let i = start; i < size; ++i) {\n if (size % i === 0) {\n return i;\n }\n }\n return size;\n}\nexport function computeStrides(shape) {\n const rank = shape.length;\n if (rank < 2) {\n return [];\n }\n // Last dimension has implicit stride of 1, thus having D-1 (instead of D)\n // strides.\n const strides = new Array(rank - 1);\n strides[rank - 2] = shape[rank - 1];\n for (let i = rank - 3; i >= 0; --i) {\n strides[i] = strides[i + 1] * shape[i + 1];\n }\n return strides;\n}\nfunction createNestedArray(offset, shape, a) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0];\n for (let i = 0; i < d; i++) {\n ret[i] = a[offset + i];\n }\n }\n else {\n const d = shape[0];\n const rest = shape.slice(1);\n const len = rest.reduce((acc, c) => acc * c);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a);\n }\n }\n return ret;\n}\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape, a) {\n if (shape.length === 0) {\n // Scalar type should return a single number.\n return a[0];\n }\n const size = shape.reduce((acc, c) => acc * c);\n if (size === 0) {\n // A tensor with shape zero should be turned into empty list.\n return [];\n }\n if (size !== a.length) {\n throw new Error(`[${shape}] does not match the input size ${a.length}.`);\n }\n return createNestedArray(0, shape, a);\n}\nexport function makeOnesTypedArray(size, dtype) {\n const array = makeZerosTypedArray(size, dtype);\n for (let i = 0; i < array.length; i++) {\n array[i] = 1;\n }\n return array;\n}\nexport function makeZerosTypedArray(size, dtype) {\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(size);\n }\n else if (dtype === 'int32') {\n return new Int32Array(size);\n }\n else if (dtype === 'bool') {\n return new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Make nested `TypedArray` filled with zeros.\n * @param shape The shape information for the nested array.\n * @param dtype dtype of the array element.\n */\nexport function makeZerosNestedTypedArray(shape, dtype) {\n const size = shape.reduce((prev, curr) => prev * curr, 1);\n if (dtype == null || dtype === 'float32') {\n return toNestedArray(shape, new Float32Array(size));\n }\n else if (dtype === 'int32') {\n return toNestedArray(shape, new Int32Array(size));\n }\n else if (dtype === 'bool') {\n return toNestedArray(shape, new Uint8Array(size));\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\nexport function assertNonNegativeIntegerDimensions(shape) {\n shape.forEach(dimSize => {\n assert(Number.isInteger(dimSize) && dimSize >= 0, () => `Tensor must have a shape comprised of positive integers but got ` +\n `shape [${shape}].`);\n });\n}\n/**\n * Computes flat index for a given location (multidimentionsal index) in a\n * Tensor/multidimensional array.\n *\n * @param locs Location in the tensor.\n * @param rank Rank of the tensor.\n * @param strides Tensor strides.\n */\nexport function locToIndex(locs, rank, strides) {\n if (rank === 0) {\n return 0;\n }\n else if (rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += strides[i] * locs[i];\n }\n return index;\n}\n/**\n * Computes the location (multidimensional index) in a tensor/multidimentional\n * array for a given flat index.\n *\n * @param index Index in flat array.\n * @param rank Rank of tensor.\n * @param strides Strides of tensor.\n */\nexport function indexToLoc(index, rank, strides) {\n if (rank === 0) {\n return [];\n }\n else if (rank === 1) {\n return [index];\n }\n const locs = new Array(rank);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / strides[i]);\n index -= locs[i] * strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n}\n/**\n * This method asserts whether an object is a Promise instance.\n * @param object\n */\n// tslint:disable-next-line: no-any\nexport function isPromise(object) {\n // We chose to not use 'obj instanceOf Promise' for two reasons:\n // 1. It only reliably works for es6 Promise, not other Promise\n // implementations.\n // 2. It doesn't work with framework that uses zone.js. zone.js monkey patch\n // the async calls, so it is possible the obj (patched) is comparing to a\n // pre-patched Promise.\n return object && object.then && typeof object.then === 'function';\n}\n//# sourceMappingURL=util_base.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { isPromise } from './util_base';\n// Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.\nconst TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';\n/**\n * The environment contains evaluated flags as well as the registered platform.\n * This is always used as a global singleton and can be retrieved with\n * `tf.env()`.\n *\n * @doc {heading: 'Environment'}\n */\nexport class Environment {\n // tslint:disable-next-line: no-any\n constructor(global) {\n this.global = global;\n this.flags = {};\n this.flagRegistry = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n setPlatform(platformName, platform) {\n if (this.platform != null) {\n console.warn(`Platform ${this.platformName} has already been set. ` +\n `Overwriting the platform with ${platform}.`);\n }\n this.platformName = platformName;\n this.platform = platform;\n }\n registerFlag(flagName, evaluationFn, setHook) {\n this.flagRegistry[flagName] = { evaluationFn, setHook };\n // Override the flag value from the URL. This has to happen here because the\n // environment is initialized before flags get registered.\n if (this.urlFlags[flagName] != null) {\n const flagValue = this.urlFlags[flagName];\n console.warn(`Setting feature override from URL ${flagName}: ${flagValue}.`);\n this.set(flagName, flagValue);\n }\n }\n async getAsync(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n this.flags[flagName] = await this.evaluateFlag(flagName);\n return this.flags[flagName];\n }\n get(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n const flagValue = this.evaluateFlag(flagName);\n if (isPromise(flagValue)) {\n throw new Error(`Flag ${flagName} cannot be synchronously evaluated. ` +\n `Please use getAsync() instead.`);\n }\n this.flags[flagName] = flagValue;\n return this.flags[flagName];\n }\n getNumber(flagName) {\n return this.get(flagName);\n }\n getBool(flagName) {\n return this.get(flagName);\n }\n getFlags() {\n return this.flags;\n }\n // For backwards compatibility.\n get features() {\n return this.flags;\n }\n set(flagName, value) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot set flag ${flagName} as it has not been registered.`);\n }\n this.flags[flagName] = value;\n if (this.flagRegistry[flagName].setHook != null) {\n this.flagRegistry[flagName].setHook(value);\n }\n }\n evaluateFlag(flagName) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot evaluate flag '${flagName}': no evaluation function found.`);\n }\n return this.flagRegistry[flagName].evaluationFn();\n }\n setFlags(flags) {\n this.flags = Object.assign({}, flags);\n }\n reset() {\n this.flags = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n populateURLFlags() {\n if (typeof this.global === 'undefined' ||\n typeof this.global.location === 'undefined' ||\n typeof this.global.location.search === 'undefined') {\n return;\n }\n const urlParams = getQueryParams(this.global.location.search);\n if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {\n const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');\n keyValues.forEach(keyValue => {\n const [key, value] = keyValue.split(':');\n this.urlFlags[key] = parseValue(key, value);\n });\n }\n }\n}\nexport function getQueryParams(queryString) {\n const params = {};\n queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {\n decodeParam(params, t[0], t[1]);\n return t.join('=');\n });\n return params;\n}\nfunction decodeParam(params, name, value) {\n params[decodeURIComponent(name)] = decodeURIComponent(value || '');\n}\nfunction parseValue(flagName, value) {\n value = value.toLowerCase();\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n else if (`${+value}` === value) {\n return +value;\n }\n throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`);\n}\n/**\n * Returns the current environment (a global singleton).\n *\n * The environment object contains the evaluated feature values as well as the\n * active platform.\n *\n * @doc {heading: 'Environment'}\n */\nexport function env() {\n return ENV;\n}\nexport let ENV = null;\nexport function setEnvironmentGlobal(environment) {\n ENV = environment;\n}\n//# sourceMappingURL=environment.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Note that the identifier globalNameSpace is scoped to this module, but will\n// always resolve to the same global object regardless of how the module is\n// resolved.\n// tslint:disable-next-line:no-any\nlet globalNameSpace;\n// tslint:disable-next-line:no-any\nexport function getGlobalNamespace() {\n if (globalNameSpace == null) {\n // tslint:disable-next-line:no-any\n let ns;\n if (typeof (window) !== 'undefined') {\n ns = window;\n }\n else if (typeof (global) !== 'undefined') {\n ns = global;\n }\n else if (typeof (process) !== 'undefined') {\n ns = process;\n }\n else if (typeof (self) !== 'undefined') {\n ns = self;\n }\n else {\n throw new Error('Could not find a global object');\n }\n globalNameSpace = ns;\n }\n return globalNameSpace;\n}\n// tslint:disable-next-line:no-any\nfunction getGlobalMap() {\n const ns = getGlobalNamespace();\n if (ns._tfGlobals == null) {\n ns._tfGlobals = new Map();\n }\n return ns._tfGlobals;\n}\n/**\n * Returns a globally accessible 'singleton' object.\n *\n * @param key the name of the object\n * @param init a function to initialize to initialize this object\n * the first time it is fetched.\n */\nexport function getGlobal(key, init) {\n const globalMap = getGlobalMap();\n if (globalMap.has(key)) {\n return globalMap.get(key);\n }\n else {\n const singleton = init();\n globalMap.set(key, singleton);\n return globalMap.get(key);\n }\n}\n//# sourceMappingURL=global_util.js.map","export const Abs = 'Abs';\nexport const Acos = 'Acos';\nexport const Acosh = 'Acosh';\nexport const Add = 'Add';\nexport const AddN = 'AddN';\nexport const All = 'All';\nexport const Any = 'Any';\nexport const ArgMax = 'ArgMax';\nexport const ArgMin = 'ArgMin';\nexport const Asin = 'Asin';\nexport const Asinh = 'Asinh';\nexport const Atan = 'Atan';\nexport const Atanh = 'Atanh';\nexport const Atan2 = 'Atan2';\nexport const AvgPool = 'AvgPool';\nexport const AvgPoolGrad = 'AvgPoolGrad';\nexport const AvgPool3D = 'AvgPool3D';\nexport const AvgPool3DGrad = 'AvgPool3DGrad';\nexport const BatchMatMul = 'BatchMatMul';\nexport const BatchToSpaceND = 'BatchToSpaceND';\nexport const Bincount = 'Bincount';\nexport const BroadcastTo = 'BroadcastTo';\nexport const Cast = 'Cast';\nexport const Ceil = 'Ceil';\nexport const ClipByValue = 'ClipByValue';\nexport const Complex = 'Complex';\nexport const ComplexAbs = 'ComplexAbs';\nexport const Concat = 'Concat';\nexport const Conv2D = 'Conv2D';\nexport const Conv2DBackpropFilter = 'Conv2DBackpropFilter';\nexport const Conv2DBackpropInput = 'Conv2DBackpropInput';\nexport const Conv3D = 'Conv3D';\nexport const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';\nexport const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';\nexport const Cos = 'Cos';\nexport const Cosh = 'Cosh';\nexport const Cumsum = 'Cumsum';\nexport const CropAndResize = 'CropAndResize';\nexport const DenseBincount = 'DenseBincount';\nexport const DepthToSpace = 'DepthToSpace';\nexport const DepthwiseConv2dNative = 'DepthwiseConv2dNative';\nexport const DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';\nexport const DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';\nexport const Diag = 'Diag';\nexport const Dilation2D = 'Dilation2D';\nexport const Dilation2DBackpropInput = 'Dilation2DBackpropInput';\nexport const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';\nexport const RealDiv = 'RealDiv';\nexport const Elu = 'Elu';\nexport const EluGrad = 'EluGrad';\nexport const Erf = 'Erf';\nexport const Equal = 'Equal';\nexport const Exp = 'Exp';\nexport const ExpandDims = 'ExpandDims';\nexport const Expm1 = 'Expm1';\nexport const FFT = 'FFT';\nexport const Fill = 'Fill';\nexport const FlipLeftRight = 'FlipLeftRight';\nexport const Floor = 'Floor';\nexport const FloorDiv = 'FloorDiv';\nexport const FusedBatchNorm = 'FusedBatchNorm';\nexport const GatherV2 = 'GatherV2';\nexport const GatherNd = 'GatherNd';\nexport const Greater = 'Greater';\nexport const GreaterEqual = 'GreaterEqual';\nexport const Identity = 'Identity';\nexport const IFFT = 'IFFT';\nexport const Imag = 'Imag';\nexport const IsFinite = 'IsFinite';\nexport const IsInf = 'IsInf';\nexport const IsNan = 'IsNan';\nexport const LeakyRelu = 'LeakyRelu';\nexport const Less = 'Less';\nexport const LessEqual = 'LessEqual';\nexport const LinSpace = 'LinSpace';\nexport const Log = 'Log';\nexport const Log1p = 'Log1p';\nexport const LogicalAnd = 'LogicalAnd';\nexport const LogicalNot = 'LogicalNot';\nexport const LogicalOr = 'LogicalOr';\nexport const LogSoftmax = 'LogSoftmax';\nexport const LRN = 'LRN';\nexport const LRNGrad = 'LRNGrad';\nexport const Max = 'Max';\nexport const Maximum = 'Maximum';\nexport const MaxPool = 'MaxPool';\nexport const MaxPoolGrad = 'MaxPoolGrad';\nexport const MaxPool3D = 'MaxPool3D';\nexport const MaxPool3DGrad = 'MaxPool3DGrad';\nexport const MaxPoolWithArgmax = 'MaxPoolWithArgmax';\nexport const Mean = 'Mean';\nexport const Min = 'Min';\nexport const Minimum = 'Minimum';\nexport const MirrorPad = 'MirrorPad';\nexport const Mod = 'Mod';\nexport const Multinomial = 'Multinomial';\nexport const Multiply = 'Multiply';\nexport const Neg = 'Neg';\nexport const NotEqual = 'NotEqual';\nexport const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';\nexport const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';\nexport const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';\nexport const OnesLike = 'OnesLike';\nexport const OneHot = 'OneHot';\nexport const Pack = 'Pack';\nexport const PadV2 = 'PadV2';\nexport const Pool = 'Pool';\nexport const Pow = 'Pow';\nexport const Prelu = 'Prelu';\nexport const Prod = 'Prod';\nexport const Range = 'Range';\nexport const Real = 'Real';\nexport const Reciprocal = 'Reciprocal';\nexport const Relu = 'Relu';\nexport const Reshape = 'Reshape';\nexport const ResizeNearestNeighbor = 'ResizeNearestNeighbor';\nexport const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';\nexport const ResizeBilinear = 'ResizeBilinear';\nexport const ResizeBilinearGrad = 'ResizeBilinearGrad';\nexport const Relu6 = 'Relu6';\nexport const Reverse = 'Reverse';\nexport const Round = 'Round';\nexport const Rsqrt = 'Rsqrt';\nexport const ScatterNd = 'ScatterNd';\nexport const Select = 'Select';\nexport const Selu = 'Selu';\nexport const Slice = 'Slice';\nexport const Sin = 'Sin';\nexport const Sinh = 'Sinh';\nexport const Sign = 'Sign';\nexport const Sigmoid = 'Sigmoid';\nexport const Softplus = 'Softplus';\nexport const Sqrt = 'Sqrt';\nexport const Sum = 'Sum';\nexport const SpaceToBatchND = 'SpaceToBatchND';\nexport const SplitV = 'SplitV';\nexport const Softmax = 'Softmax';\nexport const SquaredDifference = 'SquaredDifference';\nexport const Square = 'Square';\nexport const Sub = 'Sub';\nexport const SparseToDense = 'SparseToDense';\nexport const StridedSlice = 'StridedSlice';\nexport const Tan = 'Tan';\nexport const Tanh = 'Tanh';\nexport const Tile = 'Tile';\nexport const TopK = 'TopK';\nexport const Transpose = 'Transpose';\nexport const Unique = 'Unique';\nexport const Unpack = 'Unpack';\nexport const UnsortedSegmentSum = 'UnsortedSegmentSum';\nexport const ZerosLike = 'ZerosLike';\n/**\n * TensorFlow.js-only kernels\n */\nexport const Step = 'Step';\nexport const FromPixels = 'FromPixels';\nexport const RotateWithOffset = 'RotateWithOffset';\nexport const _FusedMatMul = '_FusedMatMul';\nexport const FusedConv2D = 'FusedConv2D';\nexport const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';\n//# sourceMappingURL=kernel_names.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport { getGlobal } from './global_util';\nconst kernelRegistry = getGlobal('kernelRegistry', () => new Map());\nconst gradRegistry = getGlobal('gradRegistry', () => new Map());\n/**\n * Returns the kernel function (code) associated with the provided names.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n */\nexport function getKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n return kernelRegistry.get(key);\n}\n/**\n * Returns the registered gradient info associated with the provided kernel.\n * @param kernelName The official TF kernel name.\n */\nexport function getGradient(kernelName) {\n return gradRegistry.get(kernelName);\n}\nexport function getKernelsForBackend(backendName) {\n const it = kernelRegistry.entries();\n const result = [];\n while (true) {\n const { done, value } = it.next();\n if (done) {\n break;\n }\n const [key, config] = value;\n const [backend,] = key.split('_');\n if (backend === backendName) {\n result.push(config);\n }\n }\n return result;\n}\n/**\n * Registers the function (forward pass) for the kernel in a global registry.\n *\n * @param config A config object with the following properties:\n * - `kernelName` The official name of the kernel.\n * - `backendName` The official name of the backend.\n * - `kernelFunc` The function to run during the forward pass of the kernel.\n * - `setupFunc` Optional. Gets called once, after the backend initializes.\n * - `disposeFunc` Optional. Gets called once, right before the backend is\n * disposed.\n */\nexport function registerKernel(config) {\n const { kernelName, backendName } = config;\n const key = makeKey(kernelName, backendName);\n if (kernelRegistry.has(key)) {\n console.warn(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is already registered`);\n }\n kernelRegistry.set(key, config);\n}\n/**\n * Registers a gradient function for a given kernel in the global registry,\n * to be used during the back-propagation of that kernel.\n *\n * @param config An object with the following properties:\n * - `kernelName` The name of the kernel that the gradient function is for.\n * - `gradFunc` The function to run during back-propagation.\n */\nexport function registerGradient(config) {\n const { kernelName } = config;\n if (gradRegistry.has(kernelName)) {\n // TODO (yassogba) after 3.0 assess whether we need to keep this gated\n // to debug mode.\n if (env().getBool('DEBUG')) {\n console.warn(`Overriding the gradient for '${kernelName}'`);\n }\n }\n gradRegistry.set(kernelName, config);\n}\n/**\n * Removes the kernel function from the registry.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n *\n */\nexport function unregisterKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n if (!kernelRegistry.has(key)) {\n throw new Error(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is not registered`);\n }\n kernelRegistry.delete(key);\n}\n/** Removes the registered gradient from the global registry. */\nexport function unregisterGradient(kernelName) {\n if (!gradRegistry.has(kernelName)) {\n throw new Error(`The gradient '${kernelName}' for backend is not registered`);\n }\n gradRegistry.delete(kernelName);\n}\n/**\n * Finds kernels that have already been registered to a backend and re-registers\n * them for a new backend. Useful for registering custom backends.\n * @param registeredBackendName Already registered backend.\n * @param newBackendName New backend.\n */\nexport function copyRegisteredKernels(registeredBackendName, newBackendName) {\n const kernels = getKernelsForBackend(registeredBackendName);\n kernels.forEach(kernelConfig => {\n const newKernelConfig = Object.assign({}, kernelConfig, { backendName: newBackendName });\n registerKernel(newKernelConfig);\n });\n}\nfunction makeKey(kernelName, backendName) {\n return `${backendName}_${kernelName}`;\n}\n//# sourceMappingURL=kernel_registry.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as util from './util';\nexport class Profiler {\n constructor(backendTimer, logger) {\n this.backendTimer = backendTimer;\n this.logger = logger;\n if (logger == null) {\n this.logger = new Logger();\n }\n }\n profileKernel(kernelName, inputs, f) {\n let outputs;\n const holdResultWrapperFn = () => {\n outputs = f();\n };\n const timer = this.backendTimer.time(holdResultWrapperFn);\n if (env().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {\n for (let i = 0; i < outputs.length; i++) {\n const output = outputs[i];\n // Dangling promise here because we don't want to propagate up\n // asynchronicity.\n output.data().then(tensorVals => {\n checkComputationForErrors(tensorVals, output.dtype, kernelName);\n });\n }\n }\n const kernelProfile = {\n kernelName,\n outputs,\n inputs,\n timeMs: timer.then(timing => timing.kernelMs),\n extraInfo: timer.then(timing => timing.getExtraProfileInfo != null ?\n timing.getExtraProfileInfo() :\n '')\n };\n return kernelProfile;\n }\n logKernelProfile(kernelProfile) {\n const { kernelName, outputs, timeMs, inputs, extraInfo } = kernelProfile;\n outputs.forEach(result => {\n Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {\n this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);\n });\n });\n }\n}\nexport function checkComputationForErrors(vals, dtype, kernelName) {\n if (dtype !== 'float32') {\n // Only floating point computations will generate NaN values\n return false;\n }\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n // Throwing custom exception so behavior is testable.\n console.warn(`Found ${num} in the result of '${kernelName}'`);\n return true;\n }\n }\n return false;\n}\nexport class Logger {\n logKernelProfile(name, result, vals, timeMs, inputs, extraInfo) {\n const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) :\n timeMs['error'];\n const paddedName = util.rightPad(name, 25);\n const rank = result.rank;\n const size = result.size;\n const shape = util.rightPad(result.shape.toString(), 14);\n let inputShapesDescription = '';\n for (const name in inputs) {\n const input = inputs[name];\n if (input != null) {\n // The input might be a non-tensor (e.g HTMLImageElement), in which case\n // we claim the output shape as input shape.\n const inputShape = input.shape || result.shape;\n const inputRank = inputShape.length;\n inputShapesDescription +=\n `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;\n }\n }\n console.log(`%c${paddedName}\\t%c${time}\\t%c${rank}D ${shape}\\t%c${size}\\t%c${inputShapesDescription}\\t%c${extraInfo}`, 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');\n }\n}\n//# sourceMappingURL=profiler.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { computeStrides, isString, rightPad, sizeFromShape } from './util';\n// Maximum number of values before we decide to show ellipsis.\nconst FORMAT_LIMIT_NUM_VALS = 20;\n// Number of first and last values to show when displaying a, b,...,y, z.\nconst FORMAT_NUM_FIRST_LAST_VALS = 3;\n// Number of significant digits to show.\nconst FORMAT_NUM_SIG_DIGITS = 7;\nexport function tensorToString(vals, shape, dtype, verbose) {\n const strides = computeStrides(shape);\n const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);\n const rank = shape.length;\n const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);\n const lines = ['Tensor'];\n if (verbose) {\n lines.push(` dtype: ${dtype}`);\n lines.push(` rank: ${rank}`);\n lines.push(` shape: [${shape}]`);\n lines.push(` values:`);\n }\n lines.push(valsLines.map(l => ' ' + l).join('\\n'));\n return lines.join('\\n');\n}\nfunction computeMaxSizePerColumn(vals, shape, dtype, strides) {\n const n = sizeFromShape(shape);\n const numCols = strides[strides.length - 1];\n const padPerCol = new Array(numCols).fill(0);\n const rank = shape.length;\n const valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;\n if (rank > 1) {\n for (let row = 0; row < n / numCols; row++) {\n const offset = row * numCols;\n for (let j = 0; j < numCols; j++) {\n padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);\n }\n }\n }\n return padPerCol;\n}\nfunction valToString(val, pad, dtype) {\n let valStr;\n if (Array.isArray(val)) {\n valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` +\n `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;\n }\n else if (isString(val)) {\n valStr = `'${val}'`;\n }\n else if (dtype === 'bool') {\n valStr = boolNumToString(val);\n }\n else {\n valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();\n }\n return rightPad(valStr, pad);\n}\nfunction boolNumToString(v) {\n return v === 0 ? 'false' : 'true';\n}\nfunction subTensorToString(vals, shape, dtype, strides, padPerCol, isLast = true) {\n const storagePerElement = dtype === 'complex64' ? 2 : 1;\n const size = shape[0];\n const rank = shape.length;\n if (rank === 0) {\n if (dtype === 'complex64') {\n const complexTuple = createComplexTuples(vals);\n return [valToString(complexTuple[0], 0, dtype)];\n }\n if (dtype === 'bool') {\n return [boolNumToString(vals[0])];\n }\n return [vals[0].toString()];\n }\n if (rank === 1) {\n if (size > FORMAT_LIMIT_NUM_VALS) {\n const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;\n let firstVals = Array.from(vals.slice(0, firstValsSize));\n let lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));\n if (dtype === 'complex64') {\n firstVals = createComplexTuples(firstVals);\n lastVals = createComplexTuples(lastVals);\n }\n return [\n '[' +\n firstVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ', ..., ' +\n lastVals\n .map((x, i) => valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype))\n .join(', ') +\n ']'\n ];\n }\n const displayVals = dtype === 'complex64' ? createComplexTuples(vals) :\n Array.from(vals);\n return [\n '[' +\n displayVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ']'\n ];\n }\n // The array is rank 2 or more.\n const subshape = shape.slice(1);\n const substrides = strides.slice(1);\n const stride = strides[0] * storagePerElement;\n const lines = [];\n if (size > FORMAT_LIMIT_NUM_VALS) {\n for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */));\n }\n lines.push('...');\n for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n else {\n for (let i = 0; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n const sep = rank === 2 ? ',' : '';\n lines[0] = '[' + lines[0] + sep;\n for (let i = 1; i < lines.length - 1; i++) {\n lines[i] = ' ' + lines[i] + sep;\n }\n let newLineSep = ',\\n';\n for (let i = 2; i < rank; i++) {\n newLineSep += '\\n';\n }\n lines[lines.length - 1] =\n ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);\n return lines;\n}\nfunction createComplexTuples(vals) {\n const complexTuples = [];\n for (let i = 0; i < vals.length; i += 2) {\n complexTuples.push([vals[i], vals[i + 1]]);\n }\n return complexTuples;\n}\n//# sourceMappingURL=tensor_format.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as base from './util_base';\nexport * from './util_base';\n/**\n * Create typed array for scalar value. Used for storing in `DataStorage`.\n */\nexport function createScalarValue(value, dtype) {\n if (dtype === 'string') {\n return encodeString(value);\n }\n return toTypedArray([value], dtype);\n}\nfunction noConversionNeeded(a, dtype) {\n return (a instanceof Float32Array && dtype === 'float32') ||\n (a instanceof Int32Array && dtype === 'int32') ||\n (a instanceof Uint8Array && dtype === 'bool');\n}\nexport function toTypedArray(a, dtype) {\n if (dtype === 'string') {\n throw new Error('Cannot convert a string[] to a TypedArray');\n }\n if (Array.isArray(a)) {\n a = base.flatten(a);\n }\n if (env().getBool('DEBUG')) {\n base.checkConversionForErrors(a, dtype);\n }\n if (noConversionNeeded(a, dtype)) {\n return a;\n }\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(a);\n }\n else if (dtype === 'int32') {\n return new Int32Array(a);\n }\n else if (dtype === 'bool') {\n const bool = new Uint8Array(a.length);\n for (let i = 0; i < bool.length; ++i) {\n if (Math.round(a[i]) !== 0) {\n bool[i] = 1;\n }\n }\n return bool;\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Returns the current high-resolution time in milliseconds relative to an\n * arbitrary time in the past. It works across different platforms (node.js,\n * browsers).\n *\n * ```js\n * console.log(tf.util.now());\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function now() {\n return env().platform.now();\n}\n/**\n * Returns a platform-specific implementation of\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * If `fetch` is defined on the global object (`window`, `process`, etc.),\n * `tf.util.fetch` returns that function.\n *\n * If not, `tf.util.fetch` returns a platform-specific solution.\n *\n * ```js\n * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');\n * // handle response\n * ```\n *\n * @doc {heading: 'Util'}\n */\nexport function fetch(path, requestInits) {\n return env().platform.fetch(path, requestInits);\n}\n/**\n * Encodes the provided string into bytes using the provided encoding scheme.\n *\n * @param s The string to encode.\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function encodeString(s, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.encode(s, encoding);\n}\n/**\n * Decodes the provided bytes into a string using the provided encoding scheme.\n * @param bytes The bytes to decode.\n *\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function decodeString(bytes, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.decode(bytes, encoding);\n}\n//# sourceMappingURL=util.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { tensorToString } from './tensor_format';\nimport * as util from './util';\nimport { computeStrides, toNestedArray } from './util';\n/**\n * A mutable object, similar to `tf.Tensor`, that allows users to set values\n * at locations before converting to an immutable `tf.Tensor`.\n *\n * See `tf.buffer` for creating a tensor buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class TensorBuffer {\n constructor(shape, dtype, values) {\n this.dtype = dtype;\n this.shape = shape.slice();\n this.size = util.sizeFromShape(shape);\n if (values != null) {\n const n = values.length;\n util.assert(n === this.size, () => `Length of values '${n}' does not match the size ` +\n `inferred by the shape '${this.size}'.`);\n }\n if (dtype === 'complex64') {\n throw new Error(`complex64 dtype TensorBuffers are not supported. Please create ` +\n `a TensorBuffer for the real and imaginary parts separately and ` +\n `call tf.complex(real, imag).`);\n }\n this.values = values || util.getArrayFromDType(dtype, this.size);\n this.strides = computeStrides(shape);\n }\n /**\n * Sets a value in the buffer at a given location.\n *\n * @param value The value to set.\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n set(value, ...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n util.assert(locs.length === this.rank, () => `The number of provided coordinates (${locs.length}) must ` +\n `match the rank (${this.rank})`);\n const index = this.locToIndex(locs);\n this.values[index] = value;\n }\n /**\n * Returns the value in the buffer at the provided location.\n *\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n get(...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n let i = 0;\n for (const loc of locs) {\n if (loc < 0 || loc >= this.shape[i]) {\n const msg = `Requested out of range element at ${locs}. ` +\n ` Buffer shape=${this.shape}`;\n throw new Error(msg);\n }\n i++;\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return this.values[index];\n }\n locToIndex(locs) {\n if (this.rank === 0) {\n return 0;\n }\n else if (this.rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return index;\n }\n indexToLoc(index) {\n if (this.rank === 0) {\n return [];\n }\n else if (this.rank === 1) {\n return [index];\n }\n const locs = new Array(this.shape.length);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / this.strides[i]);\n index -= locs[i] * this.strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Creates an immutable `tf.Tensor` object from the buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n toTensor() {\n return trackerFn().makeTensor(this.values, this.shape, this.dtype);\n }\n}\n// For tracking tensor creation and disposal.\nlet trackerFn = null;\n// Used by chaining methods to call into ops.\nlet opHandler = null;\n// Used to warn about deprecated methods.\nlet deprecationWarningFn = null;\n// This here so that we can use this method on dev branches and keep the\n// functionality at master.\n// tslint:disable-next-line:no-unused-expression\n[deprecationWarningFn];\n/**\n * An external consumer can register itself as the tensor tracker. This way\n * the Tensor class can notify the tracker for every tensor created and\n * disposed.\n */\nexport function setTensorTracker(fn) {\n trackerFn = fn;\n}\n/**\n * An external consumer can register itself as the op handler. This way the\n * Tensor class can have chaining methods that call into ops via the op\n * handler.\n */\nexport function setOpHandler(handler) {\n opHandler = handler;\n}\n/**\n * Sets the deprecation warning function to be used by this file. This way the\n * Tensor class can be a leaf but still use the environment.\n */\nexport function setDeprecationWarningFn(fn) {\n deprecationWarningFn = fn;\n}\n/**\n * A `tf.Tensor` object represents an immutable, multidimensional array of\n * numbers that has a shape and a data type.\n *\n * See `tf.tensor` for details on how to create a `tf.Tensor`.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Tensor {\n constructor(shape, dtype, dataId, id) {\n /** Whether this tensor has been globally kept. */\n this.kept = false;\n this.isDisposedInternal = false;\n this.shape = shape.slice();\n this.dtype = dtype || 'float32';\n this.size = util.sizeFromShape(shape);\n this.strides = computeStrides(shape);\n this.dataId = dataId;\n this.id = id;\n this.rankType = (this.rank < 5 ? this.rank.toString() : 'higher');\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Returns a promise of `tf.TensorBuffer` that holds the underlying data.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async buffer() {\n const vals = await this.data();\n return opHandler.buffer(this.shape, this.dtype, vals);\n }\n /**\n * Returns a `tf.TensorBuffer` that holds the underlying data.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n bufferSync() {\n return opHandler.buffer(this.shape, this.dtype, this.dataSync());\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * asynchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async array() {\n const vals = await this.data();\n return toNestedArray(this.shape, vals);\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * synchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n arraySync() {\n return toNestedArray(this.shape, this.dataSync());\n }\n /**\n * Asynchronously downloads the values from the `tf.Tensor`. Returns a\n * promise of `TypedArray` that resolves when the computation has finished.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async data() {\n this.throwIfDisposed();\n const data = trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n const bytes = await data;\n try {\n return bytes.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /**\n * Synchronously downloads the values from the `tf.Tensor`. This blocks the\n * UI thread until the values are ready, which can cause performance issues.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dataSync() {\n this.throwIfDisposed();\n const data = trackerFn().readSync(this.dataId);\n if (this.dtype === 'string') {\n try {\n return data.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /** Returns the underlying bytes of the tensor's data. */\n async bytes() {\n this.throwIfDisposed();\n const data = await trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n return data;\n }\n else {\n return new Uint8Array(data.buffer);\n }\n }\n /**\n * Disposes `tf.Tensor` from memory.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n trackerFn().disposeTensor(this);\n this.isDisposedInternal = true;\n }\n get isDisposed() {\n return this.isDisposedInternal;\n }\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error(`Tensor is disposed.`);\n }\n }\n /**\n * Prints the `tf.Tensor`. See `tf.print` for details.\n *\n * @param verbose Whether to print verbose information about the tensor,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n print(verbose = false) {\n return opHandler.print(this, verbose);\n }\n /**\n * Returns a copy of the tensor. See `tf.clone` for details.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n clone() {\n this.throwIfDisposed();\n return opHandler.clone(this);\n }\n /**\n * Returns a human-readable description of the tensor. Useful for logging.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n toString(verbose = false) {\n const vals = this.dataSync();\n return tensorToString(vals, this.shape, this.dtype, verbose);\n }\n cast(dtype) {\n this.throwIfDisposed();\n return opHandler.cast(this, dtype);\n }\n variable(trainable = true, name, dtype) {\n this.throwIfDisposed();\n return trackerFn().makeVariable(this, trainable, name, dtype);\n }\n}\nObject.defineProperty(Tensor, Symbol.hasInstance, {\n value: (instance) => {\n // Implementation note: we should use properties of the object that will be\n // defined before the constructor body has finished executing (methods).\n // This is because when this code is transpiled by babel, babel will call\n // classCallCheck before the constructor body is run.\n // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.\n return !!instance && instance.data != null && instance.dataSync != null &&\n instance.throwIfDisposed != null;\n }\n});\n/**\n * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Variable extends Tensor {\n constructor(initialValue, trainable, name, tensorId) {\n super(initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);\n this.trainable = trainable;\n this.name = name;\n }\n /**\n * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have\n * the same shape and dtype as the old `tf.Tensor`.\n *\n * @param newValue New tensor to be assigned to this variable.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n assign(newValue) {\n if (newValue.dtype !== this.dtype) {\n throw new Error(`dtype of the new value (${newValue.dtype}) and ` +\n `previous value (${this.dtype}) must match`);\n }\n if (!util.arraysEqual(newValue.shape, this.shape)) {\n throw new Error(`shape of the new value (${newValue.shape}) and ` +\n `previous value (${this.shape}) must match`);\n }\n trackerFn().disposeTensor(this);\n this.dataId = newValue.dataId;\n trackerFn().incRef(this, null /* backend */);\n }\n dispose() {\n trackerFn().disposeVariable(this);\n this.isDisposedInternal = true;\n }\n}\nObject.defineProperty(Variable, Symbol.hasInstance, {\n value: (instance) => {\n return instance instanceof Tensor && instance.assign != null &&\n instance.assign instanceof Function;\n }\n});\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport var Rank;\n(function (Rank) {\n Rank[\"R0\"] = \"R0\";\n Rank[\"R1\"] = \"R1\";\n Rank[\"R2\"] = \"R2\";\n Rank[\"R3\"] = \"R3\";\n Rank[\"R4\"] = \"R4\";\n Rank[\"R5\"] = \"R5\";\n Rank[\"R6\"] = \"R6\";\n})(Rank || (Rank = {}));\n// Looks for upcasting types. Used, for example, in operations with mixed dtype\n// inputs.\nvar UpcastInt32AndMap;\n(function (UpcastInt32AndMap) {\n UpcastInt32AndMap[\"float32\"] = \"float32\";\n UpcastInt32AndMap[\"int32\"] = \"int32\";\n UpcastInt32AndMap[\"bool\"] = \"int32\";\n UpcastInt32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastInt32AndMap || (UpcastInt32AndMap = {}));\nvar UpcastBoolAndMap;\n(function (UpcastBoolAndMap) {\n UpcastBoolAndMap[\"float32\"] = \"float32\";\n UpcastBoolAndMap[\"int32\"] = \"int32\";\n UpcastBoolAndMap[\"bool\"] = \"bool\";\n UpcastBoolAndMap[\"complex64\"] = \"complex64\";\n})(UpcastBoolAndMap || (UpcastBoolAndMap = {}));\nvar UpcastFloat32AndMap;\n(function (UpcastFloat32AndMap) {\n UpcastFloat32AndMap[\"float32\"] = \"float32\";\n UpcastFloat32AndMap[\"int32\"] = \"float32\";\n UpcastFloat32AndMap[\"bool\"] = \"float32\";\n UpcastFloat32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));\nvar UpcastComplex64AndMap;\n(function (UpcastComplex64AndMap) {\n UpcastComplex64AndMap[\"float32\"] = \"complex64\";\n UpcastComplex64AndMap[\"int32\"] = \"complex64\";\n UpcastComplex64AndMap[\"bool\"] = \"complex64\";\n UpcastComplex64AndMap[\"complex64\"] = \"complex64\";\n})(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));\nconst upcastTypeMap = {\n 'float32': UpcastFloat32AndMap,\n 'int32': UpcastInt32AndMap,\n 'bool': UpcastBoolAndMap,\n 'complex64': UpcastComplex64AndMap\n};\nexport function upcastType(typeA, typeB) {\n if (typeA === 'string' || typeB === 'string') {\n if (typeA === 'string' && typeB === 'string') {\n return 'string';\n }\n throw new Error(`Can not upcast ${typeA} with ${typeB}`);\n }\n return upcastTypeMap[typeA][typeB];\n}\n/** Returns the output type after summation. */\nexport function sumOutType(type) {\n return upcastType(type, 'int32');\n}\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { Tensor } from './tensor';\nimport { upcastType } from './types';\nimport { assert } from './util';\nexport function makeTypesMatch(a, b) {\n if (a.dtype === b.dtype) {\n return [a, b];\n }\n const dtype = upcastType(a.dtype, b.dtype);\n return [a.cast(dtype), b.cast(dtype)];\n}\nexport function assertTypesMatch(a, b) {\n assert(a.dtype === b.dtype, () => `The dtypes of the first(${a.dtype}) and` +\n ` second(${b.dtype}) input must match`);\n}\nexport function isTensorInList(tensor, tensorList) {\n return tensorList.some(x => x.id === tensor.id);\n}\n/**\n * Extracts any `Tensor`s found within the provided object.\n *\n * @param container an object that may be a `Tensor` or may directly contain\n * `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it\n * is safe to pass any object here, except that `Promise`s are not\n * supported.\n * @returns An array of `Tensors` found within the passed object. If the\n * argument is simply a `Tensor', a list containing that `Tensor` is\n * returned. If the object is not a `Tensor` or does not\n * contain `Tensors`, an empty list is returned.\n */\nexport function getTensorsInContainer(result) {\n const list = [];\n const seen = new Set();\n walkTensorContainer(result, list, seen);\n return list;\n}\nfunction walkTensorContainer(container, list, seen) {\n if (container == null) {\n return;\n }\n if (container instanceof Tensor) {\n list.push(container);\n return;\n }\n if (!isIterable(container)) {\n return;\n }\n // Iteration over keys works also for arrays.\n const iterable = container;\n for (const k in iterable) {\n const val = iterable[k];\n if (!seen.has(val)) {\n seen.add(val);\n walkTensorContainer(val, list, seen);\n }\n }\n}\n// tslint:disable-next-line:no-any\nfunction isIterable(obj) {\n return Array.isArray(obj) || typeof obj === 'object';\n}\n//# sourceMappingURL=tensor_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { KernelBackend } from './backends/backend';\nimport { Environment, setEnvironmentGlobal } from './environment';\nimport { getGlobalNamespace } from './global_util';\nimport { Add, Cast } from './kernel_names';\nimport { getGradient, getKernel, getKernelsForBackend } from './kernel_registry';\nimport { Profiler } from './profiler';\nimport { backpropagateGradients, getFilteredNodesXToY } from './tape';\nimport { setTensorTracker, Tensor, Variable } from './tensor';\nimport { getTensorsInContainer } from './tensor_util';\nimport * as util from './util';\nimport { bytesFromStringArray, makeOnesTypedArray, now, sizeFromShape } from './util';\nclass EngineState {\n constructor() {\n // Public since optimizers will use it.\n this.registeredVariables = {};\n this.nextTapeNodeId = 0;\n this.numBytes = 0;\n this.numTensors = 0;\n this.numStringTensors = 0;\n this.numDataBuffers = 0;\n // Number of nested tf.grad() statements when computing higher-order\n // gradients. E.g. `1` for first-order gradients and `2` for second-order\n // gradients. Used to track if the tape should be removed after a backprop.\n this.gradientDepth = 0;\n // Number of nested kernel calls. When kernel depth is greater than 1, we turn\n // off the tape.\n this.kernelDepth = 0;\n this.scopeStack = [];\n /**\n * Keeps track of the number of data moves during a kernel execution. We\n * maintain a stack since kernels can call other kernels, recursively.\n */\n this.numDataMovesStack = [];\n this.nextScopeId = 0;\n this.tensorInfo = new WeakMap();\n this.profiling = false;\n this.activeProfile = {\n newBytes: 0,\n newTensors: 0,\n peakBytes: 0,\n kernels: [],\n result: null,\n get kernelNames() {\n return Array.from(new Set(this.kernels.map(k => k.name)));\n }\n };\n }\n dispose() {\n for (const variableName in this.registeredVariables) {\n this.registeredVariables[variableName].dispose();\n }\n }\n}\nexport class Engine {\n constructor(ENV) {\n this.ENV = ENV;\n this.registry = {};\n this.registryFactory = {};\n this.pendingBackendInitId = 0;\n this.state = new EngineState();\n }\n async ready() {\n if (this.pendingBackendInit != null) {\n return this.pendingBackendInit.then(() => { });\n }\n if (this.backendInstance != null) {\n return;\n }\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const success = await this.initializeBackend(backendName).success;\n if (success) {\n await this.setBackend(backendName);\n return;\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n get backend() {\n if (this.pendingBackendInit != null) {\n throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make ` +\n `sure to await tf.ready() or await tf.setBackend() before calling ` +\n `other methods`);\n }\n if (this.backendInstance == null) {\n const { name, asyncInit } = this.initializeBackendsAndReturnBest();\n if (asyncInit) {\n throw new Error(`The highest priority backend '${name}' has not yet been ` +\n `initialized. Make sure to await tf.ready() or ` +\n `await tf.setBackend() before calling other methods`);\n }\n this.setBackend(name);\n }\n return this.backendInstance;\n }\n backendNames() {\n return Object.keys(this.registryFactory);\n }\n findBackend(backendName) {\n if (!(backendName in this.registry)) {\n // If the backend hasn't been initialized but we have a registry entry for\n // it, initialize it and return it.\n if (backendName in this.registryFactory) {\n const { asyncInit } = this.initializeBackend(backendName);\n if (asyncInit) {\n // Backend is not ready yet.\n return null;\n }\n }\n else {\n return null;\n }\n }\n return this.registry[backendName];\n }\n findBackendFactory(backendName) {\n if (!(backendName in this.registryFactory)) {\n return null;\n }\n return this.registryFactory[backendName].factory;\n }\n registerBackend(backendName, factory, priority = 1) {\n if (backendName in this.registryFactory) {\n console.warn(`${backendName} backend was already registered. ` +\n `Reusing existing backend factory.`);\n return false;\n }\n this.registryFactory[backendName] = { factory, priority };\n return true;\n }\n async setBackend(backendName) {\n if (this.registryFactory[backendName] == null) {\n throw new Error(`Backend name '${backendName}' not found in registry`);\n }\n this.backendName = backendName;\n if (this.registry[backendName] == null) {\n this.backendInstance = null;\n const { success, asyncInit } = this.initializeBackend(backendName);\n const result = asyncInit ? await success : success;\n if (!result) {\n return false;\n }\n }\n this.backendInstance = this.registry[backendName];\n this.setupRegisteredKernels();\n // Reset the profiler.\n this.profiler = new Profiler(this.backendInstance);\n return true;\n }\n setupRegisteredKernels() {\n const kernels = getKernelsForBackend(this.backendName);\n kernels.forEach(kernel => {\n if (kernel.setupFunc != null) {\n kernel.setupFunc(this.backendInstance);\n }\n });\n }\n disposeRegisteredKernels(backendName) {\n const kernels = getKernelsForBackend(backendName);\n kernels.forEach(kernel => {\n if (kernel.disposeFunc != null) {\n kernel.disposeFunc(this.registry[backendName]);\n }\n });\n }\n /**\n * Initializes a backend by looking up the backend name in the factory\n * registry and calling the factory method. Returns a boolean representing\n * whether the initialization of the backend suceeded. Throws an error if\n * there is no backend in the factory registry.\n */\n initializeBackend(backendName) {\n const registryFactoryEntry = this.registryFactory[backendName];\n if (registryFactoryEntry == null) {\n throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);\n }\n try {\n const backend = registryFactoryEntry.factory();\n /* Test if the factory returns a promise.\n Done in a more liberal way than\n previous 'Promise.resolve(backend)===backend'\n as we needed to account for custom Promise\n implementations (e.g. Angular) */\n if (backend && !(backend instanceof KernelBackend) &&\n typeof backend.then === 'function') {\n const promiseId = ++this.pendingBackendInitId;\n const success = backend\n .then(backendInstance => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.registry[backendName] = backendInstance;\n this.pendingBackendInit = null;\n return true;\n })\n .catch(err => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.pendingBackendInit = null;\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return false;\n });\n this.pendingBackendInit = success;\n return { success, asyncInit: true };\n }\n else {\n this.registry[backendName] = backend;\n return { success: true, asyncInit: false };\n }\n }\n catch (err) {\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return { success: false, asyncInit: false };\n }\n }\n removeBackend(backendName) {\n if (!(backendName in this.registryFactory)) {\n throw new Error(`${backendName} backend not found in registry`);\n }\n if (this.backendName === backendName && this.pendingBackendInit != null) {\n // There is a pending promise of the backend we want to remove. Make it\n // obsolete.\n this.pendingBackendInitId++;\n }\n if (backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n delete this.registryFactory[backendName];\n // Unset the backend if it is active.\n if (this.backendName === backendName) {\n this.pendingBackendInit = null;\n this.backendName = null;\n this.backendInstance = null;\n }\n }\n getSortedBackends() {\n if (Object.keys(this.registryFactory).length === 0) {\n throw new Error('No backend found in registry.');\n }\n return Object.keys(this.registryFactory).sort((a, b) => {\n // Highest priority comes first.\n return this.registryFactory[b].priority -\n this.registryFactory[a].priority;\n });\n }\n initializeBackendsAndReturnBest() {\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const { success, asyncInit } = this.initializeBackend(backendName);\n if (asyncInit || success) {\n return { name: backendName, asyncInit };\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n moveData(backend, dataId) {\n const info = this.state.tensorInfo.get(dataId);\n const srcBackend = info.backend;\n const values = this.readSync(dataId);\n // Delete the tensor from the old backend and move it to the new\n // backend.\n srcBackend.disposeData(dataId);\n info.backend = backend;\n backend.move(dataId, values, info.shape, info.dtype);\n if (this.shouldCheckForMemLeaks()) {\n // Track the number of moves during a kernel execution to correctly\n // detect memory leaks.\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n }\n tidy(nameOrFn, fn) {\n let name = null;\n if (fn == null) {\n // Called with only 1 argument.\n if (typeof nameOrFn !== 'function') {\n throw new Error('Please provide a function to tidy()');\n }\n fn = nameOrFn;\n }\n else {\n // Called with 2 arguments.\n if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {\n throw new Error('When calling with two arguments, the first argument ' +\n 'to tidy() must be a string');\n }\n if (typeof fn !== 'function') {\n throw new Error('When calling with two arguments, the 2nd argument ' +\n 'to tidy() must be a function');\n }\n name = nameOrFn;\n // TODO(nsthorat,smilkov): Do operation logging and performance\n // profiling.\n }\n let result;\n return this.scopedRun(() => this.startScope(name), () => this.endScope(result), () => {\n result = fn();\n if (result instanceof Promise) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n return result;\n });\n }\n scopedRun(start, end, f) {\n start();\n try {\n const res = f();\n end();\n return res;\n }\n catch (ex) {\n end();\n throw ex;\n }\n }\n nextTensorId() {\n return Engine.nextTensorId++;\n }\n nextVariableId() {\n return Engine.nextVariableId++;\n }\n /**\n * This method is called instead of the public-facing tensor.clone() when\n * saving a tensor for backwards pass. It makes sure to add the clone\n * operation to the tape regardless of being called inside a kernel\n * execution.\n *\n * This method will go away once all kernels are modularized since we won't\n * need to turn off the tape inside runKernel().\n */\n clone(x) {\n const y = this.makeTensorFromDataId(x.dataId, x.shape, x.dtype);\n const inputs = { x };\n const grad = (dy) => ({\n x: () => {\n const dtype = 'float32';\n const gradInputs = { x: dy };\n const attrs = { dtype };\n return ENGINE.runKernelFunc(backend => backend.cast(dy, dtype), gradInputs, null /* grad */, Cast, attrs);\n }\n });\n const saved = [];\n this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});\n return y;\n }\n /**\n * Execute a kernel with the given name and return the output tensor.\n *\n * @param kernelName The name of the kernel to execute.\n * @param inputs A map of input names to tensors.\n * @param attrs A map of attribute names to their values. An attribute is a\n * primitive (non-tensor) input to the kernel.\n * @param inputsToSave A list of tensors, inputs to save for the backprop\n * computation.\n * @param outputsToSave A list of booleans, specifying which output to save\n * for the backprop computation. These are booleans since the output\n * tensors are not visible to the user.\n */\n runKernel(kernelName, inputs, attrs, inputsToSave, outputsToSave) {\n const forwardFunc = null;\n const backwardsFunc = null;\n // Call runKernel as a stop-gap until we modularize all kernels.\n // Once we modularize all kernels, we will remove the existing\n // `runKernelFunc`.\n return this.runKernelFunc(forwardFunc, inputs, backwardsFunc, kernelName, attrs, inputsToSave, outputsToSave);\n }\n shouldCheckForMemLeaks() {\n return this.ENV.getBool('IS_TEST');\n }\n checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos) {\n const numDataIdsAfter = this.backend.numDataIds();\n // Count the number of data ids associated with the result of the kernel.\n let numOutputDataIds = 0;\n outInfos.forEach(info => {\n // Complex numbers allocate 3 data ids, one for 'real', one for\n // 'imaginary', and one for the container that holds the former two.\n numOutputDataIds += (info.dtype === 'complex64' ? 3 : 1);\n });\n // Account for the number of moves during kernel execution. A \"data move\"\n // can happen in the middle of a kernel execution, placing a new (key,value)\n // pair in the data storage. Since data moves have net zero effect (we\n // always remove the data from the old backend), we have to cancel them out\n // when detecting memory leaks.\n const numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];\n const dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;\n if (dataIdsLeaked > 0) {\n throw new Error(`Backend '${this.backendName}' has an internal memory leak ` +\n `(${dataIdsLeaked} data ids) after running '${kernelName}'`);\n }\n }\n /**\n * @deprecated Use `runKernel` for newly added kernels. Keep using this method\n * only for kernels that are not yet fully modularized.\n */\n runKernelFunc(forwardFunc, inputs, backwardsFunc, kernelName, attrs, inputsToSave, outputsToSave) {\n let outputs;\n let saved = [];\n const isTapeOn = this.isTapeOn();\n if (kernelName == null) {\n kernelName =\n this.state.activeScope != null ? this.state.activeScope.name : '';\n }\n const startingBytecount = this.state.numBytes;\n const startingNumTensors = this.state.numTensors;\n if (this.shouldCheckForMemLeaks()) {\n this.state.numDataMovesStack.push(0);\n }\n let kernelFunc;\n if (this.backendName == null) {\n // backend has not been initialized yet (backend initialization is lazy\n // can be deferred until an op/ kernel is run).\n // The below getter has side effects that will try to initialize the\n // backend and set properties like this.backendName\n // tslint:disable-next-line: no-unused-expression\n this.backend;\n }\n const kernel = getKernel(kernelName, this.backendName);\n let out;\n if (kernel != null) {\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = kernel.kernelFunc({ inputs, attrs, backend: this.backend });\n const outInfos = Array.isArray(out) ? out : [out];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);\n }\n const outTensors = outInfos.map((outInfo) => {\n // todo (yassogba) remove this option (Tensor) when node backend\n // methods have been modularized and they all return tensorInfo.\n // TensorInfos do not have a rank attribute.\n if (outInfo.rank != null) {\n return outInfo;\n }\n const { dataId, shape, dtype } = outInfo;\n return this.makeTensorFromDataId(dataId, shape, dtype);\n });\n // Save the inputs and outputs.\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (isTapeOn) {\n let tensorsToSave = this.getTensorsForGradient(kernelName, inputs, outTensors);\n if (tensorsToSave == null) {\n // Fallback for ops that call runKernelFunc and pass in\n // inputsToSave and outputsToSave. Currently this is the set of ops\n // with kernel support in the WASM backend. Once those ops and\n // respective gradients are modularised we can remove this path.\n if (outputsToSave == null) {\n outputsToSave = [];\n }\n const outsToSave = outTensors.filter((_, i) => outputsToSave[i]);\n tensorsToSave = (inputsToSave || []).slice().concat(outsToSave);\n }\n saved = this.saveTensorsForBackwardMode(tensorsToSave);\n }\n return outTensors;\n };\n }\n else {\n if (forwardFunc == null) {\n throw new Error(`Error running ${kernelName}: Neither modular kernel nor forward func passed`);\n }\n const saveFunc = (tensors) => {\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (!isTapeOn) {\n return;\n }\n saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n };\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = this.tidy(() => forwardFunc(this.backend, saveFunc));\n const outs = (Array.isArray(out) ? out : [out]);\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outs);\n }\n return outs;\n };\n }\n // Stop recording to a tape when running a kernel.\n let kernelProfile;\n this.scopedRun(() => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {\n outputs = kernelFunc();\n }\n else {\n kernelProfile = this.profiler.profileKernel(kernelName, inputs, () => kernelFunc());\n if (this.ENV.getBool('DEBUG')) {\n this.profiler.logKernelProfile(kernelProfile);\n }\n outputs = kernelProfile.outputs;\n }\n });\n if (isTapeOn) {\n this.addTapeNode(kernelName, inputs, outputs, backwardsFunc, saved, attrs);\n }\n if (this.state.profiling) {\n this.state.activeProfile.kernels.push({\n name: kernelName,\n bytesAdded: this.state.numBytes - startingBytecount,\n totalBytesSnapshot: this.state.numBytes,\n tensorsAdded: this.state.numTensors - startingNumTensors,\n totalTensorsSnapshot: this.state.numTensors,\n inputShapes: Object.keys(inputs).map(key => inputs[key] != null ? inputs[key].shape : null),\n outputShapes: outputs.map(item => item.shape),\n kernelTimeMs: kernelProfile.timeMs,\n extraInfo: kernelProfile.extraInfo\n });\n }\n return (Array.isArray(out) ? outputs : outputs[0]);\n }\n /**\n * Saves tensors used in forward mode for use in backward mode.\n *\n * @param tensors the list of tensors to save.\n */\n saveTensorsForBackwardMode(tensors) {\n const saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n return saved;\n }\n /**\n * Returns a list of tensors to save for a given gradient calculation.\n *\n * Returns undefined if their is no registered gradient for this kernel in the\n * gradient registry.\n *\n * @param kernelName name of kernel to look up gradient for.\n * @param inputs a map of input tensors.\n * @param outputs an array of output tensors from forward mode of kernel.\n */\n getTensorsForGradient(kernelName, inputs, outputs) {\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n const inputsToSave = gradConfig.inputsToSave || [];\n const outputsToSave = gradConfig.outputsToSave || [];\n // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs\n // specified in inputsToSave will be saved.\n let inputTensorsToSave;\n if (gradConfig.saveAllInputs) {\n util.assert(Array.isArray(inputs), () => 'saveAllInputs is true, expected inputs to be an array.');\n inputTensorsToSave = Object.keys(inputs).map((key) => inputs[key]);\n }\n else {\n inputTensorsToSave = inputsToSave.map((inputName) => inputs[inputName]);\n }\n const outputTensorsToSave = outputs.filter((_, i) => outputsToSave[i]);\n return inputTensorsToSave.concat(outputTensorsToSave);\n }\n // TODO(yassogba) throw exception here once all runkernelFunc calls with\n // inputsToSave/outputsToSave are removed\n return null;\n }\n /**\n * Internal method used by public APIs for tensor creation. Makes a new\n * tensor with the provided shape, dtype and values. It always\n * creates a new data id and writes the values to the underlying backend.\n */\n makeTensor(values, shape, dtype, backend) {\n if (values == null) {\n throw new Error('Values passed to engine.makeTensor() are null');\n }\n dtype = dtype || 'float32';\n backend = backend || this.backend;\n let backendVals = values;\n if (dtype === 'string' && util.isString(values[0])) {\n backendVals = values.map(d => util.encodeString(d));\n }\n const dataId = backend.write(backendVals, shape, dtype);\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n // Count bytes for string tensors.\n if (dtype === 'string') {\n const info = this.state.tensorInfo.get(dataId);\n const newBytes = bytesFromStringArray(backendVals);\n this.state.numBytes += newBytes - info.bytes;\n info.bytes = newBytes;\n }\n return t;\n }\n /**\n * Internal method used by backends. Makes a new tensor\n * that is a wrapper around an existing data id. It doesn't create\n * a new data id, only increments the ref count used in memory tracking.\n */\n makeTensorFromDataId(dataId, shape, dtype, backend) {\n dtype = dtype || 'float32';\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.incRef(t, backend);\n return t;\n }\n makeVariable(initialValue, trainable = true, name, dtype) {\n name = name || this.nextVariableId().toString();\n if (dtype != null && dtype !== initialValue.dtype) {\n initialValue = initialValue.cast(dtype);\n }\n const v = new Variable(initialValue, trainable, name, this.nextTensorId());\n if (this.state.registeredVariables[v.name] != null) {\n throw new Error(`Variable with name ${v.name} was already registered`);\n }\n this.state.registeredVariables[v.name] = v;\n this.incRef(v, this.backend);\n return v;\n }\n incRef(a, backend) {\n const refCount = this.state.tensorInfo.has(a.dataId) ?\n this.state.tensorInfo.get(a.dataId).refCount :\n 0;\n this.state.numTensors++;\n if (a.dtype === 'string') {\n this.state.numStringTensors++;\n }\n if (refCount === 0) {\n this.state.numDataBuffers++;\n // Bytes for complex numbers are counted by their components. Bytes for\n // string tensors are counted when writing values.\n let bytes = 0;\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n bytes = a.size * util.bytesPerElement(a.dtype);\n }\n this.state.tensorInfo.set(a.dataId, {\n backend: backend || this.backend,\n dtype: a.dtype,\n shape: a.shape,\n bytes,\n refCount: 0\n });\n this.state.numBytes += bytes;\n }\n this.state.tensorInfo.get(a.dataId).refCount++;\n if (!(a instanceof Variable)) {\n this.track(a);\n }\n }\n disposeTensor(a) {\n if (!this.state.tensorInfo.has(a.dataId)) {\n return;\n }\n this.state.numTensors--;\n if (a.dtype === 'string') {\n this.state.numStringTensors--;\n }\n const info = this.state.tensorInfo.get(a.dataId);\n const refCount = info.refCount;\n if (refCount <= 1) {\n // Don't count bytes for complex numbers as they are counted by their\n // components.\n if (a.dtype !== 'complex64') {\n this.state.numBytes -= info.bytes;\n }\n this.state.numDataBuffers--;\n info.backend.disposeData(a.dataId);\n this.state.tensorInfo.delete(a.dataId);\n }\n else {\n // Notify the backend to descrease the ref count for complex tensor\n // components. This method is only implemented in WebGL right now. When\n // there are multiple references, complex tensor cannot dispose the\n // components if ref count is not in sync with engine.\n info.backend.decComplexRef(a.dataId);\n this.state.tensorInfo.get(a.dataId).refCount--;\n }\n // TODO(nsthorat): Construct an error and save the stack trace for\n // debugging when in debug mode. Creating a stack trace is too expensive\n // to do unconditionally.\n }\n disposeVariables() {\n for (const varName in this.state.registeredVariables) {\n const v = this.state.registeredVariables[varName];\n this.disposeVariable(v);\n }\n }\n disposeVariable(v) {\n this.disposeTensor(v);\n if (this.state.registeredVariables[v.name] != null) {\n delete this.state.registeredVariables[v.name];\n }\n }\n memory() {\n const info = this.backend.memory();\n info.numTensors = this.state.numTensors;\n info.numDataBuffers = this.state.numDataBuffers;\n info.numBytes = this.state.numBytes;\n if (this.state.numStringTensors > 0) {\n info.unreliable = true;\n if (info.reasons == null) {\n info.reasons = [];\n }\n info.reasons.push('Memory usage by string tensors is approximate ' +\n '(2 bytes per character)');\n }\n return info;\n }\n async profile(query) {\n this.state.profiling = true;\n const startBytes = this.state.numBytes;\n const startNumTensors = this.state.numTensors;\n this.state.activeProfile.kernels = [];\n this.state.activeProfile.result = await query();\n this.state.profiling = false;\n this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));\n this.state.activeProfile.newBytes = this.state.numBytes - startBytes;\n this.state.activeProfile.newTensors =\n this.state.numTensors - startNumTensors;\n for (const kernel of this.state.activeProfile.kernels) {\n kernel.kernelTimeMs = await kernel.kernelTimeMs;\n kernel.extraInfo = await kernel.extraInfo;\n }\n return this.state.activeProfile;\n }\n isTapeOn() {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n addTapeNode(kernelName, inputs, outputs, gradientsFunc, saved, attrs) {\n const tapeNode = { id: this.state.nextTapeNodeId++, kernelName, inputs, outputs, saved };\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n gradientsFunc = gradConfig.gradFunc;\n }\n if (gradientsFunc != null) {\n tapeNode.gradient = (dys) => {\n // TODO(smilkov): To optimize back-prop, pass dys that are not used in\n // the backprop graph to the user as null instead of zeros\n dys = dys.map((dy, i) => {\n if (dy == null) {\n const output = outputs[i];\n const vals = util.makeZerosTypedArray(output.size, output.dtype);\n return this.makeTensor(vals, output.shape, output.dtype);\n }\n return dy;\n });\n // Grad functions of ops with single outputs expect a dy, while ops\n // with multiple outputs expect dys (array of dy).\n return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);\n };\n }\n this.state.activeTape.push(tapeNode);\n }\n keep(result) {\n result.kept = true;\n return result;\n }\n startTape() {\n if (this.state.gradientDepth === 0) {\n this.state.activeTape = [];\n }\n this.state.gradientDepth++;\n }\n endTape() {\n this.state.gradientDepth--;\n }\n /**\n * Start a scope. Use this with endScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n startScope(name) {\n const scopeInfo = {\n track: [],\n name: 'unnamed scope',\n id: this.state.nextScopeId++\n };\n if (name) {\n scopeInfo.name = name;\n }\n this.state.scopeStack.push(scopeInfo);\n this.state.activeScope = scopeInfo;\n }\n /**\n * End a scope. Use this with startScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n endScope(result) {\n const tensorsToTrackInParent = getTensorsInContainer(result);\n const tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(t => t.id));\n // Dispose the arrays tracked in this scope.\n for (let i = 0; i < this.state.activeScope.track.length; i++) {\n const tensor = this.state.activeScope.track[i];\n if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {\n tensor.dispose();\n }\n }\n const oldScope = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ?\n null :\n this.state.scopeStack[this.state.scopeStack.length - 1];\n // Track the current result in the parent scope.\n tensorsToTrackInParent.forEach(tensor => {\n // Only track the tensor if was allocated in the inner scope and is not\n // globally kept.\n if (!tensor.kept && tensor.scopeId === oldScope.id) {\n this.track(tensor);\n }\n });\n }\n /**\n * Returns gradients of `f` with respect to each of the `xs`. The gradients\n * returned are of the same length as `xs`, but some might be null if `f`\n * was not a function of that `x`. It also takes optional dy to multiply the\n * gradient, which defaults to `1`.\n */\n gradients(f, xs, dy, allowNoGradients = false) {\n util.assert(xs.length > 0, () => 'gradients() received an empty list of xs.');\n if (dy != null && dy.dtype !== 'float32') {\n throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);\n }\n const y = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy('forward', f));\n util.assert(y instanceof Tensor, () => 'The result y returned by f() must be a tensor.');\n // Filter out the nodes that don't connect x => y.\n const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);\n if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {\n throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' +\n 'that the f you passed encloses all operations that lead from x ' +\n 'to y.');\n }\n return this.tidy('backward', () => {\n const accumulatedGradientMap = {};\n accumulatedGradientMap[y.id] = (dy == null) ? ones(y.shape) : dy;\n // Backprop gradients through the filtered nodes.\n backpropagateGradients(accumulatedGradientMap, filteredTape, \n // Pass the tidy function to avoid circular dep with `tape.ts`.\n f => this.tidy(f), \n // Pass an add function to avoide a circular dep with `tape.ts`.\n add);\n const grads = xs.map(x => accumulatedGradientMap[x.id]);\n if (this.state.gradientDepth === 0) {\n // This means that we are not computing higher-order gradients\n // and can clean up the tape.\n this.state.activeTape.forEach(node => {\n for (const tensor of node.saved) {\n tensor.dispose();\n }\n });\n this.state.activeTape = null;\n }\n return { value: y, grads };\n });\n }\n customGrad(f) {\n util.assert(util.isFunction(f), () => 'The f passed in customGrad(f) must be a function.');\n return (...inputs) => {\n util.assert(inputs.every(t => t instanceof Tensor), () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' +\n 'tensors');\n let res;\n const inputMap = {};\n inputs.forEach((input, i) => {\n inputMap[i] = input;\n });\n return this.runKernelFunc((_, save) => {\n res = f(...[...inputs, save]);\n util.assert(res.value instanceof Tensor, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.value` is a tensor');\n util.assert(util.isFunction(res.gradFunc), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function.');\n return res.value;\n }, inputMap, (dy, saved) => {\n const gradRes = res.gradFunc(dy, saved);\n const grads = Array.isArray(gradRes) ? gradRes : [gradRes];\n util.assert(grads.length === inputs.length, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'the same number of tensors as inputs passed to f(...).');\n util.assert(grads.every(t => t instanceof Tensor), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'a list of only tensors.');\n const gradMap = {};\n grads.forEach((grad, i) => {\n gradMap[i] = () => grad;\n });\n return gradMap;\n });\n };\n }\n readSync(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.readSync(dataId);\n }\n read(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.read(dataId);\n }\n async time(query) {\n const start = now();\n const timingInfo = await this.backend.time(query);\n timingInfo.wallMs = now() - start;\n return timingInfo;\n }\n /**\n * Tracks a Tensor in the current scope to be automatically cleaned up\n * when the current scope ends, and returns the value.\n *\n * @param result The Tensor to track in the current scope.\n */\n track(result) {\n if (this.state.activeScope != null) {\n result.scopeId = this.state.activeScope.id;\n this.state.activeScope.track.push(result);\n }\n return result;\n }\n get registeredVariables() {\n return this.state.registeredVariables;\n }\n /**\n * Resets the engine state. Removes all backends but does not remove\n * registered backend factories.\n */\n reset() {\n // Make any pending promise obsolete.\n this.pendingBackendInitId++;\n this.state.dispose();\n this.ENV.reset();\n this.state = new EngineState();\n for (const backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n this.backendName = null;\n this.backendInstance = null;\n this.pendingBackendInit = null;\n }\n}\nEngine.nextTensorId = 0;\nEngine.nextVariableId = 0;\nfunction ones(shape) {\n const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');\n return ENGINE.makeTensor(values, shape, 'float32');\n}\nexport function getOrMakeEngine() {\n const ns = getGlobalNamespace();\n if (ns._tfengine == null) {\n const environment = new Environment(ns);\n ns._tfengine = new Engine(environment);\n }\n setEnvironmentGlobal(ns._tfengine.ENV);\n // Tell the current tensor interface that the global engine is responsible\n // for tracking.\n setTensorTracker(() => ns._tfengine);\n return ns._tfengine;\n}\nexport const ENGINE = getOrMakeEngine();\n/**\n * A implementation of the add op for use within engine and tape.\n *\n * This allows us to avoid a circular dependency between add.ts and engine.\n * It is exported to be available in tape tests.\n */\nexport function add(a, b) {\n // We duplicate Add here to avoid a circular dependency with add.ts.\n const inputs = { a, b };\n return ENGINE.runKernel(Add, inputs);\n}\n//# sourceMappingURL=engine.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport * as util from './util';\n/**\n * Computes a list of TapeNodes that connect x to y, filtering everything else\n * out and preserving the order of the original tape elements.\n *\n * @param tape The tape elements to filter.\n * @param xs The input Tensors.\n * @param y The output Tensor.\n */\nexport function getFilteredNodesXToY(tape, xs, y) {\n // Forward pass to compute all the nodes and Tensors that are transitively a\n // function of x.\n const tensorsFromX = {};\n const nodesFromX = {};\n for (let i = 0; i < xs.length; i++) {\n tensorsFromX[xs[i].id] = true;\n }\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n for (const inputName in nodeInputs) {\n const input = nodeInputs[inputName];\n let anyInputFromX = false;\n for (let j = 0; j < xs.length; j++) {\n if (tensorsFromX[input.id]) {\n node.outputs.forEach(output => tensorsFromX[output.id] = true);\n anyInputFromX = true;\n nodesFromX[node.id] = true;\n break;\n }\n }\n if (anyInputFromX) {\n break;\n }\n }\n }\n // Backward pass to find all of the nodes and Tensors that lead to y.\n const tensorsLeadToY = {};\n tensorsLeadToY[y.id] = true;\n const nodesToY = {};\n for (let i = tape.length - 1; i >= 0; i--) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n // If any of the outputs lead to y, mark all of the inputs as leading to y.\n for (let j = 0; j < node.outputs.length; j++) {\n if (tensorsLeadToY[node.outputs[j].id]) {\n for (const inputName in nodeInputs) {\n tensorsLeadToY[nodeInputs[inputName].id] = true;\n nodesToY[node.id] = true;\n }\n break;\n }\n }\n }\n // Return the paths that come from x and lead to y.\n const filteredTape = [];\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n if (nodesFromX[node.id] && nodesToY[node.id]) {\n // Prune the inputs from the node that aren't a function of x.\n const prunedInputs = {};\n for (const inputName in node.inputs) {\n const nodeInput = node.inputs[inputName];\n if (tensorsFromX[nodeInput.id]) {\n prunedInputs[inputName] = nodeInput;\n }\n }\n // Copy the node and overwrite inputsAndArgs to the pruned version.\n const prunedNode = Object.assign({}, node);\n prunedNode.inputs = prunedInputs;\n prunedNode.outputs = node.outputs;\n filteredTape.push(prunedNode);\n }\n }\n return filteredTape;\n}\n/**\n * Backpropagate gradients through the filtered TapeNodes.\n *\n * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map\n * is mutated by this method.\n * @param filteredTape The filtered TapeNodes to backprop through.\n */\nexport function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {\n // Walk the tape backward and keep a map of Tensor to its gradient.\n for (let i = filteredTape.length - 1; i >= 0; i--) {\n const node = filteredTape[i];\n const dys = [];\n node.outputs.forEach(o => {\n const gradTensor = tensorAccumulatedGradientMap[o.id];\n if (gradTensor != null) {\n dys.push(gradTensor);\n }\n else {\n // This particular output is not in the back-propagation subgraph, so it\n // does not affect the final output, thus we put null for its dy.\n dys.push(null);\n }\n });\n if (node.gradient == null) {\n throw new Error(`Cannot compute gradient: gradient function not found ` +\n `for ${node.kernelName}.`);\n }\n // Backprop dy through this node and accumulate gradients over the inputs.\n const inputGradients = node.gradient(dys);\n for (const inputName in node.inputs) {\n if (!(inputName in inputGradients)) {\n throw new Error(`Cannot backprop through input ${inputName}. ` +\n `Available gradients found: ${Object.keys(inputGradients)}.`);\n }\n // Call the gradient function.\n const dx = tidy(() => inputGradients[inputName]());\n if (dx.dtype !== 'float32') {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);\n }\n const x = node.inputs[inputName];\n if (!util.arraysEqual(dx.shape, x.shape)) {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `'${inputName}' has shape '${dx.shape}', which does not match ` +\n `the shape of the input '${x.shape}'`);\n }\n if (tensorAccumulatedGradientMap[x.id] == null) {\n tensorAccumulatedGradientMap[x.id] = dx;\n }\n else {\n const curGradient = tensorAccumulatedGradientMap[x.id];\n tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);\n curGradient.dispose();\n }\n }\n }\n}\n//# sourceMappingURL=tape.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// tslint:disable-next-line:no-any\nfunction _isNavigatorDefined() {\n return typeof navigator !== 'undefined' && navigator != null;\n}\nexport function isMobile() {\n if (_isNavigatorDefined()) {\n // tslint:disable-next-line:no-any\n const a = navigator.userAgent || navigator.vendor || window.opera;\n // tslint:disable-next-line:max-line-length\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(a) ||\n // tslint:disable-next-line:max-line-length\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(a.substr(0, 4));\n }\n return false;\n}\nexport function isBrowser() {\n return (typeof window !== 'undefined' && window.document != null) ||\n //@ts-ignore\n (typeof WorkerGlobalScope !== 'undefined');\n}\n//# sourceMappingURL=device_util.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport './engine';\nimport * as device_util from './device_util';\nimport { env } from './environment';\nconst ENV = env();\n/**\n * This file contains environment-related flag registrations.\n */\n/** Whether to enable debug mode. */\nENV.registerFlag('DEBUG', () => false, debugValue => {\n if (debugValue) {\n console.warn('Debugging mode is ON. The output of every math call will ' +\n 'be downloaded to CPU and checked for NaNs. ' +\n 'This significantly impacts performance.');\n }\n});\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_NODE', () => (typeof process !== 'undefined') &&\n (typeof process.versions !== 'undefined') &&\n (typeof process.versions.node !== 'undefined'));\n/** Whether this browser is Chrome. */\nENV.registerFlag('IS_CHROME', () => typeof navigator !== 'undefined' && navigator != null &&\n navigator.userAgent != null && /Chrome/.test(navigator.userAgent) &&\n /Google Inc/.test(navigator.vendor));\n/**\n * True when the environment is \"production\" where we disable safety checks\n * to gain performance.\n */\nENV.registerFlag('PROD', () => false);\n/**\n * Whether to do sanity checks when inferring a shape from user-provided\n * values, used when creating a new tensor.\n */\nENV.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));\n/** Whether deprecation warnings are enabled. */\nENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);\n/** True if running unit tests. */\nENV.registerFlag('IS_TEST', () => false);\n/** Whether to check computation result for errors. */\nENV.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', () => true);\n//# sourceMappingURL=flags.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from './engine';\nimport { env } from './environment';\nimport { Tensor } from './tensor';\nimport { assert, flatten, inferDtype, isTypedArray, toTypedArray } from './util';\nexport function inferShape(val, dtype) {\n let firstElem = val;\n if (isTypedArray(val)) {\n return dtype === 'string' ? [] : [val.length];\n }\n if (!Array.isArray(val)) {\n return []; // Scalar.\n }\n const shape = [];\n while (Array.isArray(firstElem) ||\n isTypedArray(firstElem) && dtype !== 'string') {\n shape.push(firstElem.length);\n firstElem = firstElem[0];\n }\n if (Array.isArray(val) &&\n env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {\n deepAssertShapeConsistency(val, shape, []);\n }\n return shape;\n}\nfunction deepAssertShapeConsistency(val, shape, indices) {\n indices = indices || [];\n if (!(Array.isArray(val)) && !isTypedArray(val)) {\n assert(shape.length === 0, () => `Element arr[${indices.join('][')}] is a primitive, ` +\n `but should be an array/TypedArray of ${shape[0]} elements`);\n return;\n }\n assert(shape.length > 0, () => `Element arr[${indices.join('][')}] should be a primitive, ` +\n `but is an array of ${val.length} elements`);\n assert(val.length === shape[0], () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` +\n `elements, but has ${val.length} elements`);\n const subShape = shape.slice(1);\n for (let i = 0; i < val.length; ++i) {\n deepAssertShapeConsistency(val[i], subShape, indices.concat(i));\n }\n}\nfunction assertDtype(expectedDtype, actualDType, argName, functionName) {\n if (expectedDtype === 'string_or_numeric') {\n return;\n }\n if (expectedDtype == null) {\n throw new Error(`Expected dtype cannot be null.`);\n }\n if (expectedDtype !== 'numeric' && expectedDtype !== actualDType ||\n expectedDtype === 'numeric' && actualDType === 'string') {\n throw new Error(`Argument '${argName}' passed to '${functionName}' must ` +\n `be ${expectedDtype} tensor, but got ${actualDType} tensor`);\n }\n}\nexport function convertToTensor(x, argName, functionName, parseAsDtype = 'numeric') {\n if (x instanceof Tensor) {\n assertDtype(parseAsDtype, x.dtype, argName, functionName);\n return x;\n }\n let inferredDtype = inferDtype(x);\n // If the user expects a bool/int/float, use that info to update the\n // inferredDtype when it is not a string.\n if (inferredDtype !== 'string' &&\n ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {\n inferredDtype = parseAsDtype;\n }\n assertDtype(parseAsDtype, inferredDtype, argName, functionName);\n if ((x == null) ||\n (!isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' &&\n typeof x !== 'boolean' && typeof x !== 'string')) {\n const type = x == null ? 'null' : x.constructor.name;\n throw new Error(`Argument '${argName}' passed to '${functionName}' must be a ` +\n `Tensor or TensorLike, but got '${type}'`);\n }\n const inferredShape = inferShape(x, inferredDtype);\n if (!isTypedArray(x) && !Array.isArray(x)) {\n x = [x];\n }\n const skipTypedArray = true;\n const values = inferredDtype !== 'string' ?\n toTypedArray(x, inferredDtype) :\n flatten(x, [], skipTypedArray);\n return ENGINE.makeTensor(values, inferredShape, inferredDtype);\n}\nexport function convertToTensorArray(arg, argName, functionName, parseAsDtype = 'numeric') {\n if (!Array.isArray(arg)) {\n throw new Error(`Argument ${argName} passed to ${functionName} must be a ` +\n '`Tensor[]` or `TensorLike[]`');\n }\n const tensors = arg;\n return tensors.map((t, i) => convertToTensor(t, `${argName}[${i}]`, functionName, parseAsDtype));\n}\n//# sourceMappingURL=tensor_util_env.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { isPromise } from '../util';\nexport const OP_SCOPE_SUFFIX = '__op';\n/**\n * Used for wrapping functions that perform math operations on\n * Tensors. The function will be wrapped in a named scope that cleans all\n * memory usage after the function is done.\n */\nexport function op(f) {\n const keys = Object.keys(f);\n if (keys.length !== 1) {\n throw new Error(`Please provide an object with a single key ` +\n `(operation name) mapping to a function. Got an object with ` +\n `${keys.length} keys.`);\n }\n let opName = keys[0];\n const fn = f[opName];\n // Strip the underscore from the end of the function name.\n if (opName.endsWith('_')) {\n opName = opName.substring(0, opName.length - 1);\n }\n // add an __op suffix to distinguish ops from kernels in tf.profile\n opName = opName + OP_SCOPE_SUFFIX;\n // tslint:disable-next-line:no-any\n const f2 = (...args) => {\n ENGINE.startScope(opName);\n try {\n const result = fn(...args);\n if (isPromise(result)) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n ENGINE.endScope(result);\n return result;\n }\n catch (ex) {\n ENGINE.endScope(null);\n throw ex;\n }\n };\n Object.defineProperty(f2, 'name', { value: opName, configurable: true });\n // tslint:disable-next-line:no-any\n return f2;\n}\n//# sourceMappingURL=operation.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Complex } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Converts two real numbers to a complex number.\n *\n * Given a tensor `real` representing the real part of a complex number, and a\n * tensor `imag` representing the imaginary part of a complex number, this\n * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],\n * where r represents the real part and i represents the imag part.\n *\n * The input tensors real and imag must have the same shape.\n *\n * ```js\n * const real = tf.tensor1d([2.25, 3.25]);\n * const imag = tf.tensor1d([4.75, 5.75]);\n * const complex = tf.complex(real, imag);\n *\n * complex.print();\n * ```\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction complex_(real, imag) {\n const $real = convertToTensor(real, 'real', 'complex');\n const $imag = convertToTensor(imag, 'imag', 'complex');\n util.assertShapesMatch($real.shape, $imag.shape, `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` +\n `must match in call to tf.complex().`);\n const inputs = { real: $real, imag: $imag };\n return ENGINE.runKernel(Complex, inputs);\n}\nexport const complex = op({ complex_ });\n//# sourceMappingURL=complex.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { assert, assertNonNegativeIntegerDimensions, flatten, inferDtype, isTypedArray, sizeFromShape, toTypedArray } from '../util';\n/** This is shared code across all tensor creation methods. */\nexport function makeTensor(values, shape, inferredShape, dtype) {\n if (dtype == null) {\n dtype = inferDtype(values);\n }\n if (dtype === 'complex64') {\n throw new Error(`Cannot construct a complex64 tensor directly. ` +\n `Please use tf.complex(real, imag).`);\n }\n if (!isTypedArray(values) && !Array.isArray(values) &&\n typeof values !== 'number' && typeof values !== 'boolean' &&\n typeof values !== 'string') {\n throw new Error('values passed to tensor(values) must be a number/boolean/string or ' +\n 'an array of numbers/booleans/strings, or a TypedArray');\n }\n if (shape != null) {\n assertNonNegativeIntegerDimensions(shape);\n const providedSize = sizeFromShape(shape);\n const inferredSize = sizeFromShape(inferredShape);\n assert(providedSize === inferredSize, () => `Based on the provided shape, [${shape}], the tensor should have ` +\n `${providedSize} values but has ${inferredSize}`);\n for (let i = 0; i < inferredShape.length; ++i) {\n const inferred = inferredShape[i];\n const flatDimsDontMatch = i === inferredShape.length - 1 ?\n inferred !== sizeFromShape(shape.slice(i)) :\n true;\n assert(inferredShape[i] === shape[i] || !flatDimsDontMatch, () => `Error creating a new Tensor. Inferred shape ` +\n `(${inferredShape}) does not match the provided ` +\n `shape (${shape}). `);\n }\n }\n if (!isTypedArray(values) && !Array.isArray(values)) {\n values = [values];\n }\n shape = shape || inferredShape;\n values = dtype !== 'string' ?\n toTypedArray(values, dtype) :\n flatten(values, [], true);\n return ENGINE.makeTensor(values, shape, dtype);\n}\n//# sourceMappingURL=tensor_ops_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates a `tf.Tensor` with the provided values, shape and dtype.\n *\n * ```js\n * // Pass an array of values to create a vector.\n * tf.tensor([1, 2, 3, 4]).print();\n * ```\n *\n * ```js\n * // Pass a nested array of values to make a matrix or a higher\n * // dimensional tensor.\n * tf.tensor([[1, 2], [3, 4]]).print();\n * ```\n *\n * ```js\n * // Pass a flat array and specify a shape yourself.\n * tf.tensor([1, 2, 3, 4], [2, 2]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`. If the values are strings,\n * they will be encoded as utf-8 and kept as `Uint8Array[]`.\n * @param shape The shape of the tensor. Optional. If not provided,\n * it is inferred from `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor(values, shape, dtype) {\n const inferredShape = inferShape(values, dtype);\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/* Type definitions for exporting and importing of models. */\n/**\n * A map from Tensor dtype to number of bytes per element of the Tensor.\n */\nexport const DTYPE_VALUE_SIZE_MAP = {\n 'float32': 4,\n 'float16': 2,\n 'int32': 4,\n 'uint16': 2,\n 'uint8': 1,\n 'bool': 1,\n 'complex64': 8\n};\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { complex } from '../ops/complex';\nimport { tensor } from '../ops/tensor';\nimport { sizeFromShape } from '../util';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/** Number of bytes reserved for the length of the string. (32bit integer). */\nconst NUM_BYTES_STRING_LENGTH = 4;\n/**\n * Encode a map from names to weight values as an ArrayBuffer, along with an\n * `Array` of `WeightsManifestEntry` as specification of the encoded weights.\n *\n * This function does not perform sharding.\n *\n * This function is the reverse of `decodeWeights`.\n *\n * @param tensors A map (\"dict\") from names to tensors.\n * @param group Group to which the weights belong (optional).\n * @returns A `Promise` of\n * - A flat `ArrayBuffer` with all the binary values of the `Tensor`s\n * concatenated.\n * - An `Array` of `WeightManifestEntry`s, carrying information including\n * tensor names, `dtype`s and shapes.\n * @throws Error: on unsupported tensor `dtype`.\n */\nexport async function encodeWeights(tensors, group) {\n // TODO(adarob, cais): Support quantization.\n const specs = [];\n const dataPromises = [];\n const names = Array.isArray(tensors) ?\n tensors.map(tensor => tensor.name) :\n Object.keys(tensors);\n for (let i = 0; i < names.length; ++i) {\n const name = names[i];\n const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];\n if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' &&\n t.dtype !== 'string' && t.dtype !== 'complex64') {\n throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);\n }\n const spec = { name, shape: t.shape, dtype: t.dtype };\n if (t.dtype === 'string') {\n const utf8bytes = new Promise(async (resolve) => {\n const vals = await t.bytes();\n const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) +\n NUM_BYTES_STRING_LENGTH * vals.length;\n const bytes = new Uint8Array(totalNumBytes);\n let offset = 0;\n for (let i = 0; i < vals.length; i++) {\n const val = vals[i];\n const bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);\n bytes.set(bytesOfLength, offset);\n offset += NUM_BYTES_STRING_LENGTH;\n bytes.set(val, offset);\n offset += val.length;\n }\n resolve(bytes);\n });\n dataPromises.push(utf8bytes);\n }\n else {\n dataPromises.push(t.data());\n }\n if (group != null) {\n spec.group = group;\n }\n specs.push(spec);\n }\n const tensorValues = await Promise.all(dataPromises);\n return { data: concatenateTypedArrays(tensorValues), specs };\n}\n/**\n * Decode flat ArrayBuffer as weights.\n *\n * This function does not handle sharding.\n *\n * This function is the reverse of `encodeWeights`.\n *\n * @param buffer A flat ArrayBuffer carrying the binary values of the tensors\n * concatenated in the order specified in `specs`.\n * @param specs Specifications of the names, dtypes and shapes of the tensors\n * whose value are encoded by `buffer`.\n * @return A map from tensor name to tensor value, with the names corresponding\n * to names in `specs`.\n * @throws Error, if any of the tensors has unsupported dtype.\n */\nexport function decodeWeights(buffer, specs) {\n // TODO(adarob, cais): Support quantization.\n const out = {};\n let float16Decode;\n let offset = 0;\n for (const spec of specs) {\n const name = spec.name;\n const dtype = spec.dtype;\n const shape = spec.shape;\n const size = sizeFromShape(shape);\n let values;\n if ('quantization' in spec) {\n const quantization = spec.quantization;\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n if (!('min' in quantization && 'scale' in quantization)) {\n throw new Error(`Weight ${spec.name} with quantization ${quantization.dtype} ` +\n `doesn't have corresponding metadata min and scale.`);\n }\n }\n else if (quantization.dtype === 'float16') {\n if (dtype !== 'float32') {\n throw new Error(`Weight ${spec.name} is quantized with ${quantization.dtype} ` +\n `which only supports weights of type float32 not ${dtype}.`);\n }\n }\n else {\n throw new Error(`Weight ${spec.name} has unknown ` +\n `quantization dtype ${quantization.dtype}. ` +\n `Supported quantization dtypes are: ` +\n `'uint8', 'uint16', and 'float16'.`);\n }\n const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];\n const byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);\n const quantizedArray = (quantization.dtype === 'uint8') ?\n new Uint8Array(byteBuffer) :\n new Uint16Array(byteBuffer);\n if (dtype === 'float32') {\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n values = new Float32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = v * quantization.scale + quantization.min;\n }\n }\n else if (quantization.dtype === 'float16') {\n if (float16Decode === undefined) {\n float16Decode = getFloat16Decoder();\n }\n values = float16Decode(quantizedArray);\n }\n else {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type float32.`);\n }\n }\n else if (dtype === 'int32') {\n if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type int32.`);\n }\n values = new Int32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = Math.round(v * quantization.scale + quantization.min);\n }\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * quantizationSizeFactor;\n }\n else if (dtype === 'string') {\n const size = sizeFromShape(spec.shape);\n values = [];\n for (let i = 0; i < size; i++) {\n const byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];\n offset += NUM_BYTES_STRING_LENGTH;\n const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));\n values.push(bytes);\n offset += byteLength;\n }\n }\n else {\n const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];\n const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);\n if (dtype === 'float32') {\n values = new Float32Array(byteBuffer);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(byteBuffer);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(byteBuffer);\n }\n else if (dtype === 'complex64') {\n values = new Float32Array(byteBuffer);\n const real = new Float32Array(values.length / 2);\n const image = new Float32Array(values.length / 2);\n for (let i = 0; i < real.length; i++) {\n real[i] = values[i * 2];\n image[i] = values[i * 2 + 1];\n }\n const realTensor = tensor(real, shape, 'float32');\n const imageTensor = tensor(image, shape, 'float32');\n out[name] = complex(realTensor, imageTensor);\n realTensor.dispose();\n imageTensor.dispose();\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * dtypeFactor;\n }\n if (dtype !== 'complex64') {\n out[name] = tensor(values, shape, dtype);\n }\n }\n return out;\n}\n/**\n * Concatenate TypedArrays into an ArrayBuffer.\n */\nexport function concatenateTypedArrays(xs) {\n // TODO(adarob, cais): Support quantization.\n if (xs === null) {\n throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);\n }\n let totalByteLength = 0;\n // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'\n // can have a different byte length from that of the `TypedArray` itself,\n // for example, when the `TypedArray` is created from an offset in an\n // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match\n // the `TypedArray` in byte length. If an element of `xs` does not show\n // this property, a new `TypedArray` that satisfy this property will be\n // constructed and pushed into `normalizedXs`.\n const normalizedXs = [];\n xs.forEach((x) => {\n totalByteLength += x.byteLength;\n // tslint:disable:no-any\n normalizedXs.push(x.byteLength === x.buffer.byteLength ? x :\n new x.constructor(x));\n if (!(x instanceof Float32Array || x instanceof Int32Array ||\n x instanceof Uint8Array)) {\n throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);\n }\n // tslint:enable:no-any\n });\n const y = new Uint8Array(totalByteLength);\n let offset = 0;\n normalizedXs.forEach((x) => {\n y.set(new Uint8Array(x.buffer), offset);\n offset += x.byteLength;\n });\n return y.buffer;\n}\n// Use Buffer on Node.js instead of Blob/atob/btoa\nconst useNodeBuffer = typeof Buffer !== 'undefined' &&\n (typeof Blob === 'undefined' || typeof atob === 'undefined' ||\n typeof btoa === 'undefined');\n/**\n * Calculate the byte length of a JavaScript string.\n *\n * Note that a JavaScript string can contain wide characters, therefore the\n * length of the string is not necessarily equal to the byte length.\n *\n * @param str Input string.\n * @returns Byte length.\n */\nexport function stringByteLength(str) {\n if (useNodeBuffer) {\n return Buffer.byteLength(str);\n }\n return new Blob([str]).size;\n}\n/**\n * Encode an ArrayBuffer as a base64 encoded string.\n *\n * @param buffer `ArrayBuffer` to be converted.\n * @returns A string that base64-encodes `buffer`.\n */\nexport function arrayBufferToBase64String(buffer) {\n if (useNodeBuffer) {\n return Buffer.from(buffer).toString('base64');\n }\n const buf = new Uint8Array(buffer);\n let s = '';\n for (let i = 0, l = buf.length; i < l; i++) {\n s += String.fromCharCode(buf[i]);\n }\n return btoa(s);\n}\n/**\n * Decode a base64 string as an ArrayBuffer.\n *\n * @param str Base64 string.\n * @returns Decoded `ArrayBuffer`.\n */\nexport function base64StringToArrayBuffer(str) {\n if (useNodeBuffer) {\n const buf = Buffer.from(str, 'base64');\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n const s = atob(str);\n const buffer = new Uint8Array(s.length);\n for (let i = 0; i < s.length; ++i) {\n buffer.set([s.charCodeAt(i)], i);\n }\n return buffer.buffer;\n}\n/**\n * Concatenate a number of ArrayBuffers into one.\n *\n * @param buffers A number of array buffers to concatenate.\n * @returns Result of concatenating `buffers` in order.\n */\nexport function concatenateArrayBuffers(buffers) {\n if (buffers.length === 1) {\n return buffers[0];\n }\n let totalByteLength = 0;\n buffers.forEach((buffer) => {\n totalByteLength += buffer.byteLength;\n });\n const temp = new Uint8Array(totalByteLength);\n let offset = 0;\n buffers.forEach((buffer) => {\n temp.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n });\n return temp.buffer;\n}\n/**\n * Get the basename of a path.\n *\n * Behaves in a way analogous to Linux's basename command.\n *\n * @param path\n */\nexport function basename(path) {\n const SEPARATOR = '/';\n path = path.trim();\n while (path.endsWith(SEPARATOR)) {\n path = path.slice(0, path.length - 1);\n }\n const items = path.split(SEPARATOR);\n return items[items.length - 1];\n}\n/**\n * Populate ModelArtifactsInfo fields for a model with JSON topology.\n * @param modelArtifacts\n * @returns A ModelArtifactsInfo object.\n */\nexport function getModelArtifactsInfoForJSON(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('Expected JSON model topology, received ArrayBuffer.');\n }\n return {\n dateSaved: new Date(),\n modelTopologyType: 'JSON',\n modelTopologyBytes: modelArtifacts.modelTopology == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),\n weightSpecsBytes: modelArtifacts.weightSpecs == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),\n weightDataBytes: modelArtifacts.weightData == null ?\n 0 :\n modelArtifacts.weightData.byteLength,\n };\n}\n/**\n * Computes mantisa table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 2048 mantissa lookup values.\n */\nfunction computeFloat16MantisaTable() {\n const convertMantissa = (i) => {\n let m = i << 13;\n let e = 0;\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000;\n m <<= 1;\n }\n m &= ~0x00800000;\n e += 0x38800000;\n return m | e;\n };\n const mantisaTable = new Uint32Array(2048);\n mantisaTable[0] = 0;\n for (let i = 1; i < 1024; i++) {\n mantisaTable[i] = convertMantissa(i);\n }\n for (let i = 1024; i < 2048; i++) {\n mantisaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n return mantisaTable;\n}\n/**\n * Computes exponent table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 64 exponent lookup values.\n */\nfunction computeFloat16ExponentTable() {\n const exponentTable = new Uint32Array(64);\n exponentTable[0] = 0;\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n exponentTable[63] = 0xc7800000;\n for (let i = 1; i < 31; i++) {\n exponentTable[i] = i << 23;\n }\n for (let i = 33; i < 63; i++) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n return exponentTable;\n}\n/**\n * Computes offset table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 6d offset values.\n */\nfunction computeFloat16OffsetTable() {\n const offsetTable = new Uint32Array(64);\n for (let i = 0; i < 64; i++) {\n offsetTable[i] = 1024;\n }\n offsetTable[0] = offsetTable[32] = 0;\n return offsetTable;\n}\n/**\n * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values\n * to a Float32Array.\n *\n * @returns Function (buffer: Uint16Array) => Float32Array which decodes\n * the Uint16Array of Float16 bytes to a Float32Array.\n */\nexport function getFloat16Decoder() {\n // Algorithm is based off of\n // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n // Cache lookup tables\n const mantisaTable = computeFloat16MantisaTable();\n const exponentTable = computeFloat16ExponentTable();\n const offsetTable = computeFloat16OffsetTable();\n return (quantizedArray) => {\n const buffer = new ArrayBuffer(4 * quantizedArray.length);\n const bufferUint32View = new Uint32Array(buffer);\n for (let index = 0; index < quantizedArray.length; index++) {\n const float16Bits = quantizedArray[index];\n const float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] +\n exponentTable[float16Bits >> 10];\n bufferUint32View[index] = float32Bits;\n }\n return new Float32Array(buffer);\n };\n}\n//# sourceMappingURL=io_utils.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport class IORouterRegistry {\n constructor() {\n this.saveRouters = [];\n this.loadRouters = [];\n }\n static getInstance() {\n if (IORouterRegistry.instance == null) {\n IORouterRegistry.instance = new IORouterRegistry();\n }\n return IORouterRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerSaveRouter(saveRouter) {\n IORouterRegistry.getInstance().saveRouters.push(saveRouter);\n }\n /**\n * Register a load-handler router.\n *\n * @param loadRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `load` method defined or `null`.\n */\n static registerLoadRouter(loadRouter) {\n IORouterRegistry.getInstance().loadRouters.push(loadRouter);\n }\n /**\n * Look up IOHandler for saving, given a URL-like string.\n *\n * @param url\n * @returns If only one match is found, an instance of IOHandler with the\n * `save` method defined. If no match is found, `null`.\n * @throws Error, if more than one match is found.\n */\n static getSaveHandlers(url) {\n return IORouterRegistry.getHandlers(url, 'save');\n }\n /**\n * Look up IOHandler for loading, given a URL-like string.\n *\n * @param url\n * @param loadOptions Optional, custom load options.\n * @returns All valid handlers for `url`, given the currently registered\n * handler routers.\n */\n static getLoadHandlers(url, loadOptions) {\n return IORouterRegistry.getHandlers(url, 'load', loadOptions);\n }\n static getHandlers(url, handlerType, loadOptions) {\n const validHandlers = [];\n const routers = handlerType === 'load' ?\n IORouterRegistry.getInstance().loadRouters :\n IORouterRegistry.getInstance().saveRouters;\n routers.forEach(router => {\n const handler = router(url, loadOptions);\n if (handler !== null) {\n validHandlers.push(handler);\n }\n });\n return validHandlers;\n }\n}\nexport const registerSaveRouter = (loudRouter) => IORouterRegistry.registerSaveRouter(loudRouter);\nexport const registerLoadRouter = (loudRouter) => IORouterRegistry.registerLoadRouter(loudRouter);\nexport const getSaveHandlers = (url) => IORouterRegistry.getSaveHandlers(url);\nexport const getLoadHandlers = (url, loadOptions) => IORouterRegistry.getLoadHandlers(url, loadOptions);\n//# sourceMappingURL=router_registry.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DATABASE_NAME = 'tensorflowjs';\nconst DATABASE_VERSION = 1;\n// Model data and ModelArtifactsInfo (metadata) are stored in two separate\n// stores for efficient access of the list of stored models and their metadata.\n// 1. The object store for model data: topology, weights and weight manifests.\nconst MODEL_STORE_NAME = 'models_store';\n// 2. The object store for ModelArtifactsInfo, including meta-information such\n// as the type of topology (JSON vs binary), byte size of the topology, byte\n// size of the weights, etc.\nconst INFO_STORE_NAME = 'model_info_store';\n/**\n * Delete the entire database for tensorflow.js, including the models store.\n */\nexport async function deleteDatabase() {\n const idbFactory = getIndexedDBFactory();\n return new Promise((resolve, reject) => {\n const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);\n deleteRequest.onsuccess = () => resolve();\n deleteRequest.onerror = error => reject(error);\n });\n}\nfunction getIndexedDBFactory() {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Add more info about what IOHandler subtypes are available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('Failed to obtain IndexedDB factory because the current environment' +\n 'is not a web browser.');\n }\n // tslint:disable-next-line:no-any\n const theWindow = typeof window === 'undefined' ? self : window;\n const factory = theWindow.indexedDB || theWindow.mozIndexedDB ||\n theWindow.webkitIndexedDB || theWindow.msIndexedDB ||\n theWindow.shimIndexedDB;\n if (factory == null) {\n throw new Error('The current browser does not appear to support IndexedDB.');\n }\n return factory;\n}\nfunction setUpDatabase(openRequest) {\n const db = openRequest.result;\n db.createObjectStore(MODEL_STORE_NAME, { keyPath: 'modelPath' });\n db.createObjectStore(INFO_STORE_NAME, { keyPath: 'modelPath' });\n}\n/**\n * IOHandler subclass: Browser IndexedDB.\n *\n * See the doc string of `browserIndexedDB` for more details.\n */\nexport class BrowserIndexedDB {\n constructor(modelPath) {\n this.indexedDB = getIndexedDBFactory();\n if (modelPath == null || !modelPath) {\n throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n }\n async save(modelArtifacts) {\n // TODO(cais): Support saving GraphDef models.\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n return this.databaseAction(this.modelPath, modelArtifacts);\n }\n async load() {\n return this.databaseAction(this.modelPath);\n }\n /**\n * Perform database action to put model artifacts into or read model artifacts\n * from IndexedDB object store.\n *\n * Whether the action is put or get depends on whether `modelArtifacts` is\n * specified. If it is specified, the action will be put; otherwise the action\n * will be get.\n *\n * @param modelPath A unique string path for the model.\n * @param modelArtifacts If specified, it will be the model artifacts to be\n * stored in IndexedDB.\n * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`\n * of `ModelArtifacts`, if the action is get.\n */\n databaseAction(modelPath, modelArtifacts) {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n if (modelArtifacts == null) {\n // Read model out from object store.\n const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const getRequest = modelStore.get(this.modelPath);\n getRequest.onsuccess = () => {\n if (getRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${this.modelPath}' ` +\n `in IndexedDB.`));\n }\n else {\n resolve(getRequest.result.modelArtifacts);\n }\n };\n getRequest.onerror = error => {\n db.close();\n return reject(getRequest.error);\n };\n modelTx.oncomplete = () => db.close();\n }\n else {\n // Put model into object store.\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n // First, put ModelArtifactsInfo into info store.\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n let infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const putInfoRequest = infoStore.put({ modelPath: this.modelPath, modelArtifactsInfo });\n let modelTx;\n putInfoRequest.onsuccess = () => {\n // Second, put model data into model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const putModelRequest = modelStore.put({\n modelPath: this.modelPath,\n modelArtifacts,\n modelArtifactsInfo\n });\n putModelRequest.onsuccess = () => resolve({ modelArtifactsInfo });\n putModelRequest.onerror = error => {\n // If the put-model request fails, roll back the info entry as\n // well.\n infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const deleteInfoRequest = infoStore.delete(this.modelPath);\n deleteInfoRequest.onsuccess = () => {\n db.close();\n return reject(putModelRequest.error);\n };\n deleteInfoRequest.onerror = error => {\n db.close();\n return reject(putModelRequest.error);\n };\n };\n };\n putInfoRequest.onerror = error => {\n db.close();\n return reject(putInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n }\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\nBrowserIndexedDB.URL_SCHEME = 'indexeddb://';\nexport const indexedDBRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {\n return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(indexedDBRouter);\nIORouterRegistry.registerLoadRouter(indexedDBRouter);\n/**\n * Creates a browser IndexedDB IOHandler for saving and loading models.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save('indexeddb://MyModel'));\n * console.log(saveResult);\n * ```\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),\n * which can be used with, e.g., `tf.Model.save`.\n */\nexport function browserIndexedDB(modelPath) {\n return new BrowserIndexedDB(modelPath);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserIndexedDB.URL_SCHEME) ?\n key.slice(BrowserIndexedDB.URL_SCHEME.length) :\n key;\n}\nexport class BrowserIndexedDBManager {\n constructor() {\n this.indexedDB = getIndexedDBFactory();\n }\n async listModels() {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const tx = db.transaction(INFO_STORE_NAME, 'readonly');\n const store = tx.objectStore(INFO_STORE_NAME);\n // tslint:disable:max-line-length\n // Need to cast `store` as `any` here because TypeScript's DOM\n // library does not have the `getAll()` method even though the\n // method is supported in the latest version of most mainstream\n // browsers:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll\n // tslint:enable:max-line-length\n // tslint:disable-next-line:no-any\n const getAllInfoRequest = store.getAll();\n getAllInfoRequest.onsuccess = () => {\n const out = {};\n for (const item of getAllInfoRequest.result) {\n out[item.modelPath] = item.modelArtifactsInfo;\n }\n resolve(out);\n };\n getAllInfoRequest.onerror = error => {\n db.close();\n return reject(getAllInfoRequest.error);\n };\n tx.oncomplete = () => db.close();\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n const infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const getInfoRequest = infoStore.get(path);\n let modelTx;\n getInfoRequest.onsuccess = () => {\n if (getInfoRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${path}' ` +\n `in IndexedDB.`));\n }\n else {\n // First, delete the entry in the info store.\n const deleteInfoRequest = infoStore.delete(path);\n const deleteModelData = () => {\n // Second, delete the entry in the model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const deleteModelRequest = modelStore.delete(path);\n deleteModelRequest.onsuccess = () => resolve(getInfoRequest.result.modelArtifactsInfo);\n deleteModelRequest.onerror = error => reject(getInfoRequest.error);\n };\n // Proceed with deleting model data regardless of whether deletion\n // of info data succeeds or not.\n deleteInfoRequest.onsuccess = deleteModelData;\n deleteInfoRequest.onerror = error => {\n deleteModelData();\n db.close();\n return reject(getInfoRequest.error);\n };\n }\n };\n getInfoRequest.onerror = error => {\n db.close();\n return reject(getInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n//# sourceMappingURL=indexed_db.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { arrayBufferToBase64String, base64StringToArrayBuffer, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst PATH_SEPARATOR = '/';\nconst PATH_PREFIX = 'tensorflowjs_models';\nconst INFO_SUFFIX = 'info';\nconst MODEL_TOPOLOGY_SUFFIX = 'model_topology';\nconst WEIGHT_SPECS_SUFFIX = 'weight_specs';\nconst WEIGHT_DATA_SUFFIX = 'weight_data';\nconst MODEL_METADATA_SUFFIX = 'model_metadata';\n/**\n * Purge all tensorflow.js-saved model artifacts from local storage.\n *\n * @returns Paths of the models purged.\n */\nexport function purgeLocalStorageArtifacts() {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n throw new Error('purgeLocalStorageModels() cannot proceed because local storage is ' +\n 'unavailable in the current environment.');\n }\n const LS = window.localStorage;\n const purgedModelPaths = [];\n for (let i = 0; i < LS.length; ++i) {\n const key = LS.key(i);\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n if (key.startsWith(prefix) && key.length > prefix.length) {\n LS.removeItem(key);\n const modelName = getModelPathFromKey(key);\n if (purgedModelPaths.indexOf(modelName) === -1) {\n purgedModelPaths.push(modelName);\n }\n }\n }\n return purgedModelPaths;\n}\nfunction getModelKeys(path) {\n return {\n info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),\n topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),\n weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),\n weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),\n modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)\n };\n}\n/**\n * Get model path from a local-storage key.\n *\n * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'\n *\n * @param key\n */\nfunction getModelPathFromKey(key) {\n const items = key.split(PATH_SEPARATOR);\n if (items.length < 3) {\n throw new Error(`Invalid key format: ${key}`);\n }\n return items.slice(1, items.length - 1).join(PATH_SEPARATOR);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserLocalStorage.URL_SCHEME) ?\n key.slice(BrowserLocalStorage.URL_SCHEME.length) :\n key;\n}\n/**\n * IOHandler subclass: Browser Local Storage.\n *\n * See the doc string to `browserLocalStorage` for more details.\n */\nexport class BrowserLocalStorage {\n constructor(modelPath) {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n // TODO(cais): Add more info about what IOHandler subtypes are\n // available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('The current environment does not support local storage.');\n }\n this.LS = window.localStorage;\n if (modelPath == null || !modelPath) {\n throw new Error('For local storage, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n this.keys = getModelKeys(this.modelPath);\n }\n /**\n * Save model artifacts to browser local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @param modelArtifacts The model artifacts to be stored.\n * @returns An instance of SaveResult.\n */\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const topology = JSON.stringify(modelArtifacts.modelTopology);\n const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));\n this.LS.setItem(this.keys.topology, topology);\n this.LS.setItem(this.keys.weightSpecs, weightSpecs);\n this.LS.setItem(this.keys.weightData, arrayBufferToBase64String(modelArtifacts.weightData));\n const result = {\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy\n };\n if (modelArtifacts.signature != null) {\n result.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n result.modelInitializer = modelArtifacts.modelInitializer;\n }\n this.LS.setItem(this.keys.modelMetadata, JSON.stringify(result));\n return { modelArtifactsInfo };\n }\n catch (err) {\n // If saving failed, clean up all items saved so far.\n this.LS.removeItem(this.keys.info);\n this.LS.removeItem(this.keys.topology);\n this.LS.removeItem(this.keys.weightSpecs);\n this.LS.removeItem(this.keys.weightData);\n this.LS.removeItem(this.keys.modelMetadata);\n throw new Error(`Failed to save model '${this.modelPath}' to local storage: ` +\n `size quota being exceeded is a possible cause of this failure: ` +\n `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` +\n `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` +\n `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);\n }\n }\n }\n /**\n * Load a model from local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @returns The loaded model (if loading succeeds).\n */\n async load() {\n const info = JSON.parse(this.LS.getItem(this.keys.info));\n if (info == null) {\n throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);\n }\n if (info.modelTopologyType !== 'JSON') {\n throw new Error('BrowserLocalStorage does not support loading non-JSON model ' +\n 'topology yet.');\n }\n const out = {};\n // Load topology.\n const topology = JSON.parse(this.LS.getItem(this.keys.topology));\n if (topology == null) {\n throw new Error(`In local storage, the topology of model '${this.modelPath}' ` +\n `is missing.`);\n }\n out.modelTopology = topology;\n // Load weight specs.\n const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (weightSpecs == null) {\n throw new Error(`In local storage, the weight specs of model '${this.modelPath}' ` +\n `are missing.`);\n }\n out.weightSpecs = weightSpecs;\n // Load meta-data fields.\n const metadataString = this.LS.getItem(this.keys.modelMetadata);\n if (metadataString != null) {\n const metadata = JSON.parse(metadataString);\n out.format = metadata['format'];\n out.generatedBy = metadata['generatedBy'];\n out.convertedBy = metadata['convertedBy'];\n if (metadata['signature'] != null) {\n out.signature = metadata['signature'];\n }\n if (metadata['userDefinedMetadata'] != null) {\n out.userDefinedMetadata = metadata['userDefinedMetadata'];\n }\n if (metadata['modelInitializer'] != null) {\n out.modelInitializer = metadata['modelInitializer'];\n }\n }\n // Load weight data.\n const weightDataBase64 = this.LS.getItem(this.keys.weightData);\n if (weightDataBase64 == null) {\n throw new Error(`In local storage, the binary weight values of model ` +\n `'${this.modelPath}' are missing.`);\n }\n out.weightData = base64StringToArrayBuffer(weightDataBase64);\n return out;\n }\n}\nBrowserLocalStorage.URL_SCHEME = 'localstorage://';\nexport const localStorageRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {\n return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(localStorageRouter);\nIORouterRegistry.registerLoadRouter(localStorageRouter);\n/**\n * Factory function for local storage IOHandler.\n *\n * This `IOHandler` supports both `save` and `load`.\n *\n * For each model's saved artifacts, four items are saved to local storage.\n * - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the\n * model, such as date saved, type of the topology, size in bytes, etc.\n * - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-\n * style models, this is a stringized JSON.\n * - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the\n * model, can be used to decode the saved binary weight values (see\n * item below).\n * - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary\n * weight values, stored as a base64-encoded string.\n *\n * Saving may throw an `Error` if the total size of the artifacts exceed the\n * browser-specific quota.\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `IOHandler`, which can be used with, e.g.,\n * `tf.Model.save`.\n */\nexport function browserLocalStorage(modelPath) {\n return new BrowserLocalStorage(modelPath);\n}\nexport class BrowserLocalStorageManager {\n constructor() {\n assert(env().getBool('IS_BROWSER'), () => 'Current environment is not a web browser');\n assert(typeof window === 'undefined' ||\n typeof window.localStorage !== 'undefined', () => 'Current browser does not appear to support localStorage');\n this.LS = window.localStorage;\n }\n async listModels() {\n const out = {};\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n const suffix = PATH_SEPARATOR + INFO_SUFFIX;\n for (let i = 0; i < this.LS.length; ++i) {\n const key = this.LS.key(i);\n if (key.startsWith(prefix) && key.endsWith(suffix)) {\n const modelPath = getModelPathFromKey(key);\n out[modelPath] = JSON.parse(this.LS.getItem(key));\n }\n }\n return out;\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n const keys = getModelKeys(path);\n if (this.LS.getItem(keys.info) == null) {\n throw new Error(`Cannot find model at path '${path}'`);\n }\n const info = JSON.parse(this.LS.getItem(keys.info));\n this.LS.removeItem(keys.info);\n this.LS.removeItem(keys.topology);\n this.LS.removeItem(keys.weightSpecs);\n this.LS.removeItem(keys.weightData);\n return info;\n }\n}\n//# sourceMappingURL=local_storage.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Classes and functions for model management across multiple storage mediums.\n *\n * Supported client actions:\n * - Listing models on all registered storage mediums.\n * - Remove model by URL from any registered storage mediums, by using URL\n * string.\n * - Moving or copying model from one path to another in the same medium or from\n * one medium to another, by using URL strings.\n */\nimport { assert } from '../util';\nimport { IORouterRegistry } from './router_registry';\nconst URL_SCHEME_SUFFIX = '://';\nexport class ModelStoreManagerRegistry {\n constructor() {\n this.managers = {};\n }\n static getInstance() {\n if (ModelStoreManagerRegistry.instance == null) {\n ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();\n }\n return ModelStoreManagerRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerManager(scheme, manager) {\n assert(scheme != null, () => 'scheme must not be undefined or null.');\n if (scheme.endsWith(URL_SCHEME_SUFFIX)) {\n scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));\n }\n assert(scheme.length > 0, () => 'scheme must not be an empty string.');\n const registry = ModelStoreManagerRegistry.getInstance();\n assert(registry.managers[scheme] == null, () => `A model store manager is already registered for scheme '${scheme}'.`);\n registry.managers[scheme] = manager;\n }\n static getManager(scheme) {\n const manager = this.getInstance().managers[scheme];\n if (manager == null) {\n throw new Error(`Cannot find model manager for scheme '${scheme}'`);\n }\n return manager;\n }\n static getSchemes() {\n return Object.keys(this.getInstance().managers);\n }\n}\n/**\n * Helper method for parsing a URL string into a scheme and a path.\n *\n * @param url E.g., 'localstorage://my-model'\n * @returns A dictionary with two fields: scheme and path.\n * Scheme: e.g., 'localstorage' in the example above.\n * Path: e.g., 'my-model' in the example above.\n */\nfunction parseURL(url) {\n if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {\n throw new Error(`The url string provided does not contain a scheme. ` +\n `Supported schemes are: ` +\n `${ModelStoreManagerRegistry.getSchemes().join(',')}`);\n }\n return {\n scheme: url.split(URL_SCHEME_SUFFIX)[0],\n path: url.split(URL_SCHEME_SUFFIX)[1],\n };\n}\nasync function cloneModelInternal(sourceURL, destURL, deleteSource = false) {\n assert(sourceURL !== destURL, () => `Old path and new path are the same: '${sourceURL}'`);\n const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);\n assert(loadHandlers.length > 0, () => `Copying failed because no load handler is found for source URL ${sourceURL}.`);\n assert(loadHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `load handlers for source URL ${sourceURL}.`);\n const loadHandler = loadHandlers[0];\n const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);\n assert(saveHandlers.length > 0, () => `Copying failed because no save handler is found for destination ` +\n `URL ${destURL}.`);\n assert(saveHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `save handlers for destination URL ${destURL}.`);\n const saveHandler = saveHandlers[0];\n const sourceScheme = parseURL(sourceURL).scheme;\n const sourcePath = parseURL(sourceURL).path;\n const sameMedium = sourceScheme === parseURL(sourceURL).scheme;\n const modelArtifacts = await loadHandler.load();\n // If moving within the same storage medium, remove the old model as soon as\n // the loading is done. Without doing this, it is possible that the combined\n // size of the two models will cause the cloning to fail.\n if (deleteSource && sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n const saveResult = await saveHandler.save(modelArtifacts);\n // If moving between mediums, the deletion is done after the save succeeds.\n // This guards against the case in which saving to the destination medium\n // fails.\n if (deleteSource && !sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n return saveResult.modelArtifactsInfo;\n}\n/**\n * List all models stored in registered storage mediums.\n *\n * For a web browser environment, the registered mediums are Local Storage and\n * IndexedDB.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @returns A `Promise` of a dictionary mapping URLs of existing models to\n * their model artifacts info. URLs include medium-specific schemes, e.g.,\n * 'indexeddb://my/model/1'. Model artifacts info include type of the\n * model's topology, byte sizes of the topology, weights, etc.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function listModels() {\n const schemes = ModelStoreManagerRegistry.getSchemes();\n const out = {};\n for (const scheme of schemes) {\n const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();\n for (const path in schemeOut) {\n const url = scheme + URL_SCHEME_SUFFIX + path;\n out[url] = schemeOut[path];\n }\n }\n return out;\n}\n/**\n * Remove a model specified by URL from a reigstered storage medium.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @param url A URL to a stored model, with a scheme prefix, e.g.,\n * 'localstorage://my-model-1', 'indexeddb://my/model/2'.\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function removeModel(url) {\n const schemeAndPath = parseURL(url);\n const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);\n return manager.removeModel(schemeAndPath.path);\n}\n/**\n * Copy a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Copying within a storage medium, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Copying between two storage mediums, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Copy the model, from Local Storage to IndexedDB.\n * await tf.io.copyModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove both models.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of copying.\n * @param destURL Destination URL of copying.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function copyModel(sourceURL, destURL) {\n const deleteSource = false;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n/**\n * Move a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Moving within a storage medium, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Moving between two storage mediums, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Move the model, from Local Storage to IndexedDB.\n * await tf.io.moveModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove the moved model.\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of moving.\n * @param destURL Destination URL of moving.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function moveModel(sourceURL, destURL) {\n const deleteSource = true;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\nexport { moveModel, copyModel, removeModel, listModels };\n//# sourceMappingURL=model_management.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { BrowserIndexedDB, BrowserIndexedDBManager } from '../io/indexed_db';\nimport { BrowserLocalStorage, BrowserLocalStorageManager } from '../io/local_storage';\nimport { ModelStoreManagerRegistry } from '../io/model_management';\nexport class PlatformBrowser {\n fetch(path, init) {\n return fetch(path, init);\n }\n now() {\n return performance.now();\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);\n }\n if (this.textEncoder == null) {\n this.textEncoder = new TextEncoder();\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n return new TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_BROWSER')) {\n env().setPlatform('browser', new PlatformBrowser());\n // Register LocalStorage IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());\n }\n catch (err) {\n }\n // Register IndexedDB IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());\n }\n catch (err) {\n }\n}\n//# sourceMappingURL=platform_browser.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\n// We are wrapping this within an object so it can be stubbed by Jasmine.\nexport const getNodeFetch = {\n // tslint:disable-next-line:no-require-imports\n importFetch: () => require('node-fetch')\n};\nlet systemFetch;\n// These getters and setters are for testing so we don't export a mutable\n// variable.\nexport function resetSystemFetch() {\n systemFetch = null;\n}\nexport function setSystemFetch(fetchFn) {\n systemFetch = fetchFn;\n}\nexport function getSystemFetch() {\n return systemFetch;\n}\nexport class PlatformNode {\n constructor() {\n // tslint:disable-next-line:no-require-imports\n this.util = require('util');\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n this.textEncoder = new this.util.TextEncoder();\n }\n fetch(path, requestInits) {\n if (env().global.fetch != null) {\n return env().global.fetch(path, requestInits);\n }\n if (systemFetch == null) {\n systemFetch = getNodeFetch.importFetch();\n }\n return systemFetch(path, requestInits);\n }\n now() {\n const time = process.hrtime();\n return time[0] * 1000 + time[1] / 1000000;\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n if (bytes.length === 0) {\n return '';\n }\n return new this.util.TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_NODE')) {\n env().setPlatform('node', new PlatformNode());\n}\n//# sourceMappingURL=platform_node.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { TensorBuffer } from '../tensor';\nimport * as util from '../util';\n/**\n * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.\n *\n * The values are stored in CPU as `TypedArray`. Fill the buffer using\n * `buffer.set()`, or by modifying directly `buffer.values`.\n *\n * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with\n * those values.\n *\n * ```js\n * // Create a buffer and set values at particular indices.\n * const buffer = tf.buffer([2, 2]);\n * buffer.set(3, 0, 0);\n * buffer.set(5, 1, 0);\n *\n * // Convert the buffer back to a tensor.\n * buffer.toTensor().print();\n * ```\n *\n * @param shape An array of integers defining the output tensor shape.\n * @param dtype The dtype of the buffer. Defaults to 'float32'.\n * @param values The values of the buffer as `TypedArray`. Defaults to\n * zeros.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function buffer(shape, dtype = 'float32', values) {\n dtype = dtype || 'float32';\n util.assertNonNegativeIntegerDimensions(shape);\n return new TensorBuffer(shape, dtype, values);\n}\n//# sourceMappingURL=buffer.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Cast } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Casts a `tf.Tensor` to a new dtype.\n *\n * ```js\n * const x = tf.tensor1d([1.5, 2.5, 3]);\n * tf.cast(x, 'int32').print();\n * ```\n * @param x The input tensor to be casted.\n * @param dtype The dtype to cast the input tensor to.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction cast_(x, dtype) {\n const $x = convertToTensor(x, 'x', 'cast');\n // Sanity checks.\n if (!util.isValidDtype(dtype)) {\n throw new Error(`Failed to cast to unknown dtype ${dtype}`);\n }\n if (dtype === 'string' && $x.dtype !== 'string' ||\n dtype !== 'string' && $x.dtype === 'string') {\n throw new Error('Only strings can be casted to strings');\n }\n const inputs = { x: $x };\n const attrs = { dtype };\n return ENGINE.runKernel(Cast, inputs, attrs);\n}\nexport const cast = op({ cast_ });\n//# sourceMappingURL=cast.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Identity } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a new tensor with the same values and shape as the specified\n * tensor.\n *\n * ```js\n * const x = tf.tensor([1, 2]);\n *\n * x.clone().print();\n * ```\n *\n * @param x The tensor to clone.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction clone_(x) {\n const $x = convertToTensor(x, 'x', 'clone', 'string_or_numeric');\n const inputs = { x: $x };\n // Note this op is called tf.identity in python. Hence the kernel name used\n // here.\n return ENGINE.runKernel(Identity, inputs);\n}\nexport const clone = op({ clone_ });\n//# sourceMappingURL=clone.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Prints information about the `tf.Tensor` including its data.\n *\n * ```js\n * const verbose = true;\n * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);\n * ```\n * @param x The tensor to be printed.\n * @param verbose Whether to print verbose information about the ` Tensor`,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function print(x, verbose = false) {\n console.log(x.toString(verbose));\n}\n//# sourceMappingURL=print.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandlers related to files, such as browser-triggered file downloads,\n * user-selected files in browser.\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { basename, concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DEFAULT_FILE_NAME_PREFIX = 'model';\nconst DEFAULT_JSON_EXTENSION_NAME = '.json';\nconst DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';\nfunction defer(f) {\n return new Promise(resolve => setTimeout(resolve)).then(f);\n}\nexport class BrowserDownloads {\n constructor(fileNamePrefix) {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Provide info on what IOHandlers are available under the\n // current environment.\n throw new Error('browserDownloads() cannot proceed because the current environment ' +\n 'is not a browser.');\n }\n if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {\n fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);\n }\n if (fileNamePrefix == null || fileNamePrefix.length === 0) {\n fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;\n }\n this.modelTopologyFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;\n this.weightDataFileName =\n fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;\n }\n async save(modelArtifacts) {\n if (typeof (document) === 'undefined') {\n throw new Error('Browser downloads are not supported in ' +\n 'this environment since `document` is not present');\n }\n const weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], { type: 'application/octet-stream' }));\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserDownloads.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const weightsManifest = [{\n paths: ['./' + this.weightDataFileName],\n weights: modelArtifacts.weightSpecs\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n const modelTopologyAndWeightManifestURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: 'application/json' }));\n // If anchor elements are not provided, create them without attaching them\n // to parents, so that the downloaded file names can be controlled.\n const jsonAnchor = this.jsonAnchor == null ? document.createElement('a') :\n this.jsonAnchor;\n jsonAnchor.download = this.modelTopologyFileName;\n jsonAnchor.href = modelTopologyAndWeightManifestURL;\n // Trigger downloads by evoking a click event on the download anchors.\n // When multiple downloads are started synchronously, Firefox will only\n // save the last one.\n await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));\n if (modelArtifacts.weightData != null) {\n const weightDataAnchor = this.weightDataAnchor == null ?\n document.createElement('a') :\n this.weightDataAnchor;\n weightDataAnchor.download = this.weightDataFileName;\n weightDataAnchor.href = weightsURL;\n await defer(() => weightDataAnchor.dispatchEvent(new MouseEvent('click')));\n }\n return { modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts) };\n }\n }\n}\nBrowserDownloads.URL_SCHEME = 'downloads://';\nclass BrowserFiles {\n constructor(files) {\n if (files == null || files.length < 1) {\n throw new Error(`When calling browserFiles, at least 1 file is required, ` +\n `but received ${files}`);\n }\n this.files = files;\n }\n async load() {\n const jsonFile = this.files[0];\n const weightFiles = this.files.slice(1);\n return new Promise((resolve, reject) => {\n const jsonReader = new FileReader();\n jsonReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const modelJSON = JSON.parse(event.target.result);\n const modelTopology = modelJSON.modelTopology;\n if (modelTopology == null) {\n reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));\n return;\n }\n if (weightFiles.length === 0) {\n resolve({ modelTopology });\n }\n const weightsManifest = modelJSON.weightsManifest;\n if (weightsManifest == null) {\n reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));\n return;\n }\n let pathToFile;\n try {\n pathToFile =\n this.checkManifestAndWeightFiles(weightsManifest, weightFiles);\n }\n catch (err) {\n reject(err);\n return;\n }\n const weightSpecs = [];\n const paths = [];\n const perFileBuffers = [];\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n paths.push(path);\n perFileBuffers.push(null);\n });\n weightSpecs.push(...weightsGroup.weights);\n });\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n const weightFileReader = new FileReader();\n weightFileReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const weightData = event.target.result;\n const index = paths.indexOf(path);\n perFileBuffers[index] = weightData;\n if (perFileBuffers.indexOf(null) === -1) {\n const result = {\n modelTopology,\n weightSpecs,\n weightData: concatenateArrayBuffers(perFileBuffers),\n format: modelJSON.format,\n generatedBy: modelJSON.generatedBy,\n convertedBy: modelJSON.convertedBy\n };\n if (modelJSON.signature != null) {\n result.signature = modelJSON.signature;\n }\n if (modelJSON.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelJSON.userDefinedMetadata;\n }\n if (modelJSON.modelInitializer != null) {\n result.modelInitializer = modelJSON.modelInitializer;\n }\n resolve(result);\n }\n };\n weightFileReader.onerror = error => reject(`Failed to weights data from file of path '${path}'.`);\n weightFileReader.readAsArrayBuffer(pathToFile[path]);\n });\n });\n };\n jsonReader.onerror = error => reject(`Failed to read model topology and weights manifest JSON ` +\n `from file '${jsonFile.name}'. BrowserFiles supports loading ` +\n `Keras-style tf.Model artifacts only.`);\n jsonReader.readAsText(jsonFile);\n });\n }\n /**\n * Check the compatibility between weights manifest and weight files.\n */\n checkManifestAndWeightFiles(manifest, files) {\n const basenames = [];\n const fileNames = files.map(file => basename(file.name));\n const pathToFile = {};\n for (const group of manifest) {\n group.paths.forEach(path => {\n const pathBasename = basename(path);\n if (basenames.indexOf(pathBasename) !== -1) {\n throw new Error(`Duplicate file basename found in weights manifest: ` +\n `'${pathBasename}'`);\n }\n basenames.push(pathBasename);\n if (fileNames.indexOf(pathBasename) === -1) {\n throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);\n }\n else {\n pathToFile[path] = files[fileNames.indexOf(pathBasename)];\n }\n });\n }\n if (basenames.length !== files.length) {\n throw new Error(`Mismatch in the number of files in weights manifest ` +\n `(${basenames.length}) and the number of weight files provided ` +\n `(${files.length}).`);\n }\n return pathToFile;\n }\n}\nexport const browserDownloadsRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {\n return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(browserDownloadsRouter);\n/**\n * Creates an IOHandler that triggers file downloads from the browser.\n *\n * The returned `IOHandler` instance can be used as model exporting methods such\n * as `tf.Model.save` and supports only saving.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * const saveResult = await model.save('downloads://mymodel');\n * // This will trigger downloading of two files:\n * // 'mymodel.json' and 'mymodel.weights.bin'.\n * console.log(saveResult);\n * ```\n *\n * @param fileNamePrefix Prefix name of the files to be downloaded. For use with\n * `tf.Model`, `fileNamePrefix` should follow either of the following two\n * formats:\n * 1. `null` or `undefined`, in which case the default file\n * names will be used:\n * - 'model.json' for the JSON file containing the model topology and\n * weights manifest.\n * - 'model.weights.bin' for the binary file containing the binary weight\n * values.\n * 2. A single string or an Array of a single string, as the file name prefix.\n * For example, if `'foo'` is provided, the downloaded JSON\n * file and binary weights file will be named 'foo.json' and\n * 'foo.weights.bin', respectively.\n * @param config Additional configuration for triggering downloads.\n * @returns An instance of `BrowserDownloads` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserDownloads(fileNamePrefix = 'model') {\n return new BrowserDownloads(fileNamePrefix);\n}\n/**\n * Creates an IOHandler that loads model artifacts from user-selected files.\n *\n * This method can be used for loading from files such as user-selected files\n * in the browser.\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * // Note: This code snippet won't run properly without the actual file input\n * // elements in the HTML DOM.\n *\n * // Suppose there are two HTML file input (``)\n * // elements.\n * const uploadJSONInput = document.getElementById('upload-json');\n * const uploadWeightsInput = document.getElementById('upload-weights');\n * const model = await tf.loadLayersModel(tf.io.browserFiles(\n * [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));\n * ```\n *\n * @param files `File`s to load from. Currently, this function supports only\n * loading from files that contain Keras-style models (i.e., `tf.Model`s), for\n * which an `Array` of `File`s is expected (in that order):\n * - A JSON file containing the model topology and weight manifest.\n * - Optionally, One or more binary files containing the binary weights.\n * These files must have names that match the paths in the `weightsManifest`\n * contained by the aforementioned JSON file, or errors will be thrown\n * during loading. These weights files have the same format as the ones\n * generated by `tensorflowjs_converter` that comes with the `tensorflowjs`\n * Python PIP package. If no weights files are provided, only the model\n * topology will be loaded from the JSON file above.\n * @returns An instance of `Files` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserFiles(files) {\n return new BrowserFiles(files);\n}\n//# sourceMappingURL=browser_files.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Required side effectful code for tfjs-core\n// Set up Engine and ENV\nimport { getOrMakeEngine } from './engine';\ngetOrMakeEngine();\n// Register backend-agnostic flags.\nimport './flags';\n// Register platforms\nimport './platforms/platform_browser';\nimport './platforms/platform_node';\n// Set up OpHandler\nimport { buffer } from './ops/buffer';\nimport { cast } from './ops/cast';\nimport { clone } from './ops/clone';\nimport { print } from './ops/print';\nimport { setOpHandler } from './tensor';\nconst opHandler = {\n buffer,\n cast,\n clone,\n print\n};\nsetOpHandler(opHandler);\n//# sourceMappingURL=base_side_effects.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { assert } from '../util';\n/**\n * Monitor Promise.all progress, fire onProgress callback function.\n *\n * @param promises Promise list going to be monitored\n * @param onProgress Callback function. Fired when a promise resolved.\n * @param startFraction Optional fraction start. Default to 0.\n * @param endFraction Optional fraction end. Default to 1.\n */\nexport function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {\n checkPromises(promises);\n startFraction = startFraction == null ? 0 : startFraction;\n endFraction = endFraction == null ? 1 : endFraction;\n checkFraction(startFraction, endFraction);\n let resolvedPromise = 0;\n const registerMonitor = (promise) => {\n promise.then(value => {\n const fraction = startFraction +\n ++resolvedPromise / promises.length * (endFraction - startFraction);\n // pass fraction as parameter to callback function.\n onProgress(fraction);\n return value;\n });\n return promise;\n };\n function checkPromises(promises) {\n assert(promises != null && Array.isArray(promises) && promises.length > 0, () => 'promises must be a none empty array');\n }\n function checkFraction(startFraction, endFraction) {\n assert(startFraction >= 0 && startFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got startFraction ${startFraction}`);\n assert(endFraction >= 0 && endFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got endFraction ${endFraction}`);\n assert(endFraction >= startFraction, () => `startFraction must be no more than endFraction, but ` +\n `got startFraction ${startFraction} and endFraction ` +\n `${endFraction}`);\n }\n return Promise.all(promises.map(registerMonitor));\n}\n//# sourceMappingURL=progress.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\nimport * as util from '../util';\nimport { decodeWeights } from './io_utils';\nimport { monitorPromisesProgress } from './progress';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/**\n * Reads binary weights data from a number of URLs.\n *\n * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.\n * @param requestOptions RequestInit (options) for the HTTP requests.\n * @param fetchFunc Optional overriding value for the `window.fetch` function.\n * @param onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same\n * length as `fetchURLs`.\n */\nexport async function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {\n if (loadOptions == null) {\n loadOptions = {};\n }\n const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch :\n loadOptions.fetchFunc;\n // Create the requests for all of the weights in parallel.\n const requests = fetchURLs.map(fetchURL => fetchFunc(fetchURL, loadOptions.requestInit, { isBinary: true }));\n const fetchStartFraction = 0;\n const fetchEndFraction = 0.5;\n const responses = loadOptions.onProgress == null ?\n await Promise.all(requests) :\n await monitorPromisesProgress(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction);\n const bufferPromises = responses.map(response => response.arrayBuffer());\n const bufferStartFraction = 0.5;\n const bufferEndFraction = 1;\n const buffers = loadOptions.onProgress == null ?\n await Promise.all(bufferPromises) :\n await monitorPromisesProgress(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction);\n return buffers;\n}\n/**\n * Reads a weights manifest JSON configuration, fetches the weights and\n * returns them as `Tensor`s.\n *\n * @param manifest The weights manifest JSON.\n * @param filePathPrefix The path prefix for filenames given in the manifest.\n * Defaults to the empty string.\n * @param weightNames The names of the weights to be fetched.\n */\nexport async function loadWeights(manifest, filePathPrefix = '', weightNames, requestInit) {\n // TODO(nsthorat): Groups are currently fetched atomically. If you need a\n // single weight from a group, the whole group will be fetched. At a future\n // date, we should support fetching only the individual shards within a\n // group that are needed to reconstruct the requested weight.\n // TODO(cais): Use `decodeWeights` for implementation.\n const fetchWeights = (fetchUrls) => loadWeightsAsArrayBuffer(fetchUrls, { requestInit });\n const loadWeights = weightsLoaderFactory(fetchWeights);\n return loadWeights(manifest, filePathPrefix, weightNames);\n}\n/**\n * Creates a function, which reads a weights manifest JSON configuration,\n * fetches the weight files using the specified function and returns them as\n * `Tensor`s.\n *\n * ```js\n * // example for creating a nodejs weight loader, which reads the weight files\n * // from disk using fs.readFileSync\n *\n * import * as fs from 'fs'\n *\n * const fetchWeightsFromDisk = (filePaths: string[]) =>\n * filePaths.map(filePath => fs.readFileSync(filePath).buffer)\n *\n * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)\n *\n * const manifest = JSON.parse(\n * fs.readFileSync('./my_model-weights_manifest').toString()\n * )\n * const weightMap = await loadWeights(manifest, './')\n * ```\n * @param fetchWeightsFunction The function used for fetching the weight files.\n * @returns Weight loading function.\n */\nexport function weightsLoaderFactory(fetchWeightsFunction) {\n return async (manifest, filePathPrefix = '', weightNames) => {\n // Collect all the groups, weights, and their relative offsets to be\n // fetched.\n const groupIndicesToFetchMap = manifest.map(() => false);\n const groupWeightsToFetch = {};\n const weightsFound = weightNames != null ? weightNames.map(() => false) : [];\n const allManifestWeightNames = [];\n manifest.forEach((manifestGroupConfig, groupIndex) => {\n let groupOffset = 0;\n manifestGroupConfig.weights.forEach(weightsEntry => {\n const rawDtype = ('quantization' in weightsEntry) ?\n weightsEntry.quantization.dtype :\n weightsEntry.dtype;\n const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] *\n util.sizeFromShape(weightsEntry.shape);\n const enqueueWeightsForFetchingFn = () => {\n groupIndicesToFetchMap[groupIndex] = true;\n if (groupWeightsToFetch[groupIndex] == null) {\n groupWeightsToFetch[groupIndex] = [];\n }\n groupWeightsToFetch[groupIndex].push({\n manifestEntry: weightsEntry,\n groupOffset,\n sizeBytes: weightsBytes\n });\n };\n if (weightNames != null) {\n weightNames.forEach((weightName, weightIndex) => {\n if (weightName === weightsEntry.name) {\n enqueueWeightsForFetchingFn();\n weightsFound[weightIndex] = true;\n }\n });\n }\n else {\n enqueueWeightsForFetchingFn();\n }\n allManifestWeightNames.push(weightsEntry.name);\n groupOffset += weightsBytes;\n });\n });\n if (!weightsFound.every(found => found)) {\n const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);\n throw new Error(`Could not find weights in manifest with names: ` +\n `${weightsNotFound.join(', ')}. \\n` +\n `Manifest JSON has weights with names: ` +\n `${allManifestWeightNames.join(', ')}.`);\n }\n // Convert the one-hot boolean groupId => shouldFetch map to a list of group\n // IDs.\n const groupIndicesToFetch = groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {\n if (shouldFetch) {\n accumulator.push(i);\n }\n return accumulator;\n }, []);\n const fetchUrls = [];\n groupIndicesToFetch.forEach(i => {\n manifest[i].paths.forEach(filepath => {\n const fetchUrl = filePathPrefix +\n (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;\n fetchUrls.push(fetchUrl);\n });\n });\n const buffers = await fetchWeightsFunction(fetchUrls);\n const weightsTensorMap = {};\n let bufferIndexOffset = 0;\n groupIndicesToFetch.forEach(i => {\n const numBuffers = manifest[i].paths.length;\n let groupBytes = 0;\n for (let i = 0; i < numBuffers; i++) {\n groupBytes += buffers[bufferIndexOffset + i].byteLength;\n }\n // Create a buffer for the whole group.\n const groupBuffer = new ArrayBuffer(groupBytes);\n const groupByteBuffer = new Uint8Array(groupBuffer);\n let groupBufferOffset = 0;\n for (let i = 0; i < numBuffers; i++) {\n const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);\n groupByteBuffer.set(buffer, groupBufferOffset);\n groupBufferOffset += buffer.byteLength;\n }\n const weightsEntries = groupWeightsToFetch[i];\n weightsEntries.forEach(weightsEntry => {\n const byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);\n const nameToTensorMap = decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);\n for (const name in nameToTensorMap) {\n weightsTensorMap[name] = nameToTensorMap[name];\n }\n });\n bufferIndexOffset += numBuffers;\n });\n return weightsTensorMap;\n };\n}\n//# sourceMappingURL=weights_loader.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandler implementations based on HTTP requests in the web browser.\n *\n * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nimport { loadWeightsAsArrayBuffer } from './weights_loader';\nconst OCTET_STREAM_MIME_TYPE = 'application/octet-stream';\nconst JSON_TYPE = 'application/json';\nexport class HTTPRequest {\n constructor(path, loadOptions) {\n this.DEFAULT_METHOD = 'POST';\n if (loadOptions == null) {\n loadOptions = {};\n }\n this.weightPathPrefix = loadOptions.weightPathPrefix;\n this.onProgress = loadOptions.onProgress;\n this.weightUrlConverter = loadOptions.weightUrlConverter;\n if (loadOptions.fetchFunc != null) {\n assert(typeof loadOptions.fetchFunc === 'function', () => 'Must pass a function that matches the signature of ' +\n '`fetch` (see ' +\n 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');\n this.fetch = loadOptions.fetchFunc;\n }\n else {\n this.fetch = env().platform.fetch;\n }\n assert(path != null && path.length > 0, () => 'URL path for http must not be null, undefined or ' +\n 'empty.');\n if (Array.isArray(path)) {\n assert(path.length === 2, () => 'URL paths for http must have a length of 2, ' +\n `(actual length is ${path.length}).`);\n }\n this.path = path;\n if (loadOptions.requestInit != null &&\n loadOptions.requestInit.body != null) {\n throw new Error('requestInit is expected to have no pre-existing body, but has one.');\n }\n this.requestInit = loadOptions.requestInit || {};\n }\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n const init = Object.assign({ method: this.DEFAULT_METHOD }, this.requestInit);\n init.body = new FormData();\n const weightsManifest = [{\n paths: ['./model.weights.bin'],\n weights: modelArtifacts.weightSpecs,\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: JSON_TYPE }), 'model.json');\n if (modelArtifacts.weightData != null) {\n init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], { type: OCTET_STREAM_MIME_TYPE }), 'model.weights.bin');\n }\n const response = await this.fetch(this.path, init);\n if (response.ok) {\n return {\n modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),\n responses: [response],\n };\n }\n else {\n throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ` +\n `${response.status}.`);\n }\n }\n /**\n * Load model artifacts via HTTP request(s).\n *\n * See the documentation to `tf.io.http` for details on the saved\n * artifacts.\n *\n * @returns The loaded model artifacts (if loading succeeds).\n */\n async load() {\n const modelConfigRequest = await this.fetch(this.path, this.requestInit);\n if (!modelConfigRequest.ok) {\n throw new Error(`Request to ${this.path} failed with status code ` +\n `${modelConfigRequest.status}. Please verify this URL points to ` +\n `the model JSON of the model to load.`);\n }\n let modelConfig;\n try {\n modelConfig = await modelConfigRequest.json();\n }\n catch (e) {\n let message = `Failed to parse model JSON of response from ${this.path}.`;\n // TODO(nsthorat): Remove this after some time when we're comfortable that\n // .pb files are mostly gone.\n if (this.path.endsWith('.pb')) {\n message += ' Your path contains a .pb file extension. ' +\n 'Support for .pb models have been removed in TensorFlow.js 1.0 ' +\n 'in favor of .json models. You can re-convert your Python ' +\n 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' +\n 'or you can convert your.pb models with the \\'pb2json\\'' +\n 'NPM script in the tensorflow/tfjs-converter repository.';\n }\n else {\n message += ' Please make sure the server is serving valid ' +\n 'JSON for this request.';\n }\n throw new Error(message);\n }\n const modelTopology = modelConfig.modelTopology;\n const weightsManifest = modelConfig.weightsManifest;\n const generatedBy = modelConfig.generatedBy;\n const convertedBy = modelConfig.convertedBy;\n const format = modelConfig.format;\n const signature = modelConfig.signature;\n const userDefinedMetadata = modelConfig.userDefinedMetadata;\n // We do not allow both modelTopology and weightsManifest to be missing.\n if (modelTopology == null && weightsManifest == null) {\n throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` +\n `topology or manifest for weights.`);\n }\n let weightSpecs;\n let weightData;\n if (weightsManifest != null) {\n const results = await this.loadWeights(weightsManifest);\n [weightSpecs, weightData] = results;\n }\n const artifacts = {\n modelTopology,\n weightSpecs,\n weightData,\n generatedBy,\n convertedBy,\n format\n };\n if (signature != null) {\n artifacts.signature = signature;\n }\n if (userDefinedMetadata != null) {\n artifacts.userDefinedMetadata = userDefinedMetadata;\n }\n const initializer = modelConfig.modelInitializer;\n if (initializer) {\n artifacts.modelInitializer = initializer;\n }\n return artifacts;\n }\n async loadWeights(weightsManifest) {\n const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;\n const [prefix, suffix] = parseUrl(weightPath);\n const pathPrefix = this.weightPathPrefix || prefix;\n const weightSpecs = [];\n for (const entry of weightsManifest) {\n weightSpecs.push(...entry.weights);\n }\n const fetchURLs = [];\n const urlPromises = [];\n for (const weightsGroup of weightsManifest) {\n for (const path of weightsGroup.paths) {\n if (this.weightUrlConverter != null) {\n urlPromises.push(this.weightUrlConverter(path));\n }\n else {\n fetchURLs.push(pathPrefix + path + suffix);\n }\n }\n }\n if (this.weightUrlConverter) {\n fetchURLs.push(...await Promise.all(urlPromises));\n }\n const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {\n requestInit: this.requestInit,\n fetchFunc: this.fetch,\n onProgress: this.onProgress\n });\n return [weightSpecs, concatenateArrayBuffers(buffers)];\n }\n}\nHTTPRequest.URL_SCHEME_REGEX = /^https?:\\/\\//;\n/**\n * Extract the prefix and suffix of the url, where the prefix is the path before\n * the last file, and suffix is the search params after the last file.\n * ```\n * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'\n * [prefix, suffix] = parseUrl(url)\n * // prefix = 'http://tfhub.dev/model/1/'\n * // suffix = '?tfjs-format=file'\n * ```\n * @param url the model url to be parsed.\n */\nexport function parseUrl(url) {\n const lastSlash = url.lastIndexOf('/');\n const lastSearchParam = url.lastIndexOf('?');\n const prefix = url.substring(0, lastSlash);\n const suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';\n return [prefix + '/', suffix];\n}\nexport function isHTTPScheme(url) {\n return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;\n}\nexport const httpRouter = (url, loadOptions) => {\n if (typeof fetch === 'undefined' &&\n (loadOptions == null || loadOptions.fetchFunc == null)) {\n // `http` uses `fetch` or `node-fetch`, if one wants to use it in\n // an environment that is not the browser or node they have to setup a\n // global fetch polyfill.\n return null;\n }\n else {\n let isHTTP = true;\n if (Array.isArray(url)) {\n isHTTP = url.every(urlItem => isHTTPScheme(urlItem));\n }\n else {\n isHTTP = isHTTPScheme(url);\n }\n if (isHTTP) {\n return http(url, loadOptions);\n }\n }\n return null;\n};\nIORouterRegistry.registerSaveRouter(httpRouter);\nIORouterRegistry.registerLoadRouter(httpRouter);\n/**\n * Creates an IOHandler subtype that sends model artifacts to HTTP server.\n *\n * An HTTP request of the `multipart/form-data` mime type will be sent to the\n * `path` URL. The form data includes artifacts that represent the topology\n * and/or weights of the model. In the case of Keras-style `tf.Model`, two\n * blobs (files) exist in form-data:\n * - A JSON file consisting of `modelTopology` and `weightsManifest`.\n * - A binary weights file consisting of the concatenated weight values.\n * These files are in the same format as the one generated by\n * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).\n *\n * The following code snippet exemplifies the client-side code that uses this\n * function:\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save(tf.io.http(\n * 'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));\n * console.log(saveResult);\n * ```\n *\n * If the default `POST` method is to be used, without any custom parameters\n * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:\n *\n * ```js\n * const saveResult = await model.save('http://model-server:5000/upload');\n * ```\n *\n * The following GitHub Gist\n * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864\n * implements a server based on [flask](https://github.com/pallets/flask) that\n * can receive the request. Upon receiving the model artifacts via the requst,\n * this particular server reconsistutes instances of [Keras\n * Models](https://keras.io/models/model/) in memory.\n *\n *\n * @param path A URL path to the model.\n * Can be an absolute HTTP path (e.g.,\n * 'http://localhost:8000/model-upload)') or a relative path (e.g.,\n * './model-upload').\n * @param requestInit Request configurations to be used when sending\n * HTTP request to server using `fetch`. It can contain fields such as\n * `method`, `credentials`, `headers`, `mode`, etc. See\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request\n * for more information. `requestInit` must not have a body, because the\n * body will be set by TensorFlow.js. File blobs representing the model\n * topology (filename: 'model.json') and the weights of the model (filename:\n * 'model.weights.bin') will be appended to the body. If `requestInit` has a\n * `body`, an Error will be thrown.\n * @param loadOptions Optional configuration for the loading. It includes the\n * following fields:\n * - weightPathPrefix Optional, this specifies the path prefix for weight\n * files, by default this is calculated from the path param.\n * - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,\n * the `fetch` from node-fetch can be used here.\n * - onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns An instance of `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function http(path, loadOptions) {\n return new HTTPRequest(path, loadOptions);\n}\n/**\n * Deprecated. Use `tf.io.http`.\n * @param path\n * @param loadOptions\n */\nexport function browserHTTPRequest(path, loadOptions) {\n return http(path, loadOptions);\n}\n//# sourceMappingURL=http.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nclass PassthroughLoader {\n constructor(modelArtifacts) {\n this.modelArtifacts = modelArtifacts;\n }\n async load() {\n return this.modelArtifacts;\n }\n}\nclass PassthroughSaver {\n constructor(saveHandler) {\n this.saveHandler = saveHandler;\n }\n async save(modelArtifacts) {\n return this.saveHandler(modelArtifacts);\n }\n}\n/**\n * Creates an IOHandler that loads model artifacts from memory.\n *\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * const model = await tf.loadLayersModel(tf.io.fromMemory(\n * modelTopology, weightSpecs, weightData));\n * ```\n *\n * @param modelArtifacts a object containing model topology (i.e., parsed from\n * the JSON format).\n * @param weightSpecs An array of `WeightsManifestEntry` objects describing the\n * names, shapes, types, and quantization of the weight data.\n * @param weightData A single `ArrayBuffer` containing the weight data,\n * concatenated in the order described by the weightSpecs.\n * @param trainingConfig Model training configuration. Optional.\n *\n * @returns A passthrough `IOHandler` that simply loads the provided data.\n */\nexport function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {\n if (arguments.length === 1) {\n const isModelArtifacts = modelArtifacts.modelTopology != null ||\n modelArtifacts.weightSpecs != null;\n if (isModelArtifacts) {\n return new PassthroughLoader(modelArtifacts);\n }\n else {\n // Legacy support: with only modelTopology.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({ modelTopology: modelArtifacts });\n }\n }\n else {\n // Legacy support.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({\n modelTopology: modelArtifacts,\n weightSpecs,\n weightData,\n trainingConfig\n });\n }\n}\n/**\n * Creates an IOHandler that passes saved model artifacts to a callback.\n *\n * ```js\n * function handleSave(artifacts) {\n * // ... do something with the artifacts ...\n * return {modelArtifactsInfo: {...}, ...};\n * }\n *\n * const saveResult = model.save(tf.io.withSaveHandler(handleSave));\n * ```\n *\n * @param saveHandler A function that accepts a `ModelArtifacts` and returns a\n * `SaveResult`.\n */\nexport function withSaveHandler(saveHandler) {\n return new PassthroughSaver(saveHandler);\n}\n//# sourceMappingURL=passthrough.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { BatchMatMul } from '../kernel_names';\nimport { makeTypesMatch } from '../tensor_util';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Computes the dot product of two matrices, A * B. These must be matrices.\n *\n * ```js\n * const a = tf.tensor2d([1, 2], [1, 2]);\n * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);\n *\n * a.matMul(b).print(); // or tf.matMul(a, b)\n * ```\n * @param a First matrix in dot product operation.\n * @param b Second matrix in dot product operation.\n * @param transposeA If true, `a` is transposed before multiplication.\n * @param transposeB If true, `b` is transposed before multiplication.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction matMul_(a, b, transposeA = false, transposeB = false) {\n let $a = convertToTensor(a, 'a', 'matMul');\n let $b = convertToTensor(b, 'b', 'matMul');\n [$a, $b] = makeTypesMatch($a, $b);\n const inputs = { a: $a, b: $b };\n const attrs = { transposeA, transposeB };\n return ENGINE.runKernel(BatchMatMul, inputs, attrs);\n}\nexport const matMul = op({ matMul_ });\n//# sourceMappingURL=mat_mul.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { OneHot } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take\n * value `onValue` (defaults to 1), while all other locations take value\n * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank\n * `R+1` with the last axis of size `depth`.\n *\n * ```js\n * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();\n * ```\n *\n * @param indices `tf.Tensor` of indices with dtype `int32`.\n * @param depth The depth of the one hot dimension.\n * @param onValue A number used to fill in the output when the index matches\n * the location.\n * @param offValue A number used to fill in the output when the index does\n * not match the location.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction oneHot_(indices, depth, onValue = 1, offValue = 0) {\n if (depth < 2) {\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);\n }\n const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');\n const inputs = { indices: $indices };\n const attrs = { depth, onValue, offValue };\n return ENGINE.runKernel(OneHot, inputs, attrs);\n}\nexport const oneHot = op({ oneHot_ });\n//# sourceMappingURL=one_hot.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Transpose } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.\n *\n * The returned `tf.Tensor`'s dimension `i` will correspond to the input\n * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,\n * where `n` is the rank of the input `tf.Tensor`. Hence by default, this\n * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.\n *\n * ```js\n * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);\n *\n * a.transpose().print(); // or tf.transpose(a)\n * ```\n *\n * @param x The tensor to transpose.\n * @param perm The permutation of the dimensions of a.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction transpose_(x, perm) {\n const $x = convertToTensor(x, 'x', 'transpose');\n if (perm == null) {\n perm = $x.shape.map((s, i) => i).reverse();\n }\n util.assert($x.rank === perm.length, () => `Error in transpose: rank of input ${$x.rank} ` +\n `must match length of perm ${perm}.`);\n perm.forEach(axis => {\n util.assert(axis >= 0 && axis < $x.rank, () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` +\n ` but got ${perm}`);\n });\n if ($x.rank <= 1) {\n return $x.clone();\n }\n const inputs = { x: $x };\n const attrs = { perm };\n return ENGINE.runKernel(Transpose, inputs, attrs);\n}\nexport const transpose = op({ transpose_ });\n//# sourceMappingURL=transpose.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { cast } from './cast';\nimport { matMul } from './mat_mul';\nimport { oneHot } from './one_hot';\nimport { op } from './operation';\nimport { transpose } from './transpose';\n/**\n * Computes the confusion matrix from true labels and predicted labels.\n *\n * ```js\n * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');\n * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');\n * const numClasses = 3;\n * const out = tf.math.confusionMatrix(labels, predictions, numClasses);\n * out.print();\n * // Expected output matrix:\n * // [[2, 0, 0],\n * // [0, 1, 1],\n * // [0, 0, 1]]\n * ```\n *\n * @param labels The target labels, assumed to be 0-based integers\n * for the classes. The shape is `[numExamples]`, where\n * `numExamples` is the number of examples included.\n * @param predictions The predicted classes, assumed to be\n * 0-based integers for the classes. Must have the same shape as `labels`.\n * @param numClasses Number of all classes, as an integer.\n * Its value must be larger than the largest element in `labels` and\n * `predictions`.\n * @returns The confusion matrix as a int32-type 2D tensor. The value at\n * row `r` and column `c` is the number of times examples of actual class\n * `r` were predicted as class `c`.\n *\n * @doc {heading: 'Operations', subheading: 'Evaluation'}\n */\nexport function confusionMatrix_(labels, predictions, numClasses) {\n const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');\n const $predictions = convertToTensor(predictions, 'predictions', 'confusionMatrix');\n util.assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), () => `If provided, numClasses must be a positive integer, ` +\n `but got ${numClasses}`);\n util.assert($labels.rank === 1, () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);\n util.assert($predictions.rank === 1, () => `Expected the rank of predictions to be 1, ` +\n `but got ${$predictions.rank}`);\n util.assert($labels.shape[0] === $predictions.shape[0], () => `Mismatch in the number of examples: ` +\n `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` +\n `Labels and predictions should have the same number of elements.`);\n util.assert(numClasses > 0 && Number.isInteger(numClasses), () => `numClasses is required to be a positive integer, but got ` +\n `${numClasses}`);\n // TODO(cais): In the future, if oneHot supports tensors inputs for\n // `numClasses`, `confusionMatrix` can make `numClasses` optional.\n const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses);\n const oneHotPredictions = oneHot(cast($predictions, 'int32'), numClasses);\n const oneHotLabelsT = transpose(oneHotLabels);\n const product = matMul(oneHotLabelsT, oneHotPredictions);\n return cast(product, 'int32');\n}\nexport const confusionMatrix = op({ confusionMatrix_ });\n//# sourceMappingURL=confusion_matrix.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { assertNonNull } from '../util';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.\n *\n * The same functionality can be achieved with `tf.tensor`, but in general\n * we recommend using `tf.tensor3d` as it makes the code more readable.\n *\n * ```js\n * // Pass a nested array.\n * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();\n * ```\n * ```js\n * // Pass a flat array and specify a shape.\n * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`.\n * @param shape The shape of the tensor. If not provided, it is inferred from\n * `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor3d(values, shape, dtype) {\n assertNonNull(values);\n if (shape != null && shape.length !== 3) {\n throw new Error('tensor3d() requires shape to have three numbers');\n }\n const inferredShape = inferShape(values, dtype);\n if (inferredShape.length !== 3 && inferredShape.length !== 1) {\n throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');\n }\n if (inferredShape.length === 1 && shape == null) {\n throw new Error('tensor3d() requires shape to be provided when `values` ' +\n 'are a flat array');\n }\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor3d.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { FromPixels } from '../kernel_names';\nimport { getKernel } from '../kernel_registry';\nimport { Tensor } from '../tensor';\nimport { convertToTensor } from '../tensor_util_env';\nimport { cast } from './cast';\nimport { op } from './operation';\nimport { tensor3d } from './tensor3d';\nlet fromPixels2DContext;\n/**\n * Creates a `tf.Tensor` from an image.\n *\n * ```js\n * const image = new ImageData(1, 1);\n * image.data[0] = 100;\n * image.data[1] = 150;\n * image.data[2] = 200;\n * image.data[3] = 255;\n *\n * tf.browser.fromPixels(image).print();\n * ```\n *\n * @param pixels The input image to construct the tensor from. The\n * supported image types are all 4-channel. You can also pass in an image\n * object with following attributes:\n * `{data: Uint8Array; width: number; height: number}`\n * @param numChannels The number of channels of the output tensor. A\n * numChannels value less than 4 allows you to ignore channels. Defaults to\n * 3 (ignores alpha channel of input image).\n *\n * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}\n */\nfunction fromPixels_(pixels, numChannels = 3) {\n // Sanity checks.\n if (numChannels > 4) {\n throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');\n }\n if (pixels == null) {\n throw new Error('pixels passed to tf.browser.fromPixels() can not be null');\n }\n let isPixelData = false;\n let isImageData = false;\n let isVideo = false;\n let isImage = false;\n let isCanvasLike = false;\n let isImageBitmap = false;\n if (pixels.data instanceof Uint8Array) {\n isPixelData = true;\n }\n else if (typeof (ImageData) !== 'undefined' && pixels instanceof ImageData) {\n isImageData = true;\n }\n else if (typeof (HTMLVideoElement) !== 'undefined' &&\n pixels instanceof HTMLVideoElement) {\n isVideo = true;\n }\n else if (typeof (HTMLImageElement) !== 'undefined' &&\n pixels instanceof HTMLImageElement) {\n isImage = true;\n // tslint:disable-next-line: no-any\n }\n else if (pixels.getContext != null) {\n isCanvasLike = true;\n }\n else if (typeof (ImageBitmap) !== 'undefined' &&\n pixels instanceof ImageBitmap) {\n isImageBitmap = true;\n }\n else {\n throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' +\n `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` +\n `in browser, or OffscreenCanvas, ImageData in webworker` +\n ` or {data: Uint32Array, width: number, height: number}, ` +\n `but was ${pixels.constructor.name}`);\n }\n if (isVideo) {\n const HAVE_CURRENT_DATA_READY_STATE = 2;\n if (isVideo &&\n pixels.readyState <\n HAVE_CURRENT_DATA_READY_STATE) {\n throw new Error('The video element has not loaded data yet. Please wait for ' +\n '`loadeddata` event on the ': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '
': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(2476);\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://dfd/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://dfd/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://dfd/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://dfd/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://dfd/./node_modules/@babel/runtime/helpers/createClass.js","webpack://dfd/./node_modules/@babel/runtime/helpers/get.js","webpack://dfd/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/inherits.js","webpack://dfd/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://dfd/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://dfd/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://dfd/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://dfd/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://dfd/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/superPropBase.js","webpack://dfd/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://dfd/./node_modules/@babel/runtime/helpers/typeof.js","webpack://dfd/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://dfd/./node_modules/@babel/runtime/regenerator/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util_base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/environment.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/global_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_names.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/kernel_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/profiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_format.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/engine.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/device_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/flags.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/tensor_util_env.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/operation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/types.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/io_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/router_registry.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/indexed_db.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/local_storage.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/model_management.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/platforms/platform_node.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/print.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/browser_files.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/base_side_effects.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/progress.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/weights_loader.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/http.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/io/passthrough.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/confusion_matrix.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/browser.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/test_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/globals.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adadelta_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adagrad_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adam_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/adamax_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/sgd_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/momentum_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/rmsprop_optimizer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/add_n.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/basic_lstm_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/batchnorm4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dense_bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/eye.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linspace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/axis_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_with_argmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moments.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multi_rnn_cell.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/zeros.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/outer_product.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pad4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rand_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_gamma.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/random_uniform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reverse_4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/setdiff1d_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/slice4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/spectral/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/tensor6d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/truncated_normal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/variable.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/where_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/where_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/boolean_mask.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/moving_average.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/scatter_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/sparse_to_dense_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/gather_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/dropout_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/in_top_k.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv2d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/depthwise_conv2d_native_backprop_input.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/fused/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hamming_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/hann_window.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/frame.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/signal/stft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/crop_and_resize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/flip_left_right.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/rotate_with_offset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/nonmax_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/non_max_suppression_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/transform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/band_part.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/gram_schmidt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/linalg/qr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/loss_ops_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/compute_weighted_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/absolute_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/cosine_distance.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/hinge_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/huber_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/log_loss.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/mean_squared_error.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/sigmoid_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/losses/softmax_cross_entropy.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/ops.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_with_score_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/image/non_max_suppression_padded_async.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/optimizers/optimizer_constructors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/train.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/browser_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/reduce_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/rotate_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/array_ops_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/selu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/erf_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/complex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/split_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/segment_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/backends/backend_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Abs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Acosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Add_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AddN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ArgMin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Asinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Atanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/avg_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/AvgPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchMatMul_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BatchToSpaceND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/BroadcastTo_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cast_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Ceil_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ClipByValue_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ComplexAbs_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Concat_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv2DBackpropInput_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/conv3d_backprop_filter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Conv3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cos_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cosh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Cumsum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/DepthwiseConv2dNative_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Dilation2D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Elu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Erf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Exp_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ExpandDims_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Expm1_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Floor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FloorDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/FusedBatchNorm_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GatherV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/GreaterEqual_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Identity_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsFinite_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsInf_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/IsNan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LeakyRelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log1p_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Log_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LogSoftmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/local_response_normalization_backprop.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/LRN_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/min_max_grad_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Max_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Maximum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_3d_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool3D_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/ops/max_pool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/PadV2_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SpaceToBatchND_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SplitV_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/register_all_gradients.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/RealDiv_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MaxPool_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mean_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Min_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Minimum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/MirrorPad_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Mod_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Multiply_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Neg_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OneHot_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/OnesLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Pow_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Prelu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reciprocal_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu6_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Relu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reshape_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeBilinear_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ResizeNearestNeighbor_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Reverse_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Round_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Rsqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Select_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Selu_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sigmoid_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sign_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sin_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sinh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Slice_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softmax_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Softplus_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sqrt_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/SquaredDifference_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Square_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Step_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sub_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Sum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tan_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tanh_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Tile_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Transpose_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/Unpack_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/UnsortedSegmentSum_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/gradients/ZerosLike_grad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/all.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/arg_min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_scalar.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as_type.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as3d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as4d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/as5d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/avg_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batch_to_space_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/batchnorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/broadcast_to.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/clip_by_value.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv1d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d_transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depth_to_space.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/depthwise_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dilation2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div_no_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/div.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/dot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expand_dims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/fft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/flatten.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/floorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/gather.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ifft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/irfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_finite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_inf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/is_nan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/leaky_relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/local_response_normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log_sum_exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_and.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_not.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_or.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/logical_xor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mat_mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max_pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mirror_pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/mul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/norm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/not_equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/one_hot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/ones_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape_as.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_bilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/resize_nearest_neighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rfft.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/separable_conv2d.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/space_to_batch_nd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/split.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squared_difference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/squeeze.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/stack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/strided_slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_bool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_float.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/to_int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/topk.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unsorted_segment_sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/unstack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/where.js","webpack://dfd/./node_modules/@tensorflow/tfjs-core/dist/public/chained_ops/zeros_like.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/errors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/generic_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_constraints.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/common.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/math_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/tfjs_backend.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/keras_format/initializer_config.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_initializers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/backend/state.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/types_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/variable_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/variables.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/topology.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/input_layer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/logs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/base_callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/serialization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/losses.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/user_defined_metadata.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/layer_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/serialization_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/container.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training_tensors.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/engine/training.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/optimizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/models.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/advanced_activations.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/utils/conv_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/convolutional_recurrent.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/core.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/embeddings.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/merge.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/noise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/padding.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/pooling.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/layers/wrappers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_layers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_metrics.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/exports_regularizers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-layers/dist/callbacks.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/data/compiled_api.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/register.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/arithmetic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/basic_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/control.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/convolution.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/creation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/dynamic.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/evaluation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/graph.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/image.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/logical.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/matrices.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/normalization.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/reduction.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/slice_join.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/spectral.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/transformation.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_mapper.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/node_value_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/convolution_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/dynamic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/hash_table.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/operation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/arithmetic_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/basic_math_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/creation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/evaluation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/image_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/logical_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/matrices_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/normalization_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/reduction_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/slice_join_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/spectral_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/transformation_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/operations/executors/hash_table_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/execution_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/model_analysis.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_executor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/resource_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/executor/graph_model.js","webpack://dfd/./node_modules/@tensorflow/tfjs-converter/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_map.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/deep_clone.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/growing_ring_buffer.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/lazy_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/text_line_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasets/csv_dataset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/microphone_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/webcam_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/datasource.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/string_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/byte_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/file_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/util/source_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/file_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/sources/url_data_source.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/iterators/url_chunk_iterator.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/readers.js","webpack://dfd/./node_modules/@tensorflow/tfjs-data/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/cpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fused_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/zeros_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/binary_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/pool_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/unary_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Clip.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Dilation2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/fft_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Scatter_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Transform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/canvas_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tex_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/webgl_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/glsl_version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/decode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_float_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/encode_matrix_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_context.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/shader_compiler.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gpgpu_math.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/shared.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/packing_util.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reshape_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/texture_manager.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/unpack_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/base.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Identity.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prelu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/kernel_funcs_utils.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mulmat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/binaryop_complex_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multiply.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reshape.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mean_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reduce_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/reduce.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transpose_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sum_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transpose.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/_FusedMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Abs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Acosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Add.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/addn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AddN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/All.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Any.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/argminmax_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/arg_min_max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ArgMin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Asinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atan2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Atanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pool_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/avg_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/AvgPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchMatMul.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/batchnorm_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchNorm.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/slice_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Bincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NotEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Real.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cast.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/int.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Ceil.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/clip_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ClipByValue.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/complex_abs_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ComplexAbs.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/concat_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Imag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Concat.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/im2col_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv2DBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropFilterV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Conv3DBackpropInputV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cos.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cosh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/crop_and_resize_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/CropAndResize.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/cumsum_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DenseBincount.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/depth_to_space_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthToSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_packed_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNative.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/conv_backprop_gpu_depthwise.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropFilter.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/DepthwiseConv2dNativeBackpropInput.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/diag_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Diag.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/dilation_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Dilation2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Elu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/EluGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Equal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Erf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Exp.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ExpandDims.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Expm1.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fft_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/fill_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Fill.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/flip_left_right_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FlipLeftRight.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Floor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FloorDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/from_pixels_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FusedDepthwiseConv2D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_nd_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/gather_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GatherV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Greater.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/GreaterEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IFFT.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsFinite.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsInf.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/IsNaN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Less.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LessEqual.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LinSpace.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Log1p.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalAnd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalNot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LogicalOr.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRN.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/lrn_grad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LRNGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Max_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Maximum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3D.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/max_pool_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPool3DGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MaxPoolWithArgmax_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mean_impl.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Min.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Minimum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/mirror_pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/MirrorPad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Mod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/multinomial_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RealDiv.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sub.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softmax.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Multinomial.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Neg.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV3.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV4.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/NonMaxSuppressionV5.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/onehot_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OneHot.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ZerosLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/OnesLike.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/pad_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/PadV2.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Pow.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Prod.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Range.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reciprocal.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Relu6.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinear.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_bilinear_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeBilinearGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighbor.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/resize_nearest_neighbor_backprop_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ResizeNearestNeighborGrad.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/reverse_packed_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Reverse.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/rotate_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/RotateWithOffset.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Round.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Rsqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/scatter_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/ScatterNd.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/select_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Select.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Selu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sigmoid.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sign.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sin.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sinh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Softplus.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SpaceToBatchND.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SparseToDense.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SplitV.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Sqrt.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Square.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/SquaredDifference.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Step.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/strided_slice_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/StridedSlice.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tan.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tanh.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/tile_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Tile.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/TopK.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/transform_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Transform.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unique.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Unpack.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/segment_gpu.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/UnsortedSegmentSum.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/register_all_kernels.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs/dist/index.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-cpu/dist/version.js","webpack://dfd/./node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js","webpack://dfd/./node_modules/ajv/lib/compile/equal.js","webpack://dfd/./node_modules/astral-regex/index.js","webpack://dfd/./src/config/config.js","webpack://dfd/./src/core/concat.js","webpack://dfd/./src/core/frame.js","webpack://dfd/./src/core/generic.js","webpack://dfd/./src/core/groupby.js","webpack://dfd/./src/core/indexing.js","webpack://dfd/./src/core/series.js","webpack://dfd/./src/core/strings.js","webpack://dfd/./src/core/timeseries.js","webpack://dfd/./src/core/utils.js","webpack://dfd/./src/io/reader.js","webpack://dfd/./src/core/merge.js","webpack://dfd/./src/preprocessing/encodings.js","webpack://dfd/./src/preprocessing/scalers.js","webpack://dfd/./src/core/date_range.js","webpack://dfd/./src/core/get_dummies.js","webpack://dfd/./src/index.js","webpack://dfd/./src/plotting/plot.js","webpack://dfd/./node_modules/complex.js/complex.js","webpack://dfd/./node_modules/decimal.js/decimal.js","webpack://dfd/./node_modules/fast-deep-equal/index.js","webpack://dfd/./node_modules/fraction.js/fraction.js","webpack://dfd/./node_modules/is-fullwidth-code-point/index.js","webpack://dfd/./node_modules/javascript-natural-sort/naturalSort.js","webpack://dfd/./node_modules/lodash/_DataView.js","webpack://dfd/./node_modules/lodash/_Hash.js","webpack://dfd/./node_modules/lodash/_ListCache.js","webpack://dfd/./node_modules/lodash/_Map.js","webpack://dfd/./node_modules/lodash/_MapCache.js","webpack://dfd/./node_modules/lodash/_Promise.js","webpack://dfd/./node_modules/lodash/_Set.js","webpack://dfd/./node_modules/lodash/_SetCache.js","webpack://dfd/./node_modules/lodash/_Stack.js","webpack://dfd/./node_modules/lodash/_Symbol.js","webpack://dfd/./node_modules/lodash/_Uint8Array.js","webpack://dfd/./node_modules/lodash/_WeakMap.js","webpack://dfd/./node_modules/lodash/_arrayEach.js","webpack://dfd/./node_modules/lodash/_arrayFilter.js","webpack://dfd/./node_modules/lodash/_arrayLikeKeys.js","webpack://dfd/./node_modules/lodash/_arrayMap.js","webpack://dfd/./node_modules/lodash/_arrayPush.js","webpack://dfd/./node_modules/lodash/_arraySome.js","webpack://dfd/./node_modules/lodash/_asciiSize.js","webpack://dfd/./node_modules/lodash/_asciiToArray.js","webpack://dfd/./node_modules/lodash/_assignValue.js","webpack://dfd/./node_modules/lodash/_assocIndexOf.js","webpack://dfd/./node_modules/lodash/_baseAssign.js","webpack://dfd/./node_modules/lodash/_baseAssignIn.js","webpack://dfd/./node_modules/lodash/_baseAssignValue.js","webpack://dfd/./node_modules/lodash/_baseClone.js","webpack://dfd/./node_modules/lodash/_baseCreate.js","webpack://dfd/./node_modules/lodash/_baseExtremum.js","webpack://dfd/./node_modules/lodash/_baseFindIndex.js","webpack://dfd/./node_modules/lodash/_baseFlatten.js","webpack://dfd/./node_modules/lodash/_baseFor.js","webpack://dfd/./node_modules/lodash/_baseForOwn.js","webpack://dfd/./node_modules/lodash/_baseGet.js","webpack://dfd/./node_modules/lodash/_baseGetAllKeys.js","webpack://dfd/./node_modules/lodash/_baseGetTag.js","webpack://dfd/./node_modules/lodash/_baseGt.js","webpack://dfd/./node_modules/lodash/_baseHasIn.js","webpack://dfd/./node_modules/lodash/_baseIndexOf.js","webpack://dfd/./node_modules/lodash/_baseIsArguments.js","webpack://dfd/./node_modules/lodash/_baseIsEqual.js","webpack://dfd/./node_modules/lodash/_baseIsEqualDeep.js","webpack://dfd/./node_modules/lodash/_baseIsMap.js","webpack://dfd/./node_modules/lodash/_baseIsMatch.js","webpack://dfd/./node_modules/lodash/_baseIsNaN.js","webpack://dfd/./node_modules/lodash/_baseIsNative.js","webpack://dfd/./node_modules/lodash/_baseIsRegExp.js","webpack://dfd/./node_modules/lodash/_baseIsSet.js","webpack://dfd/./node_modules/lodash/_baseIsTypedArray.js","webpack://dfd/./node_modules/lodash/_baseIteratee.js","webpack://dfd/./node_modules/lodash/_baseKeys.js","webpack://dfd/./node_modules/lodash/_baseKeysIn.js","webpack://dfd/./node_modules/lodash/_baseMatches.js","webpack://dfd/./node_modules/lodash/_baseMatchesProperty.js","webpack://dfd/./node_modules/lodash/_baseProperty.js","webpack://dfd/./node_modules/lodash/_basePropertyDeep.js","webpack://dfd/./node_modules/lodash/_baseSlice.js","webpack://dfd/./node_modules/lodash/_baseTimes.js","webpack://dfd/./node_modules/lodash/_baseToString.js","webpack://dfd/./node_modules/lodash/_baseUnary.js","webpack://dfd/./node_modules/lodash/_baseValues.js","webpack://dfd/./node_modules/lodash/_cacheHas.js","webpack://dfd/./node_modules/lodash/_castFunction.js","webpack://dfd/./node_modules/lodash/_castPath.js","webpack://dfd/./node_modules/lodash/_castSlice.js","webpack://dfd/./node_modules/lodash/_charsEndIndex.js","webpack://dfd/./node_modules/lodash/_cloneArrayBuffer.js","webpack://dfd/./node_modules/lodash/_cloneBuffer.js","webpack://dfd/./node_modules/lodash/_cloneDataView.js","webpack://dfd/./node_modules/lodash/_cloneRegExp.js","webpack://dfd/./node_modules/lodash/_cloneSymbol.js","webpack://dfd/./node_modules/lodash/_cloneTypedArray.js","webpack://dfd/./node_modules/lodash/_copyArray.js","webpack://dfd/./node_modules/lodash/_copyObject.js","webpack://dfd/./node_modules/lodash/_copySymbols.js","webpack://dfd/./node_modules/lodash/_copySymbolsIn.js","webpack://dfd/./node_modules/lodash/_coreJsData.js","webpack://dfd/./node_modules/lodash/_createBaseFor.js","webpack://dfd/./node_modules/lodash/_defineProperty.js","webpack://dfd/./node_modules/lodash/_equalArrays.js","webpack://dfd/./node_modules/lodash/_equalByTag.js","webpack://dfd/./node_modules/lodash/_equalObjects.js","webpack://dfd/./node_modules/lodash/_freeGlobal.js","webpack://dfd/./node_modules/lodash/_getAllKeys.js","webpack://dfd/./node_modules/lodash/_getAllKeysIn.js","webpack://dfd/./node_modules/lodash/_getMapData.js","webpack://dfd/./node_modules/lodash/_getMatchData.js","webpack://dfd/./node_modules/lodash/_getNative.js","webpack://dfd/./node_modules/lodash/_getPrototype.js","webpack://dfd/./node_modules/lodash/_getRawTag.js","webpack://dfd/./node_modules/lodash/_getSymbols.js","webpack://dfd/./node_modules/lodash/_getSymbolsIn.js","webpack://dfd/./node_modules/lodash/_getTag.js","webpack://dfd/./node_modules/lodash/_getValue.js","webpack://dfd/./node_modules/lodash/_hasPath.js","webpack://dfd/./node_modules/lodash/_hasUnicode.js","webpack://dfd/./node_modules/lodash/_hashClear.js","webpack://dfd/./node_modules/lodash/_hashDelete.js","webpack://dfd/./node_modules/lodash/_hashGet.js","webpack://dfd/./node_modules/lodash/_hashHas.js","webpack://dfd/./node_modules/lodash/_hashSet.js","webpack://dfd/./node_modules/lodash/_initCloneArray.js","webpack://dfd/./node_modules/lodash/_initCloneByTag.js","webpack://dfd/./node_modules/lodash/_initCloneObject.js","webpack://dfd/./node_modules/lodash/_isFlattenable.js","webpack://dfd/./node_modules/lodash/_isIndex.js","webpack://dfd/./node_modules/lodash/_isKey.js","webpack://dfd/./node_modules/lodash/_isKeyable.js","webpack://dfd/./node_modules/lodash/_isMasked.js","webpack://dfd/./node_modules/lodash/_isPrototype.js","webpack://dfd/./node_modules/lodash/_isStrictComparable.js","webpack://dfd/./node_modules/lodash/_listCacheClear.js","webpack://dfd/./node_modules/lodash/_listCacheDelete.js","webpack://dfd/./node_modules/lodash/_listCacheGet.js","webpack://dfd/./node_modules/lodash/_listCacheHas.js","webpack://dfd/./node_modules/lodash/_listCacheSet.js","webpack://dfd/./node_modules/lodash/_mapCacheClear.js","webpack://dfd/./node_modules/lodash/_mapCacheDelete.js","webpack://dfd/./node_modules/lodash/_mapCacheGet.js","webpack://dfd/./node_modules/lodash/_mapCacheHas.js","webpack://dfd/./node_modules/lodash/_mapCacheSet.js","webpack://dfd/./node_modules/lodash/_mapToArray.js","webpack://dfd/./node_modules/lodash/_matchesStrictComparable.js","webpack://dfd/./node_modules/lodash/_memoizeCapped.js","webpack://dfd/./node_modules/lodash/_nativeCreate.js","webpack://dfd/./node_modules/lodash/_nativeKeys.js","webpack://dfd/./node_modules/lodash/_nativeKeysIn.js","webpack://dfd/./node_modules/lodash/_nodeUtil.js","webpack://dfd/./node_modules/lodash/_objectToString.js","webpack://dfd/./node_modules/lodash/_overArg.js","webpack://dfd/./node_modules/lodash/_root.js","webpack://dfd/./node_modules/lodash/_setCacheAdd.js","webpack://dfd/./node_modules/lodash/_setCacheHas.js","webpack://dfd/./node_modules/lodash/_setToArray.js","webpack://dfd/./node_modules/lodash/_stackClear.js","webpack://dfd/./node_modules/lodash/_stackDelete.js","webpack://dfd/./node_modules/lodash/_stackGet.js","webpack://dfd/./node_modules/lodash/_stackHas.js","webpack://dfd/./node_modules/lodash/_stackSet.js","webpack://dfd/./node_modules/lodash/_strictIndexOf.js","webpack://dfd/./node_modules/lodash/_stringSize.js","webpack://dfd/./node_modules/lodash/_stringToArray.js","webpack://dfd/./node_modules/lodash/_stringToPath.js","webpack://dfd/./node_modules/lodash/_toKey.js","webpack://dfd/./node_modules/lodash/_toSource.js","webpack://dfd/./node_modules/lodash/_unicodeSize.js","webpack://dfd/./node_modules/lodash/_unicodeToArray.js","webpack://dfd/./node_modules/lodash/cloneDeep.js","webpack://dfd/./node_modules/lodash/eq.js","webpack://dfd/./node_modules/lodash/flatten.js","webpack://dfd/./node_modules/lodash/get.js","webpack://dfd/./node_modules/lodash/hasIn.js","webpack://dfd/./node_modules/lodash/identity.js","webpack://dfd/./node_modules/lodash/isArguments.js","webpack://dfd/./node_modules/lodash/isArray.js","webpack://dfd/./node_modules/lodash/isArrayLike.js","webpack://dfd/./node_modules/lodash/isBoolean.js","webpack://dfd/./node_modules/lodash/isBuffer.js","webpack://dfd/./node_modules/lodash/isFunction.js","webpack://dfd/./node_modules/lodash/isLength.js","webpack://dfd/./node_modules/lodash/isMap.js","webpack://dfd/./node_modules/lodash/isNumber.js","webpack://dfd/./node_modules/lodash/isObject.js","webpack://dfd/./node_modules/lodash/isObjectLike.js","webpack://dfd/./node_modules/lodash/isRegExp.js","webpack://dfd/./node_modules/lodash/isSet.js","webpack://dfd/./node_modules/lodash/isString.js","webpack://dfd/./node_modules/lodash/isSymbol.js","webpack://dfd/./node_modules/lodash/isTypedArray.js","webpack://dfd/./node_modules/lodash/isUndefined.js","webpack://dfd/./node_modules/lodash/keys.js","webpack://dfd/./node_modules/lodash/keysIn.js","webpack://dfd/./node_modules/lodash/mapValues.js","webpack://dfd/./node_modules/lodash/max.js","webpack://dfd/./node_modules/lodash/memoize.js","webpack://dfd/./node_modules/lodash/property.js","webpack://dfd/./node_modules/lodash/stubArray.js","webpack://dfd/./node_modules/lodash/stubFalse.js","webpack://dfd/./node_modules/lodash/times.js","webpack://dfd/./node_modules/lodash/toFinite.js","webpack://dfd/./node_modules/lodash/toInteger.js","webpack://dfd/./node_modules/lodash/toNumber.js","webpack://dfd/./node_modules/lodash/toString.js","webpack://dfd/./node_modules/lodash/trimEnd.js","webpack://dfd/./node_modules/lodash/truncate.js","webpack://dfd/./node_modules/lodash/values.js","webpack://dfd/./node_modules/mathjs/es/core/config.js","webpack://dfd/./node_modules/mathjs/es/entry/configReadonly.js","webpack://dfd/./node_modules/mathjs/es/core/function/config.js","webpack://dfd/./node_modules/mathjs/es/utils/object.js","webpack://dfd/./node_modules/mathjs/es/utils/factory.js","webpack://dfd/./node_modules/mathjs/es/type/resultset/ResultSet.js","webpack://dfd/./node_modules/mathjs/es/type/complex/Complex.js","webpack://dfd/./node_modules/mathjs/es/utils/function.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/constants.js","webpack://dfd/./node_modules/mathjs/es/plain/number/constants.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/BigNumber.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Matrix.js","webpack://dfd/./node_modules/mathjs/es/type/unit/physicalConstants.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/Fraction.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/formatter.js","webpack://dfd/./node_modules/mathjs/es/utils/string.js","webpack://dfd/./node_modules/mathjs/es/error/DimensionError.js","webpack://dfd/./node_modules/mathjs/es/error/IndexError.js","webpack://dfd/./node_modules/mathjs/es/utils/array.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/DenseMatrix.js","webpack://dfd/./node_modules/mathjs/es/core/function/typed.js","webpack://dfd/./node_modules/mathjs/es/utils/collection.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isInteger.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNumeric.js","webpack://dfd/./node_modules/mathjs/es/function/utils/isNaN.js","webpack://dfd/./node_modules/mathjs/es/utils/bignumber/nearlyEqual.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalScalar.js","webpack://dfd/./node_modules/mathjs/es/utils/complex.js","webpack://dfd/./node_modules/mathjs/es/type/number.js","webpack://dfd/./node_modules/mathjs/es/plain/number/arithmetic.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryPlus.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/apply.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/cube.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiplyScalar.js","webpack://dfd/./node_modules/mathjs/es/function/string/baseUtils.js","webpack://dfd/./node_modules/mathjs/es/function/special/erf.js","webpack://dfd/./node_modules/mathjs/es/function/string/oct.js","webpack://dfd/./node_modules/mathjs/es/function/probability/randomInt.js","webpack://dfd/./node_modules/mathjs/es/type/fraction/function/fraction.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/unaryMinus.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/addScalar.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/sqrt.js","webpack://dfd/./node_modules/mathjs/es/function/complex/conj.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/mode.js","webpack://dfd/./node_modules/mathjs/es/function/string/bin.js","webpack://dfd/./node_modules/mathjs/es/function/probability/random.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/SparseMatrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/function/matrix.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm01.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm04.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm10.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm13.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm14.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm03.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm05.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm11.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm12.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/utils/algorithm07.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/identity.js","webpack://dfd/./node_modules/mathjs/es/utils/noop.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/size.js","webpack://dfd/./node_modules/mathjs/es/function/string/hex.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/round.js","webpack://dfd/./node_modules/mathjs/es/function/relational/compare.js","webpack://dfd/./node_modules/mathjs/es/function/relational/smaller.js","webpack://dfd/./node_modules/mathjs/es/function/relational/larger.js","webpack://dfd/./node_modules/mathjs/es/function/relational/unequal.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/FibonacciHeap.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/add.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/dot.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/abs.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/multiply.js","webpack://dfd/./node_modules/mathjs/es/error/ArgumentsError.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equalText.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/partitionSelect.js","webpack://dfd/./node_modules/mathjs/es/type/bignumber/function/bignumber.js","webpack://dfd/./node_modules/mathjs/es/function/utils/numeric.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/utils/improveErrorMessage.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/ceil.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/subtract.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/cross.js","webpack://dfd/./node_modules/mathjs/es/function/relational/equal.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divideScalar.js","webpack://dfd/./node_modules/mathjs/es/type/matrix/Spa.js","webpack://dfd/./node_modules/mathjs/es/function/algebra/decomposition/lup.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/det.js","webpack://dfd/./node_modules/mathjs/es/function/matrix/inv.js","webpack://dfd/./node_modules/mathjs/es/function/arithmetic/divide.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/variance.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/std.js","webpack://dfd/./node_modules/mathjs/es/function/statistics/median.js","webpack://dfd/./node_modules/mathjs/es/entry/pureFunctionsAny.generated.js","webpack://dfd/./node_modules/mathjs/es/plain/number/probability.js","webpack://dfd/./node_modules/mathjs/es/plain/number/trigonometry.js","webpack://dfd/./node_modules/mathjs/es/plain/number/utils.js","webpack://dfd/./node_modules/mathjs/es/utils/is.js","webpack://dfd/./node_modules/mathjs/es/utils/number.js","webpack://dfd/./node_modules/mathjs/es/utils/product.js","webpack://dfd/./node_modules/regenerator-runtime/runtime.js","webpack://dfd/./node_modules/seed-random/index.js","webpack://dfd/./node_modules/seedrandom/index.js","webpack://dfd/./node_modules/seedrandom/lib/alea.js","webpack://dfd/./node_modules/seedrandom/lib/tychei.js","webpack://dfd/./node_modules/seedrandom/lib/xor128.js","webpack://dfd/./node_modules/seedrandom/lib/xor4096.js","webpack://dfd/./node_modules/seedrandom/lib/xorshift7.js","webpack://dfd/./node_modules/seedrandom/lib/xorwow.js","webpack://dfd/./node_modules/seedrandom/seedrandom.js","webpack://dfd/./node_modules/slice-ansi/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/ansi-styles/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/conversions.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/index.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-convert/route.js","webpack://dfd/./node_modules/slice-ansi/node_modules/color-name/index.js","webpack://dfd/./node_modules/table/dist/alignString.js","webpack://dfd/./node_modules/table/dist/alignTableData.js","webpack://dfd/./node_modules/table/dist/calculateCellHeight.js","webpack://dfd/./node_modules/table/dist/calculateCellWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateMaximumColumnWidthIndex.js","webpack://dfd/./node_modules/table/dist/calculateRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/createStream.js","webpack://dfd/./node_modules/table/dist/drawBorder.js","webpack://dfd/./node_modules/table/dist/drawRow.js","webpack://dfd/./node_modules/table/dist/drawTable.js","webpack://dfd/./node_modules/table/dist/getBorderCharacters.js","webpack://dfd/./node_modules/table/dist/index.js","webpack://dfd/./node_modules/table/dist/makeConfig.js","webpack://dfd/./node_modules/table/dist/makeStreamConfig.js","webpack://dfd/./node_modules/table/dist/mapDataUsingRowHeightIndex.js","webpack://dfd/./node_modules/table/dist/padTableData.js","webpack://dfd/./node_modules/table/dist/stringifyTableData.js","webpack://dfd/./node_modules/table/dist/table.js","webpack://dfd/./node_modules/table/dist/truncateTableData.js","webpack://dfd/./node_modules/table/dist/validateConfig.js","webpack://dfd/./node_modules/table/dist/validateTableData.js","webpack://dfd/./node_modules/table/dist/wrapCell.js","webpack://dfd/./node_modules/table/dist/wrapString.js","webpack://dfd/./node_modules/table/dist/wrapWord.js","webpack://dfd/./node_modules/table/node_modules/ansi-regex/index.js","webpack://dfd/./node_modules/table/node_modules/emoji-regex/index.js","webpack://dfd/./node_modules/table/node_modules/string-width/index.js","webpack://dfd/./node_modules/table/node_modules/strip-ansi/index.js","webpack://dfd/./node_modules/typed-function/typed-function.js","webpack://dfd/./node_modules/xlsx/dist/cpexcel.js","webpack://dfd/./node_modules/xlsx/jszip.js","webpack://dfd/./node_modules/xlsx/xlsx.js","webpack://dfd/webpack/bootstrap","webpack://dfd/webpack/startup","webpack://dfd/webpack/runtime/amd define","webpack://dfd/webpack/runtime/amd options","webpack://dfd/webpack/runtime/compat get default export","webpack://dfd/webpack/runtime/define property getters","webpack://dfd/webpack/runtime/global","webpack://dfd/webpack/runtime/hasOwnProperty shorthand","webpack://dfd/webpack/runtime/make namespace object","webpack://dfd/webpack/runtime/node module decorator"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","prototype","superPropBase","_get","property","receiver","Reflect","get","base","desc","getOwnPropertyDescriptor","call","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","object","hasOwnProperty","arrayWithoutHoles","iterableToArray","nonIterableSpread","obj","minLen","n","toString","slice","name","test","DataStorage","backend","dataMover","data","WeakMap","dataIdsCount","dataId","has","moveData","set","delete","KernelBackend","notYetImplemented","f","force","values","shape","dtype","refCount","floatPrecision","kernelName","Error","array","counter","temp","index","Math","random","shuffleCombo","array2","temp2","clamp","min","x","max","nearestLargerEven","val","sum","randUniform","a","b","r","distSquared","result","diff","Number","assert","expr","msg","assertShapesMatch","shapeA","shapeB","errorMessagePrefix","arraysEqual","assertNonNull","flatten","skipTypedArray","isTypedArray","sizeFromShape","size","isScalarShape","n1","n2","isInt","tanh","Infinity","e2x","exp","sizeToSquarishShape","width","ceil","sqrt","createShuffledIndices","shuffledIndices","Uint32Array","rightPad","repeat","repeatedTry","checkFn","delayFn","maxCounter","tryCount","tryFn","nextBackoff","setTimeout","inferFromImplicitShape","shapeProd","implicitIdx","newShape","parseAxisParam","axis","rank","map","s","concat","every","ax","squeezeShape","keptDims","isEmptyArray","axes","sort","j","getTypedArrayFromDType","Float32Array","Int32Array","Uint8Array","getArrayFromDType","checkConversionForErrors","vals","num","isNaN","isFinite","isValidDtype","hasEncodingLoss","oldType","newType","bytesPerElement","bytesFromStringArray","bytes","forEach","isString","String","isBoolean","isNumber","inferDtype","isFunction","nearestDivisor","start","computeStrides","strides","createNestedArray","offset","ret","d","rest","reduce","acc","c","toNestedArray","makeOnesTypedArray","makeZerosTypedArray","makeZerosNestedTypedArray","prev","curr","assertNonNegativeIntegerDimensions","dimSize","isInteger","locToIndex","locs","indexToLoc","floor","isPromise","Environment","global","flags","flagRegistry","urlFlags","populateURLFlags","platformName","platform","console","warn","flagName","evaluationFn","setHook","flagValue","evaluateFlag","assign","location","search","urlParams","queryString","params","replace","t","decodeURIComponent","decodeParam","join","getQueryParams","split","keyValue","toLowerCase","parseValue","ENV","globalNameSpace","getGlobalNamespace","ns","window","g","process","getGlobal","init","globalMap","_tfGlobals","Map","getGlobalMap","singleton","Abs","Acos","Acosh","Add","AddN","All","Any","ArgMax","ArgMin","Asin","Asinh","Atan","Atanh","Atan2","AvgPool","AvgPoolGrad","AvgPool3D","AvgPool3DGrad","BatchMatMul","BatchToSpaceND","Bincount","BroadcastTo","Cast","Ceil","ClipByValue","Complex","ComplexAbs","Concat","Conv2D","Conv2DBackpropFilter","Conv2DBackpropInput","Conv3D","Conv3DBackpropFilterV2","Conv3DBackpropInputV2","Cos","Cosh","Cumsum","CropAndResize","DenseBincount","DepthToSpace","DepthwiseConv2dNative","DepthwiseConv2dNativeBackpropFilter","DepthwiseConv2dNativeBackpropInput","Diag","Dilation2D","Dilation2DBackpropInput","Dilation2DBackpropFilter","RealDiv","Elu","EluGrad","Erf","Equal","Exp","ExpandDims","Expm1","FFT","Fill","FlipLeftRight","Floor","FloorDiv","FusedBatchNorm","GatherV2","GatherNd","Greater","GreaterEqual","Identity","IFFT","Imag","IsFinite","IsInf","IsNan","LeakyRelu","Less","LessEqual","LinSpace","Log","Log1p","LogicalAnd","LogicalNot","LogicalOr","LogSoftmax","LRN","LRNGrad","Max","Maximum","MaxPool","MaxPoolGrad","MaxPool3D","MaxPool3DGrad","MaxPoolWithArgmax","Mean","Min","Minimum","MirrorPad","Mod","Multinomial","Multiply","Neg","NotEqual","NonMaxSuppressionV3","NonMaxSuppressionV4","NonMaxSuppressionV5","OnesLike","OneHot","Pack","PadV2","Pool","Pow","Prelu","Prod","Range","Real","Reciprocal","Relu","Reshape","ResizeNearestNeighbor","ResizeNearestNeighborGrad","ResizeBilinear","ResizeBilinearGrad","Relu6","Reverse","Round","Rsqrt","ScatterNd","Select","Selu","Slice","Sin","Sinh","Sign","Sigmoid","Softplus","Sqrt","Sum","SpaceToBatchND","SplitV","Softmax","SquaredDifference","Square","Sub","SparseToDense","StridedSlice","Tan","Tanh","Tile","TopK","Transform","Transpose","Unique","Unpack","UnsortedSegmentSum","ZerosLike","Step","FromPixels","RotateWithOffset","_FusedMatMul","FusedConv2D","FusedDepthwiseConv2D","kernelRegistry","gradRegistry","getKernel","backendName","makeKey","getGradient","getKernelsForBackend","it","entries","config","registerKernel","registerGradient","getBool","unregisterKernel","unregisterGradient","copyRegisteredKernels","registeredBackendName","newBackendName","kernelConfig","createScalarValue","encodeString","toTypedArray","noConversionNeeded","bool","round","now","path","requestInits","fetch","encoding","encode","decodeString","decode","Profiler","backendTimer","logger","Logger","inputs","outputs","holdResultWrapperFn","timer","timerAvailable","time","output","dataSync","kernelMs","tensorVals","checkComputationForErrors","timeMs","timing","extraInfo","getExtraProfileInfo","kernelProfile","all","valueContainer","logKernelProfile","paddedName","inputShapesDescription","input","inputShape","inputRank","log","tensorToString","verbose","padPerCol","numCols","fill","valuesOrTuples","createComplexTuples","row","valToString","computeMaxSizePerColumn","valsLines","subTensorToString","lines","l","pad","valStr","parseFloat","toFixed","boolNumToString","v","isLast","storagePerElement","firstValsSize","firstVals","lastVals","subshape","substrides","stride","end","sep","newLineSep","complexTuples","TensorBuffer","loc","trackerFn","makeTensor","opHandler","deprecationWarningFn","Tensor","id","kept","isDisposedInternal","rankType","buffer","throwIfDisposed","read","_a","readSync","isDisposed","disposeTensor","print","clone","cast","trainable","makeVariable","getGlobalTensorClass","hasInstance","Variable","initialValue","tensorId","super","newValue","incRef","disposeVariable","Rank","UpcastInt32AndMap","UpcastBoolAndMap","UpcastFloat32AndMap","UpcastComplex64AndMap","Function","upcastTypeMap","upcastType","typeA","typeB","sumOutType","type","makeTypesMatch","assertTypesMatch","isTensorInList","tensor","tensorList","some","getTensorsInContainer","list","walkTensorContainer","Set","container","seen","iterable","k","add","isRegisteredKernelInvocation","kernelInvocation","EngineState","registeredVariables","nextTapeNodeId","numBytes","numTensors","numStringTensors","numDataBuffers","gradientDepth","kernelDepth","scopeStack","numDataMovesStack","nextScopeId","tensorInfo","profiling","activeProfile","newBytes","newTensors","peakBytes","kernels","variableName","dispose","Engine","registry","registryFactory","pendingBackendInitId","state","pendingBackendInit","backendInstance","sortedBackends","getSortedBackends","initializeBackend","success","setBackend","asyncInit","initializeBackendsAndReturnBest","keys","factory","priority","setupRegisteredKernels","profiler","kernel","setupFunc","disposeFunc","registryFactoryEntry","promiseId","catch","stack","message","disposeRegisteredKernels","srcBackend","disposeData","move","shouldCheckForMemLeaks","nameOrFn","scopedRun","startScope","endScope","res","ex","nextTensorId","nextVariableId","y","ENGINE","runKernel","addTapeNode","activeScope","dy","gradInputs","attrs","runKernelFunc","numDataIdsBefore","outInfos","numDataIdsAfter","numDataIds","numOutputDataIds","numMoves","dataIdsLeaked","kernelParams","saved","isTapeOn","startingBytecount","startingNumTensors","kernelFunc","out","kernelOrScopeName","checkKernelForMemLeak","outTensors","outInfo","makeTensorFromDataId","tensorsToSave","getTensorsForGradient","saveTensorsForBackwardMode","forwardFunc","saveFunc","tensors","keep","tidy","outs","backwardsFunc","profileKernel","bytesAdded","totalBytesSnapshot","tensorsAdded","totalTensorsSnapshot","inputShapes","outputShapes","item","kernelTimeMs","gradConfig","inputsToSave","outputsToSave","inputTensorsToSave","saveAllInputs","inputName","outputTensorsToSave","filter","_","backendVals","write","trackTensor","track","removeDataId","varName","memory","unreliable","reasons","query","startBytes","startNumTensors","gradientsFunc","tapeNode","gradFunc","gradient","dys","activeTape","scopeInfo","tensorsToTrackInParent","tensorsToTrackInParentSet","oldScope","pop","scopeId","xs","allowNoGradients","startTape","endTape","filteredTape","tape","tensorsFromX","nodesFromX","node","nodeInputs","anyInputFromX","tensorsLeadToY","nodesToY","prunedInputs","nodeInput","prunedNode","getFilteredNodesXToY","accumulatedGradientMap","ones","tensorAccumulatedGradientMap","gradTensor","inputGradients","dx","curGradient","backpropagateGradients","grads","inputMap","save","gradRes","gradMap","grad","timingInfo","wallMs","reset","getOrMakeEngine","_tfengine","environment","isMobile","navigator","userAgent","vendor","opera","substr","isBrowser","document","WorkerGlobalScope","inferShape","firstElem","deepAssertShapeConsistency","indices","subShape","assertDtype","expectedDtype","actualDType","argName","functionName","convertToTensor","parseAsDtype","inferredDtype","indexOf","inferredShape","convertToTensorArray","registerFlag","debugValue","versions","OP_SCOPE_SUFFIX","op","opName","endsWith","substring","f2","complex","complex_","real","imag","$real","$imag","providedSize","inferredSize","inferred","flatDimsDontMatch","DTYPE_VALUE_SIZE_MAP","async","encodeWeights","group","specs","dataPromises","names","spec","utf8bytes","totalNumBytes","bytesOfLength","concatenateTypedArrays","decodeWeights","float16Decode","quantization","quantizationSizeFactor","byteBuffer","quantizedArray","Uint16Array","scale","getFloat16Decoder","byteLength","dtypeFactor","image","realTensor","imageTensor","JSON","stringify","totalByteLength","normalizedXs","useNodeBuffer","Buffer","Blob","atob","btoa","stringByteLength","str","concatenateArrayBuffers","buffers","basename","trim","items","getModelArtifactsInfoForJSON","modelArtifacts","modelTopology","ArrayBuffer","dateSaved","Date","modelTopologyType","modelTopologyBytes","weightSpecsBytes","weightSpecs","weightDataBytes","weightData","mantisaTable","convertMantissa","m","e","computeFloat16MantisaTable","exponentTable","computeFloat16ExponentTable","offsetTable","computeFloat16OffsetTable","bufferUint32View","float16Bits","float32Bits","IORouterRegistry","saveRouters","loadRouters","saveRouter","getInstance","loadRouter","url","getHandlers","loadOptions","handlerType","validHandlers","router","handler","registerSaveRouter","loudRouter","registerLoadRouter","getSaveHandlers","getLoadHandlers","DATABASE_NAME","MODEL_STORE_NAME","INFO_STORE_NAME","getIndexedDBFactory","theWindow","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","shimIndexedDB","setUpDatabase","openRequest","db","createObjectStore","keyPath","BrowserIndexedDB","modelPath","databaseAction","open","onupgradeneeded","onsuccess","modelTx","transaction","getRequest","objectStore","close","onerror","oncomplete","modelArtifactsInfo","infoTx","infoStore","putInfoRequest","put","putModelRequest","deleteInfoRequest","URL_SCHEME","indexedDBRouter","startsWith","BrowserIndexedDBManager","tx","getAllInfoRequest","getAll","getInfoRequest","deleteModelData","deleteModelRequest","PATH_SEPARATOR","PATH_PREFIX","INFO_SUFFIX","MODEL_TOPOLOGY_SUFFIX","WEIGHT_SPECS_SUFFIX","WEIGHT_DATA_SUFFIX","MODEL_METADATA_SUFFIX","getModelKeys","topology","modelMetadata","getModelPathFromKey","BrowserLocalStorage","localStorage","LS","setItem","buf","fromCharCode","arrayBufferToBase64String","format","generatedBy","convertedBy","signature","userDefinedMetadata","modelInitializer","removeItem","parse","getItem","metadataString","metadata","weightDataBase64","byteOffset","charCodeAt","base64StringToArrayBuffer","localStorageRouter","BrowserLocalStorageManager","prefix","suffix","URL_SCHEME_SUFFIX","ModelStoreManagerRegistry","managers","scheme","manager","parseURL","getSchemes","cloneModelInternal","sourceURL","destURL","deleteSource","loadHandlers","loadHandler","saveHandlers","saveHandler","sourceScheme","sourcePath","sameMedium","load","getManager","removeModel","saveResult","listModels","schemes","schemeOut","schemeAndPath","copyModel","moveModel","PlatformBrowser","performance","text","textEncoder","TextEncoder","TextDecoder","setPlatform","registerManager","systemFetch","util","hrtime","cast_","$x","clone_","defer","BrowserDownloads","fileNamePrefix","modelTopologyFileName","weightDataFileName","weightsURL","URL","createObjectURL","weightsManifest","paths","weights","modelTopologyAndWeightManifest","modelTopologyAndWeightManifestURL","jsonAnchor","createElement","download","href","dispatchEvent","MouseEvent","weightDataAnchor","BrowserFiles","files","jsonFile","weightFiles","jsonReader","FileReader","onload","event","modelJSON","pathToFile","checkManifestAndWeightFiles","perFileBuffers","weightsGroup","weightFileReader","readAsArrayBuffer","readAsText","manifest","basenames","fileNames","file","pathBasename","browserFiles","monitorPromisesProgress","promises","onProgress","startFraction","endFraction","checkPromises","checkFraction","resolvedPromise","promise","fraction","loadWeightsAsArrayBuffer","fetchURLs","fetchFunc","requests","fetchURL","requestInit","isBinary","bufferPromises","response","arrayBuffer","loadWeights","filePathPrefix","weightNames","weightsLoaderFactory","fetchUrls","fetchWeightsFunction","groupIndicesToFetchMap","groupWeightsToFetch","weightsFound","allManifestWeightNames","manifestGroupConfig","groupIndex","groupOffset","weightsEntry","rawDtype","weightsBytes","enqueueWeightsForFetchingFn","manifestEntry","sizeBytes","weightName","weightIndex","found","weightsNotFound","groupIndicesToFetch","accumulator","shouldFetch","filepath","fetchUrl","weightsTensorMap","bufferIndexOffset","numBuffers","groupBytes","groupBuffer","groupByteBuffer","groupBufferOffset","nameToTensorMap","browserDownloads","HTTPRequest","DEFAULT_METHOD","weightPathPrefix","weightUrlConverter","body","method","FormData","append","ok","responses","status","modelConfigRequest","modelConfig","json","results","artifacts","initializer","weightPath","lastSlash","lastIndexOf","lastSearchParam","parseUrl","pathPrefix","entry","urlPromises","isHTTPScheme","match","URL_SCHEME_REGEX","httpRouter","isHTTP","urlItem","http","browserHTTPRequest","PassthroughLoader","PassthroughSaver","fromMemory","trainingConfig","withSaveHandler","matMul","matMul_","transposeA","transposeB","$a","$b","oneHot","oneHot_","depth","onValue","offValue","transpose","transpose_","perm","reverse","confusionMatrix","confusionMatrix_","labels","predictions","numClasses","$labels","$predictions","oneHotLabels","oneHotPredictions","oneHotLabelsT","product","tensor3d","fromPixels2DContext","fromPixels_","pixels","numChannels","isPixelData","isImageData","isVideo","isImage","isCanvasLike","isImageBitmap","ImageData","HTMLVideoElement","HTMLImageElement","getContext","ImageBitmap","HAVE_CURRENT_DATA_READY_STATE","readyState","height","videoWidth","videoHeight","getImageData","canvas","drawImage","numPixels","channel","fromPixelsAsync","isNonEmptyPixels","canWrapPixelsToImageBitmap","imageBitmap","createImageBitmap","premultiplyAlpha","toPixels","img","$img","originalImgTensor","multiplier","Uint8ClampedArray","rgba","ctx","imageData","putImageData","fromPixels","prepareAndValidate","tensorRank","indicesRank","indicesShape","sliceRank","nResult","resultShape","sliceSize","validateUpdateShape","updates","sliceDim","batchDim","shapeError","validateInput","calculateShapes","totalNd","safeSliceDim","numUpdates","outputSize","assertParamsValid","begin","maskToAxes","mask","computeOutShape","stridesWithElidedDims","ellipsisInsertionIndex","numElidedAxes","newStrides","splice","unnormalizeAxis","normalizedAxis","getElidedAxes","elidedAxes","getNormalizedAxes","ellipsisAxes","numInterpolatedAxes","beginMask","endMask","ellipsisMask","normalizedBegin","normalizedEnd","normalizedStrides","fullIndex","startIndicesWithElidedDims","stopIndicesWithElidedDims","startForAxis","stopForAxis","stridesForAxis","originalBegin","newIndices","originalAxis","originalValue","originalEnd","MAX_SAFE_INTEGER","axisSize","startIndices","MIN_SAFE_INTEGER","stopIndices","stop","isSliceContinous","firstNonOneAxis","computeFlatOffset","flatOffset","parseSliceParams","begin_","xRank","size_","sliceInfo","xShape","newAxisMask","shrinkAxisMask","$begin","$end","$strides","expandAxes","shrinkAxes","outShape","nonStrided","Serializable","className","cls","SerializationMap","classNameMap","getMap","fromConfig","registerClass","register","TEST_EPSILON_FLOAT16","expectArraysClose","actual","expected","epsilon","expectArraysPredicate","areClose","predicate","checkClassType","aType","bType","actualShape","expectedShape","actualFlat","expectedFlat","expectPromiseToFail","fail","expectArraysEqual","abs","expectValuesInRange","low","high","expectArrayBuffersEqual","expect","toEqual","encodeStrings","version","enableProdMode","enableDebugMode","disableDeprecationWarnings","deprecationWarn","disposeVariables","engine","profile","ready","getBackend","removeBackend","findBackend","findBackendFactory","registerBackend","add_","floorDiv","floorDiv_","div","div_","mul","mul_","sqrt_","square","square_","zerosLike","zerosLike_","$dy","gradients","checkGrads","$args","valueAndGrad","valueAndGrads","varList","specifiedVarList","specifiedNonTrainable","variable","originalVarCount","namedGrads","customGrad","Optimizer","returnCost","computeGradients","gradArray","applyGradients","iterations_","iterations","weightValues","getClassName","minimize","AdadeltaOptimizer","learningRate","rho","accumulatedGrads","accumulatedUpdates","variableGradients","originalName","accumulatedGrad","accumulatedUpdate","newAccumulatedGrad","newAccumulatedUpdate","incrementIterations","variables","saveIterations","variableCount","extractIterations","AdagradOptimizer","initialAccumulatorValue","pow","pow_","$base","$exp","sub","sub_","AdamOptimizer","beta1","beta2","accumulatedFirstMoment","accumulatedSecondMoment","accBeta1","accBeta2","varNames","oneMinusAccBeta1","oneMinusAccBeta2","firstMoment","secondMoment","newFirstMoment","newSecondMoment","biasCorrectedFirstMoment","biasCorrectedSecondMoment","abs_","getBroadcastDims","inShape","inRank","dims","dim","unshift","getReductionAxes","inDim","outAxis","outDim","assertAndGetBroadcastShape","maximum","maximum_","AdamaxOptimizer","decay","accumulatedWeightedInfNorm","iteration","variableNames","lr","weightedInfNorm","ut0","ut1","newWeightedInfNorm","SGDOptimizer","setLearningRate","MomentumOptimizer","momentum","useNesterov","accumulations","accumulation","newAccumulation","RMSPropOptimizer","centered","accumulatedMeanSquares","accumulatedMoments","accumulatedMeanGrads","accumulatedMeanSquare","newAccumulatedMeanSquare","accumulatedMeanGrad","newAccumulatedMeanGrad","gradContribution","newAccumulatedMoments","acos","acos_","acosh","acosh_","addN","addN_","$tensors","firstTensor","all_","keepDims","any","any_","argMax","argMax_","argMin","argMin_","asin","asin_","asinh","asinh_","atan","atan_","atan2","atan2_","atanh","atanh_","computeDilation2DInfo","filterShape","dataFormat","dilations","computeConv2DInfo","convertConv2DDataFormat","computePool2DInfo","filterSize","roundingMode","filterHeight","filterWidth","parseTupleParam","computePool3DInfo","filterDepth","parse3TupleParam","$dataFormat","computeConv3DInfo","depthwise","batchSize","inHeight","inWidth","inChannels","filterChannels","strideHeight","strideWidth","dilationHeight","dilationWidth","effectiveFilterHeight","getEffectiveFilterSize","effectiveFilterWidth","padInfo","outHeight","outWidth","top","bottom","left","right","fieldSize","zeroPad","computeDefaultPad","inputCols","computeOutputShape2D","padAlongHeight","padAlongWidth","getPadAndOutInfo","outChannels","inDepth","strideDepth","dilationDepth","effectiveFilterDepth","outDepth","front","back","inputRows","computeOutputShape4D","padAlongDepth","get3DPadAndOutInfo","dilation","effectiveFieldSize","param","trunc","tupleValuesAreOne","dimA","dimB","dimC","eitherStridesOrDilationsAreOne","reshape","reshape_","avgPool","avgPool_","dimRoundingMode","x4D","reshapedTo4D","avgPool3d","avgPool3d_","x5D","reshapedTo5D","concat_","attr","sigmoid","sigmoid_","slice_","tanh_","basicLSTMCell","basicLSTMCell_","forgetBias","lstmKernel","lstmBias","h","$forgetBias","$lstmKernel","$lstmBias","$data","$c","$h","combined","weighted","sliceCols","newC","batchToSpaceND","batchToSpaceND_","blockShape","crops","prod","batchNorm","batchNorm_","mean","variance","varianceEpsilon","$mean","$variance","$scale","$offset","xAs4D","batchNorm2d","batchNorm2d_","batchNorm3d","batchNorm3d_","batchNorm4d","batchNorm4d_","bincount","bincount_","$weights","broadcastTo","broadcastTo_","reps","ceil_","clipByValue","clipByValue_","clipValueMin","clipValueMax","concat1d","concat1d_","concat2d","concat2d_","concat3d","concat3d_","concat4d","concat4d_","conv2d","conv2d_","$filter","conv1d","conv1d_","x3D","reshapedTo3D","filter4D","input4D","conv2DBackpropInput","conv2DBackpropInput_","xShape4D","dy4D","conv2dTranspose","conv2dTranspose_","outputShape","conv3d","conv3d_","conv3DBackpropInput","conv3DBackpropInput_","xShape5D","dy5D","conv3dTranspose","conv3dTranspose_","cos","cos_","cosh","cosh_","cumsum","cumsum_","exclusive","denseBincount","denseBincount_","binaryOutput","depthToSpace","depthToSpace_","blockSize","inputHeight","inputWidth","inputDepth","depthwiseConv2d","depthwiseConv2d_","diag","diag_","dilation2d","dilation2d_","equal","equal_","where_","condition","$condition","broadcastShape","$broadcastedA","$broadcastedB","divNoNan","divNoNan_","divResult","zeros","bEqualsZero","dot","dot_","t1","t2","$t1","$t2","t1Inner","t2Inner","t12D","t22D","t1t2","elu","elu_","erf","erf_","exp_","expandDims","expandDims_","expm1","expm1_","tile","tile_","eye","eye_","numRows","numColumns","batchShape","buff","toTensor","floor_","gather","gather_","batchDims","greater","greater_","greaterEqual","greaterEqual_","imag_","isFinite_","isInf","isInf_","isNaN_","leakyRelu","leakyRelu_","alpha","less","less_","lessEqual","lessEqual_","linspace","localResponseNormalization","localResponseNormalization_","depthRadius","bias","beta","log_","log1p","log1p_","neg","neg_","softplus","softplus_","logSigmoid","logSigmoid_","customOp","max_","reductionIndices","sum_","logSoftmax","logSoftmax_","logits","$logits","xMax","shifted","softmax","axesAreInnerMostDims","combineLocations","outputLoc","reduceLoc","outIdx","reduceIdx","computeOutAndReduceShapes","aShape","expandShapeToKeepDim","assertAxesAreInnerMostDims","getAxesPermutation","getUndoAxesPermutation","getInnerMostAxes","numAxes","logSumExp","logSumExp_","logicalAnd","logicalAnd_","logicalNot","logicalNot_","logicalOr","logicalOr_","logicalXor","logicalXor_","maxPool","maxPool_","maxPool3d","maxPool3d_","maxPoolWithArgmax","maxPoolWithArgmax_","includeBatchInIndex","indexes","mean_","min_","minimum","minimum_","mirrorPad","mirrorPad_","paddings","mode","shapeOffset","mod","mod_","moments","moments_","xMean","keepDimsShape","devSquared","multiRNNCell","multiRNNCell_","lstmCells","newStates","newH","multinomial","multinomial_","numSamples","seed","normalized","numOutcomes","origRank","notEqual","notEqual_","onesLike","onesLike_","outerProduct","outerProduct_","v1","v2","$v1","$v2","v12D","v22D","pad_","constantValue","pad1d","pad1d_","pad2d","pad2d_","pad3d","pad3d_","pad4d","pad4d_","spaceToBatchND","spaceToBatchND_","pool","pool_","windowShape","poolingType","convInfo","basePadding","padExtraShape","padExtraStart","padExtraEnd","withSpaceToBatchBasePaddings","isDilationOne","adjustedPadding","adjustedCrops","padStart","origPadEnd","fullInputShape","padEndExtra","padEnd","requiredSpaceToBatchPaddings","convertedPad","convertedX","prelu","prelu_","prod_","rand","rand_","randFunction","MPRandGauss","stdDeviation","truncated","stdDev","nextVal","NaN","upper","lower","seedValue","seedrandom","alea","resultX","resultY","isValid","isValidTruncated","convertValue","RandGamma","randu","randn","x2","v0","u","nextValue","UniformRandom","canReturnFloat","range","randomGamma","randomGamma_","rgamma","randomNormal","randomNormal_","randGauss","randomUniform","randomUniform_","minval","maxval","step","real_","reciprocal","reciprocal_","relu","relu_","relu6","relu6_","reverse_","reverse1d","reverse1d_","reverse2d","reverse2d_","reverse3d","reverse3d_","reverse4d","reverse4d_","round_","rsqrt","rsqrt_","selu","selu_","separableConv2d","separableConv2d_","depthwiseFilter","pointwiseFilter","$depthwiseFilter","$pointwiseFilter","channelMultiplier","setdiff1dAsync","$y","xVals","yVals","ySet","sign","sign_","sin","sin_","sinh","sinh_","slice1d","slice1d_","slice2d","slice2d_","slice3d","slice3d_","slice4d","slice4d_","softmax_","fft","fft_","ifft","ifft_","irfft","irfft_","innerDimensionSize","batch","complexInput","realInput","imagInput","realConjugate","imagConjugate","split_","numOrSizeSplits","rfft","rfft_","fftLength","adjustedInput","zerosShape","zerosInput","half","realValues","imagValues","realComplexConjugate","imagComplexConjugate","squaredDifference","squaredDifference_","squeeze","squeeze_","stack_","step_","stridedSlice","stridedSlice_","tan","tan_","tensor1d","tensor2d","tensor4d","tensor5d","tensor6d","topk","topk_","sorted","lastDim","truncatedNormal","truncatedNormal_","unique","unique_","unsortedSegmentSum","unsortedSegmentSum_","segmentIds","numSegments","$segmentIds","unstack","unstack_","whereImpl","condShape","condVals","inBuffer","whereAsync","booleanMaskAsync","$tensor","$mask","axisFrom","maskDim","tensorShape","leadingSize","targetTensorShape","reshapedTensor","reshapedMask","positivePositions","normImpl","norm","norm_","ord","movingAverage","movingAverage_","zeroDebias","$v","$decay","one","oneMinusDecay","update","$step","scatterND","scatterND_","$indices","$updates","sparseToDense","sparseToDense_","sparseIndices","sparseValues","defaultValue","$sparseIndices","$sparseValues","$defaultValue","defaultValues","numElems","numDims","numValues","gatherND","gatherND_","dropout","dropout_","rate","noiseShape","$noiseShape","newDimension","getNoiseShape","keepProb","enclosingPowerOfTwo","cosineWindow","windowLength","even","newValues","cosArg","PI","inTopKAsync","targets","$targets","predictionsVals","targetsVals","precision","subarray","valAndInd","conv2DBackpropFilter","conv2DBackpropFilter_","getFusedDyActivation","activation","getFusedBiasGradient","dyActivation","reduceAxes","applyActivation","preluActivationWeights","leakyreluAlpha","shouldFuse","fusedConv2d_","$bias","$preluActivationWeights","der","biasDer","customOpWithBias","depthwiseConv2dNativeBackpropFilter","depthwiseConv2dNativeBackpropFilter_","depthwiseConv2dNativeBackpropInput","depthwiseConv2dNativeBackpropInput_","fusedDepthwiseConv2d_","xDer","filterDer","fusedMatMul_","innerShapeA","innerShapeB","outerShapeA","outerShapeB","outerDimsA","outerDimsB","batchDimA","batchDimB","a3D","b3D","aDer","bDer","hammingWindow","hammingWindow_","hannWindow","hannWindow_","frame_","signal","frameLength","frameStep","padValue","padLen","stft","stft_","windowFn","framedSignal","windowedSignal","cropAndResize","cropAndResize_","boxes","boxInd","cropSize","extrapolationValue","$image","$boxes","$boxInd","numBoxes","flipLeftRight","flipLeftRight_","rotateWithOffset","rotateWithOffset_","radians","fillValue","center","nonMaxSuppSanityCheck","scores","maxOutputSize","iouThreshold","scoreThreshold","softNmsSigma","NEGATIVE_INFINITY","nonMaxSuppression","nonMaxSuppression_","$scores","binaryInsert","element","comparator","middle","compareResult","binarySearch_","defaultComparator","binarySearch","insertionPoint","nonMaxSuppressionV3Impl","nonMaxSuppressionImpl_","nonMaxSuppressionV4Impl","padToMaxOutputSize","nonMaxSuppressionV5Impl","returnScoresTensor","returnValidOutputs","candidates","score","boxIndex","suppressBeginIndex","ascendingComparator","selectedIndices","selectedScores","candidate","originalScore","ignoreCandidate","iou","intersectionOverUnion","suppressWeight","validOutputs","elemsToPad","iCoord","jCoord","yminI","xminI","ymaxI","xmaxI","yminJ","xminJ","ymaxJ","xmaxJ","areaI","areaJ","intersectionYmin","intersectionXmin","intersectionYmax","intersectionXmax","intersectionArea","weight","c1","c2","nonMaxSuppressionWithScore","nonMaxSuppressionWithScore_","nonMaxSuppressionPadded","nonMaxSuppressionPadded_","resizeBilinear","resizeBilinear_","images","alignCorners","halfPixelCenters","$images","batchImages","resizeNearestNeighbor","resizeNearestNeighbor_","transform","transform_","transforms","interpolation","fillMode","$transforms","bandPart","bandPart_","numLower","numUpper","M","N","ij","inBand","zero","mat","gramSchmidt","gramSchmidt_","inputIsTensor2D","ys","xs1d","proj","qr2d","fullMatrices","q","one2D","w","iters","rTemp","wTemp","qTemp","rjEnd1","normX","rjj","u1","wPre","tau","rjEndAll","tauTimesW","wT","rTimesTau","tawTimesWT","qAllJEnd","qTimesTau","qr","qr_","outerDimsProd","x2ds","q2ds","r2ds","x2d","q2d","r2d","Reduction","computeWeightedLoss","computeWeightedLoss_","losses","reduction","SUM_BY_NONZERO_WEIGHTS","$losses","weightedLoss","NONE","SUM","MEAN","broadcastFactor","broadcastedWeights","numNonZeros","absoluteDifference","absoluteDifference_","cosineDistance","cosineDistance_","hingeLoss","hingeLoss_","huberLoss","huberLoss_","delta","deltaScalar","quadratic","linear","logLoss","logLoss_","epsilonScalar","l1","l2","meanSquaredError","meanSquaredError_","sigmoidCrossEntropy","sigmoidCrossEntropy_","multiClassLabels","labelSmoothing","$multiClassLabels","labelSmoothingScalar","maxOutput","outputXTarget","sigmoidOutput","sigmoidCrossEntropyWithLogits_","softmaxCrossEntropy","softmaxCrossEntropy_","onehotLabels","$onehotLabels","lse","logResult","costVector","dyShape","softmaxCrossEntropyWithLogits_","spectral","frame","nonMaxSuppressionAsync","boxesAndScores","boxesVals","scoresVals","nonMaxSuppressionWithScoreAsync","nonMaxSuppressionPaddedAsync","$maxOutputSize","$iouThreshold","$scoreThreshold","linalg","OptimizerConstructors","train","sgd","adadelta","adagrad","rmsprop","adamax","adam","delayCallback","requestAnimationFrame","setImmediate","nextFrame","assertParamsConsistent","shapes","firstShape","PARALLELIZE_THRESHOLD","computeOptimalWindowSize","inSize","getImageCenter","imageHeight","imageWidth","getReshaped","batchToSpace","reshaped","spatialLength","getPermuted","reshapedRank","blockShapeRank","permuted","permutedBeforeBatch","permutedAfterBatch","getReshapedPermuted","reshapedPermuted","getSliceBeginCoords","sliceBeginCoords","getSliceSize","uncroppedShape","SELU_SCALEALPHA","SELU_SCALE","ERF_P","ERF_A1","ERF_A2","ERF_A3","ERF_A4","ERF_A5","mergeRealAndImagArrays","splitRealAndImagArrays","complexWithEvenIndex","complexWithOddIndex","getComplexWithIndex","assignToTypedArray","exponents","inverse","exponent","prepareSplitSize","splitSizes","count","negIndex","total","segOpComputeOptimalWindowSize","collectGatherOpShapeInfo","outerSize","fromUint8ToStringArray","fromStringArrayToUint8","strings","absGradConfig","acosGradConfig","acoshGradConfig","addGradConfig","addNGradConfig","ders","argMaxGradConfig","argMinGradConfig","asinGradConfig","asinhGradConfig","atan2GradConfig","atanGradConfig","atanhGradConfig","avgPool3dGrad","avgPool3dGrad_","$input","input5D","avgPool3DGradConfig","avgPoolGrad","avgPoolGrad_","avgPoolGradConfig","batchMatMulGradConfig","batchToSpaceNDGradConfig","broadcastToGradConfig","broadCastToAttrs","castGradConfig","ceilGradConfig","clipByValueGradConfig","complexAbsGradConfig","concatGradConfig","$axis","sizeSplits","conv2DGradConfig","conv2DBackpropInputGradConfig","ddx","conv3DBackpropFilter","conv3DBackpropFilter_","conv3DGradConfig","cosGradConfig","coshGradConfig","cumsumGradConfig","permutation","depthwiseConv2dNativeGradConfig","$dilations","dilation2dGradConfig","inputInputs","filterInputs","eluGradConfig","erfGradConfig","expGradConfig","expandDimsGradConfig","expm1GradConfig","floorGradConfig","floorDivGradConfig","tmp","fusedBatchNormGradConfig","scaleValue","reductionAxes","tileShape","xMinusMean","dyTimesScaleValue","oneOverSqrtVariance","minusHalfRCube","meanDer","varianceDer","xMinusMean2TimesRsqrt","scaleDer","offsetDer","gatherGradConfig","parsedAxis","paramsShape","indicesSize","outerShape","outerDims","innerShape","innerDims","outerAxesIndices","arrayRange","innerAxesIndices","valuesShape","arrayConcat","reshapedIndices","transposeDims","valuesTranspose","paramsGrad","invertTransposeDims","arrays","greaterEqualGradConfig","identityGradConfig","isFiniteGradConfig","isInfGradConfig","isNanGradConfig","leakyReluGradConfig","log1pGradConfig","logGradConfig","logSoftmaxGradConfig","localResponseNormalizationBackprop","localResponseNormalizationBackprop_","lrnGradConfig","gradForMinAndMax","xOrig","origAxes","maxGradConfig","maxAttrs","maxGrad","maximumGradConfig","maxPool3dGrad","maxPool3dGrad_","$output","output5D","maxPool3DGradConfig","maxPoolGrad","maxPoolGrad_","padV2GradConfig","spaceToBatchNDGradConfig","splitVGradConfig","gradConfigs","reduceSize","expandedDyShape","expandedDy","minAttrs","minGrad","expFloat","logBase","scaleAlpha","greaterThanZeroDer","lessEqualZeroDer","dyTimesY","two","derX","xGrad","transposeAttrs","undoPerm","unpackAttrs","zeroClippedIndices","gathered","isPositive","numIters","zeroSlice","gatherDropNegatives","gradientConfig","_epsilon","asScalar","asType","as1D","as2D","rows","columns","as3D","as4D","depth2","as5D","depth3","padding","dilationRate","reshapeAs","newShape2D","halfFloatCenters","tensorsToBeStacked","toBool","toFloat","toInt","where","AttributeError","RuntimeError","AssertionError","pyListRepeat","newArray","refernce","singletonOrArray","toList","toSnakeCase","insecure","toCamelCase","identifier","p1","toUpperCase","_GLOBAL_CUSTOM_OBJECTS","serializeKerasObject","dict","getConfig","convertNDArrayScalarsInConfig","configItem","fields","field","deserializeKerasObject","moduleObjects","customObjects","printableModuleName","fastWeightInit","customObjectsCombined","backupCustomObjects","returnObj","reverseNumberCompare","numberCompare","isObjectEmpty","checkStringTypeUnionValue","label","checkArrayTypeAndLength","expectedType","minLength","maxLength","assertPositiveInteger","formatAsFriendlyString","mapActivationToFusedKernel","activationName","calcL2Norms","Constraint","MaxNorm","defaultMaxValue","defaultAxis","maxValue","norms","desired","UnitNorm","NonNeg","MinMaxNorm","defaultMinValue","defaultRate","minValue","CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeConstraint","constraint","deserializeConstraint","getConstraint","maxNorm","unitNorm","nonNeg","minMaxNorm","VALID_DATA_FORMAT_VALUES","VALID_INTERPOLATION_FORMAT_VALUES","VALID_PADDING_MODE_VALUES","VALID_POOL_MODE_VALUES","VALID_BIDIRECTIONAL_MERGE_MODES","nameMap","checkPaddingMode","checkPoolMode","_nameScopeStack","nameScope","getScopedTensorName","tensorName","isValidTensorName","getUniqueTensorName","scopedName","tensorNameRegex","RegExp","arrayProd","toArray1D","sliceAlongFirstAxis","sliceAlongLastAxis","sliceAlongAxis","concatenate","concatAlongFirstAxis","stddev","reshapeBias","aFirstDims","aLastDim","bShape","bLastDim","ySecondLastDim","yOtherDims","reference","biasShape","biasAdd","level","inTrainPhase","alt","training","VALID_FAN_MODE_VALUES","VALID_DISTRIBUTION_VALUES","Initializer","Zeros","Ones","Constant","RandomUniform","DEFAULT_MINVAL","DEFAULT_MAXVAL","RandomNormal","DEFAULT_MEAN","DEFAULT_STDDEV","TruncatedNormal","gain","VarianceScaling","distribution","checkDistribution","fans","fanIn","fanOut","receptiveFieldSize","computeFans","limit","GlorotUniform","GlorotNormal","HeNormal","HeUniform","LeCunNormal","LeCunUniform","Orthogonal","DEFAULT_GAIN","INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","deserializeInitializer","serializeInitializer","getInitializer","constant","identity","varianceScaling","glorotUniform","glorotNormal","heNormal","heUniform","leCunNormal","leCunUniform","orthogonal","_nextUniqueTensorId","getNextUniqueTensorId","_uidPrefixes","getUid","isArrayOfShapes","normalizeShapeList","getExactlyOneTensor","getExactlyOneShape","countParamsInWeights","LayerVariable","DEFAULT_VARIABLE_NAME_PREFIX","trainable_","assertNotDisposed","newVal","checkShapesMatch","batchGetValue","batchSetValue","variablesAndValues","variableAndValue","InputSpec","ndim","maxNDim","minNDim","SymbolicTensor","sourceLayer","callArgs","outputTensorIndex","_nextNodeID","Node","outboundLayer","inboundLayers","nodeIndices","tensorIndices","inputTensors","outputTensors","inputMasks","outputMasks","layer","outboundNodes","inboundNodes","inboundNames","_nextLayerID","Layer","_callHook","_addedWeightNames","_stateful","activityRegularizer","inputSpec","supportsMasking","_trainableWeights","_nonTrainableWeights","_losses","_updates","_built","batchInputShape","inputDType","initialWeights","_refCount","fastWeightInitDuringBuild","nodeIndex","attrName","getNodeAtIndex","lossFn","built","trainableWeights","nonTrainableWeights","stateful","inputIndex","xShapeAtAxis","specDim","kwargs","callHook","inputsList","allAreSymbolic","noneAreSymbolic","assertInputCompatibility","xElem","build","setWeights","outputList","outputListCopy","collectInputShape","computeOutputShape","outputDType","warnOnIncompatibleInputShape","addInboundNode","dimMismatch","dimension","allOutputShapes","shapeString","trainableOnly","weightValueTuples","paramValues","pv","regularizer","initValue","addLoss","maskElement","inputTensorList","tensorIndex","numDisposedVariables","disposeWeights","refCountAfterDispose","getSourceInputs","sourceTensors","previousSources","InputLayer","sparse","inputTensor","Input","resolveScalarsInLogs","logs","scalarsToDispose","valueScalar","disposeTensorsInLogs","ModelLoggingVerbosity","BaseCallback","validationData","epoch","model","CallbackList","callbacks","queueLength","callback","setParams","setModel","onEpochBegin","onEpochEnd","onBatchBegin","onBatchEnd","onTrainBegin","onTrainEnd","BaseLogger","totals","oldTotalsToDispose","History","history","valueArray","CustomCallback","yieldEvery","currentEpoch","onYield","maybeWait","waitMs","lastResult","lastTime","bind","trainBegin","trainEnd","epochBegin","epochEnd","batchBegin","batchEnd","yield","ps","standardizeCallbacks","callbackConfig","CallbackConstructorRegistry","verbosityLevel","callbackConstructor","checkForDuplicate","constructors","levelName","ctor","configureCallbacks","epochs","initialEpoch","numTrainSamples","stepsPerEpoch","doValidation","callbackMetrics","actualCallbacks","createCallbacks","callbackList","samples","steps","metrics","deserialize","l2Normalize","squareSum","epsilonTensor","yTrue","yPred","meanAbsoluteError","meanAbsolutePercentageError","clippedTrue","MAX_VALUE","absResult","categoricalCrossentropy","fromLogits","outputSum","sparseCategoricalCrossentropy","flatTarget","binaryCrossentropy","reluLogits","negAbsLogits","sigmoidCrossEntropyWithLogits","cosineProximity","trueNormalized","predNormalized","trueXPred","lossesMap","meanSquaredLogarithmicError","clippedPred","firstLog","secondLog","squaredHinge","maxResult","hinge","categoricalHinge","pos","logcosh","log2","predictionDiff","logcoshResult","kullbackLeiblerDivergence","poisson","logPred","identifierOrFn","errMsg","includes","binaryAccuracy","threshold","yPredThresholded","categoricalAccuracy","truePositives","tp","fp","falsePositives","denominator","sparseCategoricalAccuracy","metricsMap","mse","MSE","mae","MAE","mape","MAPE","cosine","getLossOrMetricName","fnName","checkUserDefinedMetadata","modelName","checkSize","plainObjectCheck","xType","printRow","positions","printFn","line","printLayerSummary","countParams","printLayerSummaryWithConnections","relevantNodes","connections","inboundLayer","inboundLayerIndex","inboundTensorIndex","firstConnection","isArrayItemInputOrOutputName","convertPythonicToTs","pythonicConfig","tsArray","arrayLength","tsDict","pythonicKey","pythonicValue","tsKey","convertTsToPythonic","tsConfig","pyArray","pyDict","tsValue","FeedDict","feeds","id2Value","id2Mask","name2Id","feed","assertFeedCompatibility","cachedSorted","cachedRecipientCounts","execute","fetches","feedDict","probe","arrayFetches","fetchArray","outputNames","finalOutputs","feedNames","outputName","getValue","maxNumTensors","minNumTensors","fetchAndFeedKey","recipientCounts","finalSorted","finalRecipientMap","getTopologicalSortAndRecipientCountsForOneFetch","recipientMap","visited","symbolicTensor","recipient","recipientMap2Counts","getTopologicalSortAndRecipientCounts","internalFeedDict","symbolic","srcLayer","inputValues","tensorsToDispose","maskExists","getMask","hasKey","outputMask","computeMask","layerOutputs","getNodeOutputs","outputSymbolicTensors","disposeMasks","marks","topIsMarked","outputTensor","getOutputAt","Container","containerNodes","inputLayers","inputLayersNodeIndices","inputLayersTensorIndices","outputLayers","outputLayersNodeIndices","outputLayersTensorIndices","layers","internalContainerRefs","inputNames","feedInputShapes","feedInputNames","feedOutputNames","internalInputShapes","internalOutputShapes","nodesDepths","nodeIDToNode","layersDepths","layerIDToLayer","layerIndices","nodesInDecreasingDepth","buildMapOfGraph","finishedNodes","nodesInProgress","nodeKey","numInboundLayers","reversedNodesInDecreasingDepth","previousDepth","inboundNode","nodesByDepth","nodeID","layersByDepth","layerID","depthKeys","parseInt","layersForDepth","aIndex","bIndex","computableTensors","layersWithCompleteInput","allNames","numOccurrences","strict","nameToWeight","totalWeightsCount","validatedName","tokens","unsetNames","theConfig","unused","returnString","updatedConfig","masks","runInternalGraph","layersToOutputShapes","nodes","outputShapeKeys","shapeKey","tensorMap","referenceInputTensors","referenceOutputTensors","computedData","computedTensors","computedMasks","computedTensor","computedMask","nodeConversionMap","keptNodes","originalNodeIndex","calculateLosses","buildNodeConversionMap","layerConfigs","layerClassName","layerConfig","filteredInboundNodes","nodeData","newNodeIndex","modelInputs","modelOutputs","createdLayers","unprocessedNodes","addUnprocessedNode","processNode","inputData","inboundLayerName","inboundNodeIndex","processLayer","layerData","layerName","setFastWeightInitDuringBuild","layersFromConfig","currentUnprocessedNodesForLayer","inputLayersFromConfig","layerOutputTensors","outputLayersFromConfig","resetStates","standardizeClassWeights","classWeight","xWeight","weightType","numOutputs","standardizeSampleOrClassWeights","standardizeWeights","sampleWeight","sampleWeightMode","yClasses","yClassIndices","classSampleWeight","classIndex","sampleWeights","standardizeDataIteratorOutput","iteratorOut","iteratorOutObj","flattenedXs","flattenTensorOrArrayOrMap","flattenedYs","xIndex","yIndex","inputOrOutput","isDatasetObject","dataset","checkBatchSize","sliceArrays","sliceArraysByIndices","makeBatches","batchStart","ensureTensorsRank2OrHigher","disposeNewTensors","refTensors","oldTensorIds","oldTensor","isDataArray","isDataDict","isDataTensor","standardizeInputData","checkBatchAxis","exceptionPrefix","gotUnexpectedData","refDim","checkInputData","LayersModel","isTraining","lineLength","sequentialLike","depthNodes","flag","isModelSequentialLike","toDisplay","checkTrainableWeightsConsistency","trainableCount","collectedTrainableWeights","countTrainableParams","nonTrainableCount","printSummary","loss","optimizer","optimizer_","optimizerMap","isOptimizerOwned","lossFunctions","theLosses","lossFunction","feedOutputShapes","feedLossFns","skipTargetIndices","metricsNames","metricsTensors","nestedMetrics","wrappedMetrics","outputMetrics","collectMetrics","appendMetric","outputIndex","metricName","metricTensor","accFn","weightedMetricFn","metric","metricFn","metricResult","handleMetrics","standardizedOuts","standardizeUserDataXY","ins","makeTestFunction","testFunction","testLoop","hasBatches","batches","dataIterator","numExamples","xsAndYs","batchOuts","batchOut","oldScalar","evaluateDataset","stepsName","outputsIsArray","retrieveSymbolicTensors","tensorValue","executeOutputs","symbolicTensorNames","outputsRemaining","layerOutputNames","remainingNames","checkNumSamples","outsBatches","batchIndex","insBatch","xsRank2OrHigher","predictLoop","setX","setY","checkArrayLengths","lossFns","keyLosses","slicedYShape","slicedShape","targetDim","checkLossAndTargetCompatibility","standardXs","standardYs","standardSampleWeights","classWeights","indexArray","batchIds","outLabels","dedupedOutLabels","newLabel","lossValues","metricsValues","totalLoss","meanLoss","weightedMetric","regularizerLoss","valOutputs","meanMetric","inputValX","inputValY","valX","valY","standardizeUserData","valIns","valStandardized","validationSplit","splitAt","originalBatchSize","validationSteps","trainFunction","makeTrainFunction","getDedupedMetricsNames","valFunction","valF","shuffle","stopTraining_","epochLogs","epochIndexArray1D","batchLogs","valOuts","syncData","fitLoop","fitTensors","hasBatchesPerEpoch","batchesPerEpoch","valXs","valYs","validationBatches","standardizeTensorValidationData","getStepsPerEpoch","stepsDone","standardClassWeights","evaluate","validationBatchSize","fitDataset","standardizeOut","namedWeights","getWeights","numTensorsBeforeOptmizerDisposal","lossNames","metricsIdentifiers","getLossIdentifiers","getMetricIdentifiers","optimizer_config","class_name","weighted_metrics","loss_weights","sample_weight_mode","lossEntry","compile","handlerOrURL","handlers","weightDataAndSpecs","getNamedWeights","toJSON","includeOptimizer","getTrainingConfig","optimizerWeightData","optimizerWeightSpecs","Functional","modelFromJSON","modelAndWeightsConfig","uniqueWeightValues","Sequential","isLayerModelInstance","modelLayer","checkShape","lastLayerIndex","summary","predict","predictOnBatch","fit","trainOnBatch","configArray","extraModelConfig","conf","stopTraining","sequential","loadLayersModel","pathOrIOHandler","options","loadTrainingConfig","setUserDefinedMetadata","modelWeights","optimizerWeights","name2Tensor","decodeModelAndOptimizerWeights","loadLayersModelFromIOHandler","loadLayersModelInternal","registerCallbackConstructor","Activation","Linear","HardSigmoid","Softsign","Swish","serializeActivation","deserializeActivation","getActivation","assertObjectArgs","Regularizer","L1L2","hasL1","hasL2","regularization","REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP","serializeRegularizer","deserializeRegularizer","getRegularizer","ReLU","baseConfig","LeakyReLU","DEFAULT_ALPHA","PReLU","DEFAULT_ALPHA_INITIALIZER","alphaInitializer","alphaRegularizer","alphaConstraint","sharedAxes","paramShape","addWeight","ELU","ThresholdedReLU","DEFAULT_THETA","theta","DEFAULT_AXIS","normalizeArray","singleValue","convOutputLength","inputLength","outputLength","deconvLength","strideSize","kernelSize","preprocessConv2DInput","preprocessConv3DInput","conv2dWithBiasActivation","BaseConv","DEFAULT_KERNEL_INITIALIZER","DEFAULT_BIAS_INITIALIZER","verifyArgs","useBias","biasInitializer","biasConstraint","biasRegularizer","Conv","filters","kernelInitializer","kernelConstraint","kernelRegularizer","channelAxis","inputDim","kernelShape","biasValue","fusedActivationName","conv1dWithBias","conv3dWithBias","newSpace","space","newDim","Conv2DTranspose","hAxis","wAxis","kernelH","kernelW","strideH","strideW","heightAxis","widthAxis","SeparableConv","DEFAULT_DEPTHWISE_INITIALIZER","DEFAULT_POINTWISE_INITIALIZER","depthwiseKernel","pointwiseKernel","depthMultiplier","depthwiseInitializer","depthwiseRegularizer","depthwiseConstraint","pointwiseInitializer","pointwiseRegularizer","pointwiseConstraint","depthwiseKernelShape","pointwiseKernelShape","SeparableConv2D","Conv1D","Cropping2D","cropping","hSliced","UpSampling2D","DEFAULT_SIZE","resized","DepthwiseConv2D","cols","outFilters","outRows","outCols","standardizeArgs","initialState","constants","numConstants","toListOrNull","rnn","stepFunction","initialStates","goBackwards","unroll","needPerStepOutputs","perStepOutputs","lastOutput","states","timeSteps","perStepInputs","perStepMasks","currentInput","stepOutputs","maskedOutputs","stepMask","negStepMask","RNN","cell","StackedRNNCells","cells","stateSize","returnSequences","returnState","stateSpec","states_","keptStates","outputDim","stateShape","stateMask","numStates","stepInputShape","standardized","additionalInputs","additionalSpecs","fullInput","fullInputSpec","originalInputSpec","getInitialState","cellCallKwargs","rnnOutputs","cellConfig","SimpleRNNCell","DEFAULT_ACTIVATION","DEFAULT_RECURRENT_INITIALIZER","units","recurrentInitializer","recurrentRegularizer","recurrentConstraint","recurrentDropout","dropoutMask","recurrentDropoutMask","recurrentKernel","prevOutput","generateDropoutMask","dpMask","recDpMask","SimpleRNN","GRUCell","DEFAULT_RECURRENT_ACTIVATION","resetAfter","recurrentActivation","implementation","hTMinus1","z","hh","matrixX","recurrentKernelValue","rk1","rk2","matrixInner","xZ","xR","xH","recurrentZ","recurrentR","recurrentH","GRU","LSTMCell","unitForgetBias","capturedBiasInit","capturedUnits","bI","bF","bCAndH","cTMinus1","z0","z1","z2","z3","LSTM","nestedStates","newNestedStates","callInputs","cellStates","tuples","numParams","inputWeights","droppedInputs","createMask","ConvRNN2D","computeSingleOutputShape","getStates","isChannelsFirst","hOut","wOut","ConvLSTM2DCell","recurrentKernelShape","applyDropout","xI","xF","xC","xO","recDropoutMask","hI","hF","hC","hO","kernelI","kernelF","kernelC","kernelO","biasI","biasF","biasC","biasO","inputConv","recKernelI","recKernelF","recKernelC","recKernelO","recurrentConv","getOwnPropertySymbols","propertyIsEnumerable","__rest","ConvLSTM2D","Dropout","invokeCallHook","SpatialDropout1D","Dense","inputLastDim","Flatten","RepeatVector","targetShape","isUnknown","errorMsg","finalShape","known","unknown","originalSize","anyUnknownDims","fixUnknownDimension","Permute","expectedSortedIndices","dimsIncludingBatch","Masking","maskValue","booleanMask","Embedding","embeddings","DEFAULT_EMBEDDINGS_INITIALIZER","embeddingsInitializer","embeddingsRegularizer","embeddingsConstraint","maskZero","inLens","s1","s2","Merge","shape1","shape2","computeElementwiseOpOutputShape","batchSizes","allRanks","reshapeRequired","reshapedInputs","inputDims","xNDim","mergeFunction","transposed","xTransposed","yNDim","yShape","Average","Concatenate","allNoneShape","shapeSet","shapeWithoutConcatAxis","exists","allNullMasks","concatenatedMasks","interpretAxis","Dot","normalize","interpretAxes","x1","axesArray","diffShape","adjX","adjY","idx","squeezeAxes","batchDot","GaussianNoise","GaussianDropout","AlphaDropout","_getNoiseShape","alphaP","keptIdx","batchNormalization","gamma","BatchNormalization","betaInitializer","gammaInitializer","movingMeanInitializer","movingVarianceInitializer","betaConstraint","gammaConstraint","betaRegularizer","gammaRegularizer","movingMean","movingVariance","sortedReductionAxes","needsBroadcasting","broadcastMovingMean","broadcastMovingVariance","broadcastBeta","broadcastGamma","normalizeInference","normedTraining","meanAndVariance","regularNormalizeBatchInTraining","broadcastMean","broadcastVariance","broadcastNormalizeBatchInTraining","normalizeBatchInTraining","doMovingAverage","origValue","updateDelta","updateMovingMeanAndVariance","LayerNormalization","nDims","broadcast","momentsTiling","scaleOffsetTiling","ZeroPadding2D","heightPadding","widthPadding","spatial2dPadding","pattern","pool2d","poolSize","poolMode","paddingString","pool3d","Pooling1D","poolingFunction","MaxPooling1D","AveragePooling1D","Pooling2D","MaxPooling2D","AveragePooling2D","Pooling3D","depths","MaxPooling3D","AveragePooling3D","GlobalPooling1D","GlobalAveragePooling1D","GlobalMaxPooling1D","GlobalPooling2D","GlobalAveragePooling2D","GlobalMaxPooling2D","Wrapper","newConfig","TimeDistributed","childInputShape","childOutputShape","timesteps","Bidirectional","forwDict","forwardLayer","backDict","backwardLayer","mergeMode","_trainable","numWeights","numeightsOver2","layerShapes","stateSpecs","isSymbolicTensor","yRev","forwardState","backwardState","rnnLayer","inputLayer","reLU","leakyReLU","thresholdedReLU","cropping2D","upSampling2d","dense","spatialDropout1d","repeatVector","permute","embedding","layerNormalization","zeroPadding2d","averagePooling1d","avgPool1d","avgPooling1d","averagePooling2d","avgPool2d","avgPooling2d","averagePooling3d","avgPooling3d","globalAveragePooling1d","globalAveragePooling2d","globalMaxPooling1d","globalMaxPooling2d","maxPooling1d","maxPooling2d","maxPooling3d","gru","gruCell","lstm","lstmCell","simpleRNN","simpleRNNCell","convLstm2d","convLstm2dCell","stackedRNNCells","bidirectional","timeDistributed","globalMaxPool1d","globalMaxPool2d","maxPool1d","maxPool2d","gaussianNoise","gaussianDropout","alphaDropout","masking","falseNegatives","l1l2","Callback","currVal","prevVal","EarlyStopping","restoreBestWeights","monitor","minDelta","patience","baseline","monitorFunc","wait","stoppedEpoch","best","current","getMonitorValue","monitorValue","earlyStopping","DataType","SaverDef","CheckpointFormatVersion","CUSTOM_OPS","registerOp","opFunc","opMapper","tfOpName","category","customExecutor","getRegisteredOp","deregisterOp","getParamValue","paramName","context","resourceManager","inputParam","inputParams","inputIndexStart","inputIndexEnd","getTensor","attrParam","attrParams","tensorsMap","nodeName","parseNodeName","getHashTableHandleByName","contextId","currentContextIds","find","getNodeNameWithContextId","getNodeNameAndIndex","currentContextId","parts","getPadding","explicitPadding","cloneTensor","OperationMapper","_instance","mappersJson","opMappers","mapper","graph","tfNodes","placeholders","initNodes","mapNode","inputNodeNameToKey","outputNodeNameToKey","mapSignatureEntries","allNodes","children","signatureKey","functions","library","function","func","mapFunction","newNode","rawAttrs","getStringParam","tfName","tfDeprecatedName","getStringArrayParam","getNumberParam","getNumericArrayParam","getBoolParam","getBoolArrayParam","getTensorShapeParam","getTensorShapeArrayParam","getDtypeParam","getDtypeArrayParam","getFuncParam","functionDef","nodeDef","inputArg","parseDtypeParam","returnNodeMap","outputArg","defaultOutput","mapArgsToSignature","methodName","mapArgToTensorInfo","parseStringParam","keepCase","decodeBase64","def","parseTensorShapeParam","unknownRank","NodeValueImpl","getInput","getAttr","assertShapesMatchAllowUndefinedSize","dim0","dim1","fullDefinedShape","elementShape","inferElementShape","listElementShape","partialShape","mergeElementShape","notfullDefinedShape","elementShapeA","elementShapeB","TensorArray","maxSize","identicalElementShapes","dynamicSize","clearAfterRead","closed_","idTensor","keepIds","tensorWithState","cleared","written","readMany","maxIndex","writeMany","totalLength","cumulativeLengths","elementPerRow","sizes","TensorList","elementDtype","maxNumElements","numElements","outputElementShape","reshapedTensors","elementIndex","fusedConvAndDepthWiseParams","extraOp","activationFunc","isBiasAdd","isPrelu","isBatchNorm","numArgs","biasArg","preluArg","nmsParams","HashTable","keyDType","valueDType","handle","clear","checkKeyAndValueTensor","$keys","$values","keysLength","valuesLength","findWithDefault","thenFunc","elseFunc","cond","functionMap","executeFunctionAsync","tensorArrayMap","tensorListMap","bodyFunc","condFunc","condResult","argIds","condValue","origResult","resultIds","pred","frameId","enterFrame","exitFrame","nextIteration","tensorArray","addTensorArray","writeTensor","writeTensorArray","getTensorArray","readId","readIndex","gatherId","gatherIndices","gatherDtype","scatterId","scatterIndices","scatterTensor","scatterTensorArray","scatter","concatId","concatTensorArray","concatDtype","splitId","splitTensor","lengths","splitTensorArray","sizeId","closeId","closeTensorArray","clearAndClose","getTensorList","elementDType","addTensorList","numElementsParam","reserve","fromTensor","pushBack","popBack","summarize","squeezedShape","mapped","sameShape","hashTable","addHashTable","getHashTableById","import","tensorSize","ExecutionContext","weightMap","rootContext","frameName","iterationId","contexts","lastId","generateCurrentContextIds","_currentContextIds","contextIdforContexts","newFrame","shift","getExecutionSubgraph","usedNodes","missingInputs","dynamicNode","syncInputs","inputNodeNames","initNodeNames","frontier","isControlFlow","isDynamicShape","isHashTable","child","CONTROL_FLOW_OPS","DYNAMIC_SHAPE_OPS","HASH_TABLE_OPS","GraphExecutor","parent","compiledMap","_weightMap","SEPERATOR","_functions","_functionExecutorMap","_outputs","_inputs","_initNodes","_signature","weightIds","_weightIds","functionExecutorMap","_resourceManager","sortedInputs","sortedOutputs","executionInfo","outNames","inNames","inputNodes","orderedNodes","getNodesInTopologicalOrder","mapInputs","checkInputs","checkInputShapeAndType","mapOutputs","checkOutputs","outputNodeNames","outputNodes","compilationKey","getCompilationKey","tensorsToKeep","getFrozenTensorIds","intermediateTensorConsumerCount","checkTensorForDisposal","ids","getTensorsForCurrentContenxt","_executeAsync","isFunctionExecution","executeWithControlFlow","outputIds","inputIds","mappedInputs","currentContext","added","processStack","missingOutputs","alternativeMsg","processChildNodes","childNode","notInGraph","normalizedName","ResourceManager","hashTableNameToHandle","hashTableMap","GraphModel","modelUrl","executor","findIOHandler","loadSync","producer","minConsumer","Instance","transformGraph","convertTensorMapToTensorsMap","executeAsync","normalizeInputs","normalizeOutputs","newMap","loadGraphModel","fromTFHub","deepMapInternal","mapFn","containedIn","recurse","mappedIterable","childResult","deepZip","zipFn","zipToList","deepZipInternal","deepMapAndAwaitAll","mappedValue","isView","cloneIfTensor","RingBuffer","capacity","RangeError","doubledCapacity","isFull","wrap","isEmpty","relativeIndex","GrowingRingBuffer","INITIAL_CAPACITY","expand","newCapacity","newData","iteratorFromItems","ArrayIterator","iteratorFromFunction","FunctionCallIterator","LazyIterator","stream","prefetch","shouldContinue","ErrorHandlingLazyIterator","FilterIterator","MapIterator","AsyncMapIterator","serial","FlatmapIterator","resolveFully","serialMapAsync","resolveWhile","smallLastBatch","RowMajorBatchIterator","rowMajorBatch","baseErrorHandler","ChainedIterator","TakeIterator","SkipIterator","bufferSize","PrefetchIterator","windowSize","ShuffleIterator","SerialIterator","trav","deepMap","nextFn","upstream","lastRead","serialNext","maxCount","skipped","enableSmallLastBatch","OneToManyIterator","outputQueue","pump","mappedArray","pushAll","iterators","moreIterators","readFromChain","iteratorResult","handleErrors","itemResult","ZipMismatchMode","ZipIterator","mismatchMode","FAIL","currentPromise","afterState","numIterators","iteratorsDone","SHORTEST","LONGEST","nextState","refill","upstreamExhausted","randomInt","chosenIndex","chooseIndex","shuffleExcise","Dataset","datasetFromIteratorFn","columnMajorBatch","deepBatchConcat","forEachAsync","mapAsync","baseIterators","take","skip","reshuffleEachIteration","seed2","int32","toArray","toArrayForTest","iteratorFn","zip","datasets","ds","iteratorFromZipped","batchConcat","MAX_BUFFER_SIZE","TextLineDataset","decodeUTF8","CODE_QUOTE","STATE_OUT","STATE_FIELD","STATE_QUOTE","STATE_QUOTE_AFTER_QUOTE","STATE_WITHIN_QUOTE_IN_QUOTE","CSVDataset","csvConfig","hasHeader","fullColumnNames","columnNamesValidated","columnConfigs","configuredColumnsOnly","delimiter","delimWhitespace","columnNames","setColumnNames","columnNamesFromFile","maybeReadHeaderLine","counts","countAcc","duplicateNames","firstElement","firstLine","parseRow","makeDataElement","features","parsedValue","default","required","isLabel","valueAsNum","getBoolean","validateElementCount","readOffset","readLength","currentState","charAt","MicrophoneIterator","microphoneConfig","isClosed","fftSize","fftSizeLog2","numFrames","numFramesPerSpectrogram","sampleRateHz","columnTruncateLength","audioTrackConstraints","smoothingTimeConstant","includeSpectrogram","includeWaveform","microphoneIterator","mediaDevices","getUserMedia","audio","video","ctxConstructor","AudioContext","webkitAudioContext","audioContext","sampleRate","streamSource","createMediaStreamSource","analyser","createAnalyser","connect","freqData","timeData","spectrogramTensor","waveformTensor","audioDataQueue","getAudioData","flattenQueue","freqDataQueue","getTensorFromAudioDataArray","timeDataQueue","currentFrames","intervalID","setInterval","getFloatFrequencyData","getFloatTimeDomainData","clearInterval","disconnect","getTracks","queue","frameSize","WebcamIterator","webcamVideoElement","webcamConfig","resize","needToResize","resizeHeight","resizeWidth","cropBoxInd","centerCrop","widthCroppingRatio","heightCroppingRatio","widthCropStart","heightCropStart","widthCropEnd","heightCropEnd","cropBox","webcamIterator","facingMode","deviceId","srcObject","src","play","onloadedmetadata","cropAndResizeFrame","expandedImage","resizedImage","DataSource","StringIterator","separator","SplitIterator","impl","SplitIteratorImpl","carryover","chunkResult","ByteChunkIterator","Utf8Iterator","Utf8IteratorImpl","decoder","StringDecoder","chunk","FileChunkIterator","File","chunkSize","fileReader","onabort","isLocalPath","source","FileDataSource","fs","readFileSync","URLDataSource","fileOptions","urlString","request","headers","credentials","cache","redirect","referrer","integrity","uint8Array","statusText","urlChunkIterator","csv","generator","webcam","microphone","assertNotComplex","MathBackendCPU","firstUse","nextDataId","outId","encodedValues","complexTensorInfos","decodedData","unaryKernelFunc","cpuBackend","xSize","$dtype","makeTensorInfo","unaryKernelFuncFromImpl","unaryImpl","xi","eluConfig","identityConfig","outVals","leakyReluConfig","createSimpleBinaryKernelImpl","aVals","bVals","resultRank","resultStrides","aRank","bRank","aStrides","bStrides","aBroadcastDims","bBroadcastDims","aLoc","bLoc","preluImpl","xValue","aValue","resultData","preluConfig","reluConfig","relu6Config","realVals","imagVals","complexInfo","complexConfig","realVal","realConfig","zerosTensorInfo","floatX","disposeIntermediateTensorInfo","realPart","resultValues","castConfig","binaryKernelFunc","simpleImpl","complexImpl","$aComplex","$aComplexVals","aReal","aImag","aRealVals","aImagVals","$bComplex","$bComplexVals","bReal","bImag","bRealVals","bImagVals","resultRealData","resultImagData","resultReal","resultImag","createComplexBinaryKernelImpl","resultSize","resultRealVals","resultImagVals","aIdx","bIdx","opResult","addImpl","addComplexImpl","addConfig","$shape","$xSize","xData","reshapeConfig","batchMatMul","b3dShape","a3d","b3d","sharedDim","leftDim","rightDim","a3dValues","b3dValues","a3dStrides","b3dStrides","aBatch","aOuterStep","aInnerStep","bInnerStep","bOuterStep","bBatch","resVals","bi","i0","j0","k0","iBlock","jBlock","kBlock","batchOffsetA","batchOffsetB","batchMatMulConfig","_fusedMatMulConfig","addRes","activationRes","intermediates","simpleAbsImpl","absConfig","makeOutput","acosConfig","acoshConfig","addNConfig","outBuf","currVals","transposeImpl","xStrides","newLoc","transposeConfig","allConfig","permutedAxes","reduceShape","reshapedResult","anyConfig","anyVal","argMaxConfig","intermediateTensorInfos","argMinConfig","minIndex","asinConfig","asinhConfig","atanConfig","atan2Impl","bValue","atan2Config","atanhConfig","xValues","poolType","padTop","padLeft","POSITIVE_INFINITY","outputVals","outputBatchStrides","outputRowStrides","outputColStrides","outputBatchOffset","inputBatchOffset","yR","xRCorner","xRMin","xRMax","outputRowOffset","yC","xCCorner","xCMin","xCMax","minMaxValue","avgValue","xROffset","pixel","maxPoolPositions","flattenPositions","maxPositions","xBuf","maxPosition","wR","wC","padFront","outputDepthStrides","yDepth","xDepthCorner","xDepthMin","xDepthMax","outputDepthOffset","yRow","xRowCorner","xRowMin","xRowMax","yCol","xColCorner","xColMin","xColMax","outputColOffset","xDepth","xDepthOffset","xRow","xRowOffset","xCol","avgPoolConfig","avgPool3DConfig","avgMultiplier","dyBuf","bufferSync","dxDepth","dxRow","dxCol","dyDepthCorner","dyRowCorner","dyColCorner","dotProd","wDepth","dyDepth","wRow","dyRow","wCol","dyCol","dyData","dxR","dxC","dyRCorner","dyCCorner","dyR","dyC","batchNormConfig","mVals","varVals","sVals","offVals","offValsLength","sValsLength","varValsLength","mValsLength","offi","mi","si","vi","sliceImpl","isContinous","inBuf","outLoc","inLoc","$size","sliceConfig","batchToSpaceNDConfig","xReshaped","xTransposedReshaped","bincountImpl","weightsVals","weightsDtype","weightsShape","weightsSize","bincountReduceImpl","weightsBuf","bincountConfig","createSimpleUnaryImpl","ceilImpl","ceilConfig","clip","clipAttrs","clipConfig","complexAbsConfig","complexVals","hypot","concatImpl","simplyConcat","colOffset","tIdx","resIdx","col","imagVal","imagConfig","$inputs","reals","imags","realConcated","imagConcated","inputs2D","innerSize","inputsValShapes","finalOutShape","concatConfig","conv2D","isChannelsLast","filterStrides","xBatchStride","xRowStride","xColStride","xChannelStride","yBatchStride","yRowStride","yColStride","yChannelStride","wVals","xOffset1","yOffset1","yOffset2","wOffset1","xOffset2","yOffset3","xOffset3","wOffset3","d1","xVal","d2","conv2DConfig","conv2DBackpropFilterConfig","dW","leftPad","topPad","dyVals","yRMin","yRMax","yCMin","yCMax","conv2DBackpropInputConfig","dyStrides","dxValues","dyValues","fltValues","fltS0","fltS1","fltS2","dyOffset","fltOffset","conv3DConfig","yF","xFCorner","wF","wOffset2","yOffset4","xOffset4","wOffset4","conv3DBackpropFilterV2Config","dw","dwValues","dwS0","dwS1","dwS2","dwS3","dyS0","dyS1","dyS2","dyS3","xS0","xS1","xS2","xS3","frontPad","yFMin","yFMax","conv3DBackpropInputV2Config","dxS0","dxS1","dxS2","dxS3","fltS3","xFMin","cosConfig","coshConfig","cropAndResizeConfig","cropHeight","cropWidth","boxVals","boxIndVals","imageVals","inStride","outStride","startInd","y1","y2","bInd","heightScale","widthScale","yInd","ind","topInd","bottomInd","yLerp","xInd","leftInd","rightInd","xLerp","topLeft","topRight","bottomLeft","closestX","closestY","inInd","outInd","cumsumConfig","permutedAxis","resultDtype","finalDim","indexAdjuster","prevIdx","reverseTransposedResult","denseBincountConfig","depthToSpaceConfig","outputHeight","outputWidth","outputDepth","outputIdx","inH","offsetH","inW","offsetD","inputIdx","depthwiseConv2dNative","chMul","depthwiseConv2dNativeConfig","depthwiseConv2dNativeBackpropFilterConfig","dm","depthwiseConv2dNativeBackpropInputConfig","diagConfig","dilation2dConfig","filterVals","filterRank","outSize","outRank","hBeg","wBeg","curVal","hIn","wIn","filterIndex","dilation2dBackpropFilterConfig","hMax","wMax","dilation2dBackpropInputConfig","hInMax","wInMax","equalImpl","equalConfig","a1","a2","a3","a4","a5","erfConfig","expImpl","expConfig","$dim","expandDimsConfig","expm1Impl","expm1Config","multiplyImpl","multiplyComplexImpl","multiplyConfig","realDivImpl","realDivConfig","subImpl","subComplexImpl","subConfig","fftBatch","innerDim","inputVals","real2D","imag2D","fftImpl","$realInfo","$imagInfo","inputSize","fftRadix2","realInfo","imagInfo","sizeInfo","sizeInfoCopy","divRealInfo","divImagInfo","divRealVals","divImagVals","term","fourierTransformByMatmul","evenComplex","evenRealVals","evenImagVals","evenShape","evenRealInfo","evenImagInfo","evenTensorInfo","oddComplex","oddRealVals","oddImagVals","oddShape","oddRealInfo","oddImagInfo","oddTensorInfo","$evenComplex","$evenRealVals","$evenImagVals","$evenShape","$evenRealInfo","$evenImagInfo","$evenTensorInfo","$oddComplex","$oddRealVals","$oddImagVals","$oddShape","$oddRealInfo","$oddImagInfo","$oddTensorInfo","eShape","eRealInfo","eImagInfo","exponentInfo","addPart","subPart","addPartReal","subPartReal","addPartImag","subPartImag","$realVals","$imagVals","fftConfig","input2D","resultReshaped","fillValues","fillConfig","flipLeftRightConfig","batchIdx","batchOffset","rowOffset","coordX","outputValue","floorImpl","floorConfig","floorDivImpl","floorDivConfig","fusedConv2DConfig","resultOld","fusedDepthwiseConv2DConfig","oldResult","gatherNdConfig","paramsSize","numSlices","indicesData","paramsData","flattenIndex","gatherV2Impl","indicesBuf","flattenOutputShape","originalLoc","indicesIdx","indicesIndex","originalIndex","gatherV2Config","$batchDims","shapeInfo","flattenX","greaterImpl","greaterConfig","greaterEqualImpl","greaterEqualConfig","ifftConfig","isFiniteConfig","isInfConfig","isNaNConfig","lessImpl","lessConfig","lessEqualImpl","lessEqualConfig","linSpaceImpl","linSpaceConfig","logImpl","logConfig","log1pConfig","logicalAndImpl","logicalAndConfig","logicalNotConfig","logicalOrImpl","logicalOrConfig","lRNConfig","channels","maxD","sumAcrossChannels","currentChannel","beginSumOffset","endSumOffset","lRNGradConfig","dySize","yValues","depthBegin","depthEnd","dyi","maxImpl","maxOutShape","maxConfig","maximumImpl","maximumConfig","maxPoolConfig","maxPool3DConfig","maxPosBuf","maxPool3dPositions","maxPoolWithArgmaxConfig","pooled","maxPools","maxPoolWithArgmaxImpl","pooledDataId","indexesDataId","permutedX","sumConfig","meanConfig","toDispose","reduceSizeScalar","minConfig","minimumImpl","minimumConfig","mirrorPadConfig","coords","inIndex","modImpl","rem","modConfig","logitsRank","maxLogit","expandedShape","maxLogitReshaped","sumExp","sumReshaped","softmaxConfig","multinomialConfig","probabilities","numEvents","probVals","resShape","cdf","outOffset","sampleId","negImpl","xDtype","minusOne","negConfig","nonMaxSuppressionV3Config","nonMaxSuppressionV4Config","nonMaxSuppressionV5Config","maxOutputSizeVal","iouThresholdVal","scoreThresholdVal","softNmsSigmaVal","notEqualImpl","notEqualConfig","oneHotConfig","indicesVal","imagPart","zerosLikeConfig","onesLikeConfig","pack","expandedT","packConfig","padV2Config","powImpl","powConfig","prodImpl","outDtype","prodConfig","rangeImpl","rangeConfig","reciprocalConfig","resizeBilinearConfig","imagesStrides","newHeight","newWidth","oldHeight","oldWidth","effectiveInputSize","effectiveOutputSize","effectiveRowSizeRatio","effectiveColSizeRatio","sourceFracRow","sourceRowFloor","rowFrac","sourceRowCeil","topRowOffset","botRowOffset","sourceFracCol","sourceColFloor","colFrac","sourceColCeil","topLeftOffest","botLeftOffset","topRightOffset","botRightOffest","xHeight","xWidth","yHeight","yWidth","effectiveXSize","effectiveYSize","bOffset","topDxRIndex","bottomDxRIndex","topDxROffset","bottomDxROffset","dxRLerp","inverseDxRLerp","leftDxCIndex","rightDxCIndex","dxCLerp","inverseDxCLerp","topLeftRCOffset","topRightRCOffset","bottomLeftRCOffset","bottomRightRCOffset","inverseDxRLerpTimesInverseDxCLerp","inverseDxRLerpTimesDxCLerp","dxRLerpTimesInverseDxCLerp","dxRLerpTimesDxCLerp","dyVal","resizeNearestNeighborConfig","outputOffset","sourceNearestRow","sourceNearestCol","invHeightScale","invWidthScale","winHeight","winWidth","startRLerp","startDyR","startCLerp","startDyC","accum","dyRIndex","dyROffset","dyCIndex","dyCOffset","reverseConfig","$dims","rotateWithOffsetConfig","centerX","centerY","sinFactor","cosFactor","coordY","roundConfig","rsqrtImpl","rsqrtConfig","scatterImpl","sumDupeIndices","flattenShape","updatesData","scatterNdConfig","selectConfig","conditionRank","tValues","eValues","seluConfig","sigmoidConfig","signConfig","sinConfig","sinhConfig","tooLarge","tooSmall","expX","softplusConfig","spaceToBatchNDConfig","completePaddings","paddedX","reshapedPaddedShape","permutedReshapedPaddedPermutation","paddedXReshaped","paddedXT","sparseToDenseConfig","splitVConfig","sliceT","sqrtConfig","squareConfig","squaredDifferenceImpl","squaredDifferenceConfig","stepAttrs","stepConfig","stridedSliceImpl","stridedSliceConfig","sliced","tanConfig","tileImpl","topKImpl","allTopKVals","allTopKIndices","topKVals","topKIndices","mapCoord","outCoord","inCoord","sz2","mapCoordReflect","sz","mapCoordWrap","mapCoordNearest","mapCoordConstant","readWithFillValue","batchStride","rowStride","colStride","nearestInterpolation","bilinearInterpolation","yFloor","xFloor","yCeil","xCeil","uniqueImpl","uniqueElements","inputBuffer","uniqueIndices","is1DTensor","axisValues","uniqueIndex","outputTmpShape","outputBuffer","uniqueElementIndex","outputValues","kernelConfigs","transformVals","outY","outX","projection","inX","inY","valueRank","outIndex","tempRes","expanded","scalarValue","segmentId","maskCasted","sumTensorInfo","WEBGL_ATTRIBUTES","antialias","premultipliedAlpha","preserveDrawingBuffer","stencil","failIfMajorPerformanceCaveat","getWebGLContext","webGLVersion","newCtx","OffscreenCanvas","createCanvas","addEventListener","ev","preventDefault","getWebGLRenderingContext","gl","isContextLost","disable","DEPTH_TEST","STENCIL_TEST","BLEND","DITHER","POLYGON_OFFSET_FILL","SAMPLE_COVERAGE","enable","SCISSOR_TEST","CULL_FACE","cullFace","BACK","PackingScheme","TextureUsage","PhysicalTextureType","getUnpackedMatrixTextureShapeWidthHeight","getDenseTexShape","getPackedMatrixTextureShapeWidthHeight","getTextureConfig","textureHalfFloatExtension","glany","internalFormatFloat","internalFormatHalfFloat","internalFormatPackedHalfFloat","internalFormatPackedFloat","textureFormatFloat","downloadTextureFormat","downloadUnpackNumChannels","defaultNumChannels","textureTypeHalfFloat","textureTypeFloat","getNumber","R32F","R16F","RGBA16F","RGBA32F","RED","HALF_FLOAT","FLOAT","RGBA","HALF_FLOAT_OES","callAndCheck","returnValue","getError","NO_ERROR","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","INVALID_FRAMEBUFFER_OPERATION","OUT_OF_MEMORY","CONTEXT_LOST_WEBGL","getWebGLErrorMessage","checkWebGLError","canBeRepresented","getExtensionOrThrow","extensionName","throwIfNull","getExtension","lineNumberRegex","validateProgram","program","getProgramParameter","VALIDATE_STATUS","getProgramInfoLog","bindVertexBufferToProgramAttribute","attribute","arrayEntriesPerItem","itemStrideInBytes","itemOffsetInBytes","getAttribLocation","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","enableVertexAttribArray","bindTextureToProgramUniformSampler","texture","uniformSamplerLocation","textureUnit","maxTextureUnit","MAX_COMBINED_TEXTURE_IMAGE_UNITS","glTextureUnit","TEXTURE0","validateTextureUnit","activeTexture","bindTexture","TEXTURE_2D","bindTextureUnit","uniform1i","bindColorTextureToFramebuffer","framebuffer","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","COLOR_ATTACHMENT0","unbindColorTextureFromFramebuffer","validateFramebuffer","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","getFramebufferErrorMessage","returnTOrNull","failureMessage","tOrNull","getBatchDim","dimsToSkip","getRowsCols","getShapeAs3D","shapeAs3D","isEven","isReshapeFree","shape1Cols","shape2Cols","MAX_TEXTURE_SIZE","MAX_TEXTURES_IN_SHADER","hasExtension","isWebGLVersionEnabled","createFloatTextureAndBindToFramebuffer","texConfig","createTexture","texImage2D","frameBuffer","createFramebuffer","isFrameBufferComplete","deleteTexture","deleteFramebuffer","getGlslDifferences","varyingVs","varyingFs","texture2D","defineOutput","defineSpecialNaN","defineSpecialInf","defineRound","getLogicalCoordinatesFromFlatIndex","getFlatIndexFrom3D","getParameter","getWebGLMaxTextureSize","MAX_TEXTURE_IMAGE_UNITS","getMaxTexturesInShader","queryTimerVersion","getWebGLDisjointQueryTimerVersion","isCapableOfRenderingToFloatTexture","COLOR_BUFFER_HALF_FLOAT","createHalfFloatTextureAndBindToFramebuffer","isDownloadFloatTextureEnabled","isWebGLFenceEnabled","fenceSync","ENCODE_FLOAT_SNIPPET","DecodeMatrixProgram","packedInputs","packedOutput","outPackingScheme","DENSE","texShape","glsl","userCode","DecodeMatrixPackedProgram","EncodeFloatProgram","outTexUsage","DOWNLOAD","EncodeFloatPackedProgram","EncodeMatrixProgram","inputIsUnsignedByte","EncodeMatrixPackedProgram","mainLoop","createAndConfigureTexture","internalFormat","textureFormat","textureType","maxTextureSize","tex2d","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","getInternalFormatForFloat32MatrixTexture","textureConfig","getInternalFormatForFloat16MatrixTexture","getInternalFormatForUnsignedBytesMatrixTexture","getInternalFormatForPackedMatrixTexture","getInternalFormatForFloat16PackedMatrixTexture","GPGPUContext","outputTexture","disposed","vertexAttrsAreBound","itemsToPoll","glVersion","setWebGLContext","COLOR_BUFFER_FLOAT","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","textureFloatExtension","colorBufferFloatExtension","colorBufferHalfFloatExtension","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","indexBuffer","ELEMENT_ARRAY_BUFFER","finish","deleteBuffer","UNSIGNED_BYTE","dataForUpload","texelDataType","downloadMatrixDriver","downloadTarget","readPixels","physicalRows","physicalCols","gl2","PIXEL_PACK_BUFFER","getBufferSubData","bindTextureToFrameBuffer","bufferSizeBytes","bytesPerFloat","STREAM_READ","unbindTextureToFrameBuffer","fenceContext","createFence","pollFence","isFencePassed","sync","SYNC_GPU_COMMANDS_COMPLETE","flush","clientWaitSync","ALREADY_SIGNALED","CONDITION_SATISFIED","beginQuery","endQuery","isQueryAvailable","packedRGBA","fragmentShaderSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","shaderInfoLog","lineNumberRegexResult","exec","lineNumber","shaderLines","linesWithLineNumbers","maxLineLength","beforeErrorLines","errorLine","afterErrorLines","logShaderSourceAndInfoLog","getShaderInfoLog","vertexShader","vertexShaderSource","VERTEX_SHADER","createProgram","attachShader","linkProgram","LINK_STATUS","debug","setProgram","deleteProgram","useProgram","uniformName","shouldThrow","getUniformLocation","inputMatrixTexture","uniformLocation","throwIfNoProgram","outputMatrixTexture","setOutputMatrixTextureDriver","outputPackedMatrixTexture","startRow","startColumn","setOutputMatrixWriteRegionDriver","debugValidate","drawElements","TRIANGLES","UNSIGNED_SHORT","disjointQueryTimerExtension","getQueryTimerExtension","ext","getQueryTimerExtensionWebGL2","createQuery","TIME_ELAPSED_EXT","getQueryTimerExtensionWebGL1","createQueryEXT","beginQueryEXT","endQueryEXT","getQueryTime","getQueryParameter","QUERY_RESULT","getQueryObjectEXT","QUERY_RESULT_EXT","available","QUERY_RESULT_AVAILABLE","disjoint","GPU_DISJOINT_EXT","QUERY_RESULT_AVAILABLE_EXT","addItemToPoll","linearSearchLastTrue","isDoneFn","resolveFn","pollItems","downloadAndDecode","outputMatrixTextureMaybePacked","viewport","scissor","makeShader","inputsInfo","usesPackedTextures","prefixSnippets","logicalShape","isUniform","inputPrefixSnippet","inputSamplingSnippet","inInfo","outShapeInfo","getPackedSamplerFromInInfo","getSamplerFromInInfo","inputInfo","texName","texFuncSnippet","funcName","broadcastDims","getCoordsDataType","rankDiff","coordsSnippet","unpackedCoordsSnippet","isInputScalar","isOutputScalar","getPackedSamplerAtOutputCoords","outTexShape","inTexShape","getSamplerAtOutputCoords","getInputSamplingSnippet","floatTextureSampleSnippet","getFloatTextureSampleSnippet","outputSamplingSnippet","floatTextureSetOutputSnippet","shaderPrefix","SAMPLE_1D_SNIPPET","SAMPLE_2D_SNIPPET","SAMPLE_3D_SNIPPET","getShaderPrefix","isPacked","packedTexShape","getOutputPacked1DCoords","texelsInLogicalRow","getOutputPacked2DCoords","texelsInBatch","getOutputPacked3DCoords","texelsInBatchN","getOutputPackedNDCoords","getPackedOutputSamplingSnippet","getFloatTextureSetRGBASnippet","getOutput2DCoords","coordsFromIndexSnippet","getOutput3DCoords","getOutput4DCoords","getOutput5DCoords","getOutput6DCoords","getOutputSamplingSnippet","getFloatTextureSetRSnippet","SHADER_PACKED_PREFIX","texNumR","texNumC","tNumR","tNumC","getFlatOffsetUniformName","getSamplerScalar","getUniformSampler","getSampler1D","squeezeInputInfo","getSqueezedParams","getSampler2D","stride0","stride1","getSampler3D","stride2","getSampler4D","stride3","getSampler5D","stride4","getSampler6D","getPackedSamplerScalar","getPackedSampler1D","getPackedSampler2D","valuesPerRow","getPackedSampler3D","getPackedSamplerND","newInputInfo","validateBinaryAndProgram","shapeInfos","texShapeA","texShapeB","texData","addImplCPU","bincountImplCPU","bincountReduceImplCPU","ceilImplCPU","concatImplCPU","expImplCPU","expm1ImplCPU","floorImplCPU","gatherV2ImplCPU","greaterImplCPU","lessImplCPU","linSpaceImplCPU","logImplCPU","maxImplCPU","maximumImplCPU","minimumImplCPU","multiplyImplCPU","negImplCPU","prodImplCPU","rangeImplCPU","rsqrtImplCPU","simpleAbsImplCPU","sliceImplCPU","stridedSliceImplCPU","subImplCPU","tileImplCPU","topKImplCPU","transposeImplCPU","uniqueImplCPU","getVecChannels","getChannels","PackProgram","outOfBoundsCondition","getOutOfBoundsCondition","setup","getSetup","sourceCoords","coord","getSourceCoordsArr","getOutput","ReshapePackedProgram","thisRC","TextureManager","gpgpu","numUsedTextures","numFreeTextures","_numBytesAllocated","_numBytesFree","freeTextures","logEnabled","usedTextures","shapeRC","usage","physicalTexType","getPhysicalFromLogicalTextureType","getKeyFromTextureShape","texBytes","computeBytes","newTexture","PACKED_2X2_FLOAT32","createPackedMatrixTexture","PACKED_2X2_FLOAT16","createFloat16PackedMatrixTexture","UNPACKED_FLOAT32","createFloat32MatrixTexture","UNPACKED_FLOAT16","createFloat16MatrixTexture","PACKED_4X1_UNSIGNED_BYTE","createUnsignedBytesMatrixTexture","logicalTexType","deleteTexThreshold","deleteMatrixTexture","texList","texIndex","freeRatio","tex","internalFormatForPhysicalTexType","packedWidth","packedHeight","numBytesForInternalFormat","UPLOAD","RENDER","getPhysicalTextureForRendering","PIXELS","shapeRowsCol","UnaryOpProgram","opSnippet","ABS","CLONE","UnaryOpPackedProgram","UnpackProgram","getSourceCoords","binaryCaches","MathBackendWebGL","pendingRead","pendingDisposal","WeakSet","dataRefCount","numBytesInGPU","uploadWaitMs","downloadWaitMs","lastGlFlushTime","warnedAboutMemory","warnedAboutCPUBackend","pendingDeletes","binaryCache","gpgpuCreatedLocally","textureManager","numMBBeforeWarning","screen","devicePixelRatio","checkNumericalProblems","runWebGLProgram","convertAndCacheOnCPU","shouldTimeProgram","activeTimers","getValuesFromTexture","subscribers","tmpDownloadTarget","tmpData","createBufferFromTexture","createAndWaitForFence","downloadFloat32MatrixFromBuffer","dTypeVals","tmpTarget","downloadMatrixFromPackedTexture","shouldUsePackedProgram","downloadByteEncodedFloatMatrixFromOutputTexture","oldActiveTimers","newActiveTimers","outerMostTime","programTimersStack","flattenedActiveTimerQueries","flattenedActiveTimerNames","ms","numBytesInGPUAllocated","numBytesAllocated","numBytesInGPUFree","numBytesFree","startMs","endMs","waitForQueryAndGetTime","timerQuery","releaseGPUData","origDataId","releaseTexture","uploadToGPU","sizeThreshold","getCPUBackend","compileAndRun","shouldExecuteOnCPU","outValues","packedUnaryOp","afterShape","input3DShape","input3D","afterShapeAs3D","outputDtype","customSetup","preventEagerUnpackingOfOutput","outData","texelShape","dataToDispose","inputsData","uniformValues","unpackTensor","packTensor","savedInput","packedReshape","outputData","keyInputs","hasOffset","keyUserCode","binary","getAndSaveBinary","inputInfos","inShapeInfos","webGLProgram","infLoc","nanLoc","uniformLocations","startTimer","outTex","setOutputPackedMatrixTexture","setOutputMatrixTexture","uniform1f","varLoc","varOffsetLoc","uniform1fv","setInputMatrixTexture","executeProgram","endTimer","glFlushThreshold","unpacked","getBinary","HTMLCanvasElement","remove","floatPrecisionValue","debugFlag","underflowCheckValue","logShape","maxTexSize","squeezeResult","isByteArray","tempDenseInputHandle","uploadDenseMatrixToTexture","getTexture","preventEagerUnpacking","encodedOutputTarget","outputTexData","acquireTexture","float32Values","float32ToTypedArray","texType","mb","BinaryOpProgram","BinaryOpPackedProgram","checkOutOfBounds","supportsBroadcasting","checkOutOfBoundsString","realTensorInfo","imagTensorInfo","LEAKYRELU","LEAKYRELU_PACKED","$alpha","PRELU","PRELU_PACKED","packedOpSnippet","cpuKernelImpl","webglBackend","supportsComplex","aData","bData","complexParts","aPart","bPart","aHandle","bHandle","complexOutput","mapActivationToShaderProgram","packed","CHECK_NAN_SNIPPET","MatMulPackedProgram","addBias","hasPreluActivation","hasLeakyreluActivation","sharedDimensionPacked","aSample","bSample","aSwizzle","bSwizzle","activationSnippet","applyActivationSnippet","addBiasSnippet","batchASnippet","batchBSnippet","BinaryOpComplexProgram","MUL","realProgram","imagProgram","xTexData","MeanProgram","reduceInfo","divisor","windowSizeNearestVec4","windowSizeVec4Remainder","updateSnippet","toPrecision","ReduceProgram","reduceType","initializationValue","compareOp","vecType","reductionType","reductionStages","stages","getReductionStages","previousResult","TransposeProgram","switched","originalOrder","switchedCoords","getSwitchedCoords","TransposePackedProgram","outputOrder","switchedOrder","nextColumn","getc","sumInputIsTransposed","sumInput","sumOutShape","reshapedInput","reduced","sumImpl","batchMatMulImpl","a3dShape","hasBias","hasPreluActivationWeights","hasLeakyreluAlpha","fusedActivation","aVec","bVec","shouldReshapeB","aVec3d","bVec3d","$leakyreluAlpha","outReshaped","ADD","addKernelFunc","AddNProgram","snippets","operation","AddNPackedProgram","midIndex","leftSide","rightSide","a2D","ArgMinMaxProgram","firstPass","compOp","indexSnippet","ArgMinMaxPackedProgram","sourceLocSetup","sourceRank","sourceLocDType","inChannel","intChannels","srcRCoords","srcGCoords","srcBCoords","srcACoords","fetchCandidateIdx","fetchValue","getBestIndicesAChannelSnippet","argReduce","bestIndicesA","argReducePacked","argMinMaxReduce","CHECK_NAN_SNIPPET_BINARY","Pool2DProgram","computePositions","isAvgPool","batchFlattenPositionStr","flattenPositionStr","filterWidthNearestVec4","filterWidthVec4Remainder","Pool3DProgram","avgPoolProgram","AvgPool2DBackpropProgram","AvgPool3DBackpropProgram","avgPoolGrad3DConfig","avgPoolBackpropProgram","BatchNormProgram","meanShape","varianceShape","offsetShape","scaleShape","offsetSnippet","scaleSnippet","BatchNormPackedProgram","finalInputs","SliceProgram","destSize","uniformPart","getCoords","startLoc","getUniformLocationNoThrow","uniform1iv","SlicePackedProgram","sourceLoc","getChannel","upperRow","lowerRow","getCustomSetupFunc","newTexData","shallowSlice","reshapedIntermediate","transposedIntermediate","reshapedIntermediate2","zerosTensor","CEIL","ClipProgram","minLoc","maxLoc","ClipPackedProgram","clipByValueConfig","ComplexAbsProgram","makeComplexComponentTensorInfo","complexTensor","complexPart","programInputs","ConcatProgram","offsets","lastIndex","lastShift","ConcatPackedProgram","lastChannels","allChannels","getValueSnippet","shiftedChannels","channelIdx","tensors2D","computeTensors2D","Conv2DProgram","inputDepthNearestVec4","inputDepthVec4Remainder","rowDim","colDim","channelDim","Conv3DProgram","Im2ColPackedProgram","itemsPerBlockRow","unrolled","conv2dByMatMul","sharedMatMulDim","outerShapeX","outerShapeFilter","batchMatMulWillBeUnpacked","reshapeWillBeExpensive","originalXTexDataShape","filterReshaped","pointwiseConv","pointwiseConvTexData","conv2dWithIm2Row","x2ColShape","xSqueezed","w2Row","im2ColProgram","im2Col","im2ColReshaped","matmulProgram","Conv2DDerFilterProgram","Conv2DDerInputProgram","Conv3DDerFilterProgram","Conv3DDerInputProgram","conv3DBackpropInputConfig","CHECK_NAN_SNIPPET_UNARY","CropAndResizeProgram","imageShape","boxShape","methodId","inputHeightFloat","inputWidthFloat","heightRatio","widthRatio","CumSumProgram","idxString","getFinalCoord","prevResult","DepthToSpaceProgram","getHeightCoordString","getWidthCoordString","getDepthCoordString","getOutputDepthSize","getInputSamplingString","DepthwiseConv2DProgram","hasLeakyReluAlpha","xNumRows","xNumCols","channelMul","DepthwiseConvPacked2DProgram","texelsAcross","texelC","nextTexelOffset","DepthwiseConv2DDerFilterProgram","DepthwiseConv2DDerInputProgram","DiagProgram","flat","Dilation2DProgram","dilation2DConfig","EXP","EXPM1","FFTProgram","component","exponentMultiplierSnippet","resultDenominator","opString","complexOutputReshaped","FillProgram","valueLoc","FlipLeftRightProgram","FLOOR","FromPixelsProgram","FromPixelsPackedProgram","fromPixelsConfig","tempPixelHandle","uploadPixelDataToTexture","shouldPackDepthwiseConv","GatherNDProgram","stridesType","strideString","flattenIndices","GatherProgram","currentCoords","LRNProgram","radius","rad","powOperator","basis","LRNPackedProgram","LRNConfig","LRNGradProgram","LRNGradConfig","maxInputIsTransposed","maxInput","maxInputValues","reshapedOutput","maxPoolProgram","MaxPool2DBackpropProgram","MaxPool3DBackpropProgram","maxPoolGrad3DConfig","maxPool3dPositionsProgram","maxPoolBackpropProgram","maxPoolPositionsProgram","maxPoolBackPropProgram","poolOutput","meanInputIsTransposed","meanInput","meanInputValues","meanOutShape","meanImpl","MirrorPadProgram","unpackedCoords","MirrorPadPackedProgram","cLimit","padSetup","MultinomialProgram","seedLoc","realDiv","SUB","maxLogitsReshaped","sumExpReshaped","probs","NEG","OneHotProgram","numIndices","PadProgram","PadPackedProgram","componentSetup","paddingArea","ResizeBilinearProgram","effectiveInSize","effectiveOutSize","sourceFracIndexRC","ResizeBilinearPackedProgram","ResizeBilinearBackpropProgram","ResizeNearestNeighborProgram","roundBase","ResizeNearestNeigborBackpropProgram","ReverseProgram","inCoords","getInCoord","ReversePackedProgram","nextRow","inCoordsArray","channels1","getR","getG","getB","getA","RotateProgram","fillSnippet","paramsLoc","uniform4f","ScatterProgram","updateSize","updatesRank","summingDupeIndex","indicesString","indicesSnippet","updatesString","updatesSnippet","SelectProgram","cRank","cCoords","abCoords","cCoordVars","abCoordVars","reshapedPaddedX","StridedSliceProgram","inputDtype","newCoords","outputAxis","TileProgram","TransformProgram","interpolationModeId","fillModeId","SegmentOpProgram","segOpInfo","segOpType","checkValueOutOfBounds","checkSegmentIdOutOfBounds","segOpCompute","rangeInfo","tileInfo","regex","opts","exact","Configs","table_width","table_truncate","dtype_test_lim","table_max_row","table_max_col_in_console","utils","Utils","__in_object","df_list","df_object","duplicate_col_count","max_length","a_key","column","col_name","column_length","null_array","DataFrame","row_indexes","col_i","r_index","column_set","df_columns","not_exist","col_index","row_value","new_arr","Series","_set_column_property","col_vals","col_data","col_names","column_names","addColumn","csvFilePath","csvContent","require","writeFileSync","webCSV","encodeURI","params_needed","_throw_wrong_params_error","to_drop","new_col_data","new_dtype","col_idx","dtypes","old_cols","new_columns","df","__set_col_property","__update_frame_in_place","__key_in_object","new_data","new_index","data_idx","__remove_arr","row_data_tensor","tf","__set_index","indexLoc","row_len","indx","shuffled_index","iloc","other","__frame_is_compactible_for_operation","__get_ops_tensors","sum_vals","__get_df_from_tensor","operands","__get_tensor_and_idx","tensor_vals","sf","arraySync","col_data_tensor","median","__median","std","__count_nan","dp","new_vals","__round","ops","df_data","temp_val","temp_data","curr_val","__get_col_values","__cum_ops","inplace","copy","__reset_index","drop","numeric_df","select_dtypes","stats_arr","col_series","_stats","include","original_col_vals","__supported_dtypes","val_sums","temp_sum","abs_data","t_axis","operators","column_index","operator","data_value","elem","eval","new_df","column_name","data_length","new_val","new_dtypes","__get_t","new_col_names","col_dict","key_column","data1","data2","column_1_Unique","__unique","column_2_unique","col_value","col2_value","column_Unique","GroupBy","__arr_to_obj","__temp","final_data","nan_val","__isna","df_values","index_data","__is_function","callable","callable_data","new_row","__is_1D_array","__logical_ops","new_col_data_obj","temp_col_data","replaced_arr","old_arr","inner_arr","logical_type","int_vals","__is_number","series","__map_int_to_bool","new_array","__is_undefined","tensors_arr","this_tensor","other_tensor","new_values","Plot","new_types","col_types","col_values","new_col_values","temp_col","new_col_obj","cname","_unique","_index","data_set","_nunique","old_col_names","old_index","row_index","asc","index_val","__sort_by","column_val","row_data","col_obj","_res","_get_row_and_col_values","index_arr","df_index","sorted_val","__sort","duplicate_obj","__get_duplicate","indexs","row_i","df2","__is_object","d_types","Ndframe","NDframe","_read_array","_read_object","__is_string","__replace_undefined_with_NaN","_set_col_types","row_arr","data_arr","infer","new_idx","temp_arr","records","header","csv_str","json_arr","get_width","get_truncate","max_row","get_max_row","max_col_in_console","get_max_col_in_console","table_config","col_len","sub_idx","values_1","value_2","first_4_cols","last_3_cols","df_subset_1","df_subset_2","truncate","table_data","table","key_col","data_tensors","col1_index","col2_index","col1_value","key2","selected_column","group_col","key1","gp","group_col_name","ops_name","ops_map","is_array","local","count_group","arithemetic","to_DataFrame","col_gp","operations","toLocaleLowerCase","key_1","key_val","key_2","k_data","key_data","callable_rslt","ndframe","isColumnSplit","row_split","__range","row_idx","data_values","row_val","max_rowIndex","max_colIndex","final_row","__convert_2D_to_1D","__check_series_op_compactibility","div_result","tensor1","tensor2","_throw_str_dtype_error","_remove_nans","max_result","sorted_values","arr_obj","range_idx","sorted_idx","_sort_arr_with_index","is_callable","s_data","data_dict","__bool_ops","old_values","isna_vals","isna","ascending","sorted_index","sort_values","b_ops","r_series","l_series","l_val","r_val","Boolean","el","Str","timeseries","TimeSeries","preprocessed","__create_new_sf_from","f_char","l_char","new_str","position","final_arr","l_str","r_str","searchValue","replaceValue","startIndex","endIndex","splitVal","valToJoin","joinChar","r_char","new_char","__in_format","__monthName","__weekName","format_values","generate_format","date_list","date_string","format_dateString","__apply_format","valueDate","__is_validDate","is_timestamp","string2int","format_list","int2string","date_instance","toDateString","__date_ops","getMonth","getHours","getDay","getFullYear","getDate","getSeconds","getMinutes","to_datetime","destructive","selected","population","cols_len","cols_arr","first_col_len","rows_len","rows_arr","temp_row","isSeries","full_arr","ele","arr_val","lim","int_tracker","float_tracker","string_tracker","bool_tracker","get_dtype_test_lim","__checker","arr_map","return_val","null_count","val_count","result_arr","ele_arr","modes","arr_ele","gen_num","randi","recursive","recur_val","outer_val","tensor_data","zero_data","isNode","temp_obj","rslt_obj","arr1","arg1","read_csv","configs","tfdata","read_json","read_excel","sheet","header_index","data_index","workbook","XLSX","worksheet","Sheets","SheetNames","R","C","cell_ref","how","on","left_col_index","right_col_index","left_index","right_index","left_key_dict","right_key_dict","left_values","right_values","left_value","left_key_comb","left_value_filter","right_value","right_key_comb","right_value_filter","__create_columns","outer","inner","left_merge","right_merge","left_col","right_col","column_duplicate","temp_column","basic","left_keys","right_keys","key_array","left_row","left_i","left_row_row","right_row","r_i","right_row_row","inner_data","nan_array","merge","LabelEncoder","in_data","output_data","OneHotEncoder","onehot_data","__zeros","elem_index","MinMaxScaler","StandardScaler","date_range","period","freq","freq_list","freq_split","start_date","end_date","start_range","end_range","freq_type","start_year","end_year","month_end","day_end","range_array","offset_count","month_range","set_dateProps","toLocalString","date","ftype","rslt","d_array","r_array","new_date","valueOf","setYear","setMonth","setSeconds","setDate","setHours","setMinutes","toLocaleString","end_month","minus","y_val","m_range","prefix_sep","prefix_labels","get_dummies","is_dataframe","name_column","column_data","one_hotColumns","one_hotData","dt","final_columns","_version","Plotly","ret_params","__get_plot_params","this_config","trace","newPlot","xaxis","yaxis","____check_if_cols_exist","c_name","hoverinfo","automargin","cols_to_plot","cols_2_show","cols_data","root","parser_exit","SyntaxError","logHypot","_b","plus","loh","re","im","xx","cosm1","noIM","oneMinus","onePlus","places","E","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","P","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","rm","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","comparedTo","cmp","xdL","ydL","xd","yd","pr","Ctor","sd","tinyPow","taylorSeries","times","cos2x","toLessThanHalfPi","cubeRoot","cbrt","rep","t3","t3plusx","isZero","toExponential","divide","eq","decimalPlaces","dividedBy","dividedToIntegerBy","divToInt","equals","greaterThan","gt","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","inverseCosine","halfPi","isNeg","getPi","inverseHyperbolicCosine","lte","ln","inverseHyperbolicSine","inverseHyperbolicTangent","wpr","xsd","inverseSine","inverseTangent","px","isNegative","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","isBase10","inf","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","naturalExponential","negated","carry","getPrecision","sine","sin2_x","squareRoot","tangent","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","d0","n0","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yn","intPow","toSignificantDigits","toSD","multiplyInteger","compare","aL","bL","subtract","more","prodL","qd","remL","rem0","xL","yd0","yL","yz","isTruncated","digits","roundUp","xdi","isExp","nonFiniteToString","zs","isOdd","maxOrMin","ltgt","guard","c0","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","pi","useDefaults","defaults","getRandomValues","randomBytes","isDecimalInstance","log10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","createError","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","p2","A","B","D","gcd","eps","cont","rec","excludeWhole","whole","dec","cycLen","cycleLen","cycOff","rem1","rem2","modpow","cycleStart","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","iteratee","resIndex","baseTimes","isArguments","isBuffer","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","asciiSize","baseProperty","string","baseAssignValue","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isObject","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","tag","isFunc","stacked","subValue","objectCreate","baseCreate","proto","isSymbol","computed","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","isPrototype","nativeKeys","nativeKeysIn","isProto","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","symbolProto","symbolToString","baseToString","stringToPath","baseSlice","baseIndexOf","strSymbols","chrSymbols","freeExports","nodeType","freeModule","allocUnsafe","cloneArrayBuffer","dataView","reFlags","regexp","symbolValueOf","symbol","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","setToArray","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","isKeyable","baseIsNative","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","memoize","freeProcess","nodeUtil","types","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","hasUnicode","unicodeSize","asciiToArray","unicodeToArray","memoizeCapped","rePropName","reEscapeChar","number","quote","subString","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","CLONE_DEEP_FLAG","baseHasIn","hasPath","baseIsArguments","stubFalse","baseIsMap","baseUnary","nodeIsMap","baseIsRegExp","nodeIsRegExp","isRegExp","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseKeysIn","baseForOwn","baseIteratee","baseExtremum","baseGt","resolver","memoized","Cache","basePropertyDeep","castFunction","toInteger","MAX_ARRAY_LENGTH","nativeMin","toFinite","remainder","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","castSlice","charsEndIndex","stringToArray","reTrimEnd","chars","stringSize","omission","strLength","newEnd","baseValues","matrix","predictable","randomSeed","_extends","freeze","MATRIX_OPTIONS","NUMBER_OPTIONS","is","extend","prop","deepStrictEqual","dependencies","meta","assertAndCreate","scope","deps","properties","pickShallow","stripOptionalNotation","dependency","isOptionalDependency","missingDependencies","assertDependencies","isFactory","createComplexClass","mathjs","phi","strRe","strIm","hasBase","isClass","hasher","hash","BigNumber","createBigNumberPi","createBigNumberClass","_ref","isBigNumber","fromJSON","createMatrixClass","Matrix","isMatrix","storage","datatype","subset","replacement","skipZeros","numberFactory","_ref2","createFractionClass","notation","newExp","valueWithoutExp","valueStr","toEngineering","lowerExp","upperExp","rounded","looksLikeFraction","formatArray","syntax","DimensionError","relation","IndexError","arraySize","_validate","dimNext","validate","validateIndex","_resize","oldLen","newLen","unsqueeze","_unsqueeze","ii","getArrayDataType","typeOf","itemType","isDimensionError","isIndexError","createDenseMatrixClass","DenseMatrix","_data","_size","_datatype","preprocess","isScalar","_getSubmatrix","last","_set","submatrix","sSize","iSize","_fit","_setSubmatrix","dataIndex","subIndex","newSize","changed","createDenseMatrix","isDenseMatrix","getDataType","indexI","sizeArray","flatArray","totalSize","sizeIndex","tmpArray2","tmpArray","_reshape","me","diagonal","kSuper","kSub","_value","swapRows","_swapRows","_createTyped2","createTyped","typed","conversions","to","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","deepForEach","createIsInteger","createIsNumeric","createIsNaN","isNaNNumber","Unit","createEqualScalar","complexEquals","equalBase","createNumber","unit","valuelessUnit","absNumber","addNumber","multiplyNumber","unaryMinusNumber","createApply","_apply","tran","I","J","createMultiplyScalar","_normalize","multiply","baseFormatter","2","8","16","createBaseFormatterFactory","createFraction","createUnaryMinus","createAddScalar","fixPrefix","createSqrt","_sqrtNumber","createConj","conjugate","createMode","isNumeric","_mode","createSparseMatrixClass","equalScalar","SparseMatrix","_values","_ptr","_createFromArray","_createFromMatrix","ptr","_getsubset","kk","mvalues","mindex","mptr","_setsubset","x0","y0","_getValueIndex","_insert","k1","_toArray","createSparseMatrix","isSparseMatrix","density","_remove","colIndex","rowIndex","r1","_i2","_i3","_j","minRow","maxRow","minColumn","maxColumn","invoke","_k","_i5","_map","_k2","_i7","_forEachRow","kx","ky","vx","vy","createMatrix","_create","createAlgorithm01","denseMatrix","sparseMatrix","adata","asize","adt","bvalues","bindex","bptr","bsize","bdt","cf","cdata","mark","createAlgorithm04","avalues","aindex","aptr","cvalues","cindex","cptr","xa","xb","wa","wb","createAlgorithm10","createAlgorithm13","bdata","csize","_iterate","av","bv","cv","createAlgorithm14","createAlgorithm03","createAlgorithm05","wai","wbi","vc","createAlgorithm11","createAlgorithm12","createAlgorithm07","_scatter","va","vb","createIdentity","_identity","_identityVector","Big","noBignumber","noFraction","createSize","noMatrix","createCompare","algorithm03","algorithm05","algorithm12","algorithm13","algorithm14","createSmaller","algorithm07","createLarger","createFibonacciHeapClass","smaller","larger","oneOverLogPhi","FibonacciHeap","_minimum","_cut","degree","_cascadingCut","isFibonacciHeap","insert","extractMinimum","numberOfChildren","tempRight","numRoots","_linkNodes","_findMinimumNode","_decreaseKey","createAdd","addScalar","algorithm01","algorithm04","algorithm10","signatures","createDot","multiplyScalar","conj","_validateDim","aIsColumn","bIsColumn","_c","_c2","_c3","xindex","xvalues","yindex","yvalues","xLen","yLen","ySize","createAbs","createMultiply","algorithm11","_validateMatrixDimensions","size1","size2","_multiplyMatrixVector","arows","acolumns","af","mf","brows","ib","vbi","ka0","ka1","ka","ia","ic","_multiplyMatrixMatrix","bcolumns","jb","kb0","kb1","cij","kb","vbij","p0","xsize","ysize","_multiplyVectorVector","alength","_multiplyVectorDenseMatrix","_multiplyVectorMatrix","ArgumentsError","isArgumentsError","createPartitionSelect","_partitionSelect","quickSelect","pivot","createBignumber","createNumeric","_number","bignumber","validInputTypes","validOutputTypes","outputType","inputType","improveErrorMessage","details","createSubtract","unaryMinus","checkEqualDimensions","createDivideScalar","numeric","createSpaClass","Spa","_heap","isSpa","accumulate","heap","swap","nodei","nodej","createLup","divideScalar","_denseLUP","lvalues","lindex","lptr","lsize","uvalues","uindex","uptr","usize","pvCo","pvOc","_loop","spa","vkj","vik","vjj","pabsv","absv","L","U","_sparseLUP","ldata","udata","vij","createDet","lup","decomp","det","evenCycles","_det","createInv","_inv","ABig","rBig","Ac","Bc","Ar","Br","createDivide","inv","DEFAULT_NORMALIZATION","createVariance","_var","_varDim","normalization","createStd","_std","createMedian","partitionSelect","_median","mid","middle2","containsCollections","gammaNumber","twoN","threeN","fourN","fiveN","gammaP","gammaG","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","xInv","asecNumber","asechNumber","asinhNumber","atanhNumber","cotNumber","cothNumber","cscNumber","cschNumber","secNumber","sechNumber","sinhNumber","isNegativeNumber","isPositiveNumber","isZeroNumber","isComplex","isFraction","isUnit","isCollection","isRange","isResultSet","isHelp","isDate","isNull","isUndefined","isAccessorNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isOperatorNode","isParenthesisNode","isRangeNode","isSymbolNode","isChain","LN2","negate","roundDigits","splitNumber","coefficients","missingZeros","expDiff","decimalIdx","decimals","decimalVal","splitValue","pp","first","DBL_EPSILON","EPSILON","nearlyEqual","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","GLOBAL","startdenom","significance","overflow","oldRandom","ARC4","keylen","S","typ","mixkey","smear","stringseed","tostring","autoseed","plugins","use_entropy","entropy","arc4","resetGlobal","xor128","xorwow","xorshift7","xor4096","tychei","sr","Alea","mash","s0","xg","prng","double","quick","XorGen","strseed","X","math","nodecrypto","shortseed","msCrypto","browser","pass","is_math_call","isFullwidthCodePoint","astralRegex","ansiStyles","ESCAPES","wrapAnsi","code","insideEscape","escapeCode","visible","leftEscape","codePointAt","codes","colorConvert","wrapAnsi16","wrapAnsi256","wrapAnsi16m","rgb","styles","modifier","bold","italic","underline","hidden","strikethrough","color","black","red","green","yellow","blue","magenta","cyan","white","gray","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","grey","groupName","styleName","style","ansi2ansi","rgb2rgb","ansi","ansi256","ansi16m","suite","ansi16","cssKeywords","reverseKeywords","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","hcg","apple","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","smin","lmin","hi","sl","vmin","wh","bl","ratio","hr","mult","colorString","char","integer","hue","chroma","mg","pure","route","fromModel","routes","toModel","wrappedFn","conversion","wrapRounded","raw","wrapRaw","link","wrapConversion","cur","models","buildGraph","adjacents","adjacent","deriveBFS","_isNumber2","_interopRequireDefault","_isString2","_stringWidth","__esModule","alignments","subject","containerWidth","alignment","subjectWidth","availableWidth","alignLeft","alignRight","halfWidth","alignCenter","_alignString","index1","_wrapCell","columnWidth","useWrapWord","_calculateCellWidthIndex","valueWidth","index0","_max2","_isBoolean2","_calculateCellHeight","tableWidth","rowSpanIndex","cellHeightIndex","wrapWord","_mapValues2","_values2","_trimEnd2","_makeStreamConfig","_drawRow","_drawBorder","_stringifyTableData","_truncateTableData","_mapDataUsingRowHeightIndex","_alignTableData","_padTableData","_calculateRowHeightIndex","prepareData","rowHeightIndex","userConfig","columnWidthIndex","paddingLeft","paddingRight","empty","columnCount","literalRow","border","drawBorderTop","drawBorderBottom","stdout","drawBorderJoin","drawBorder","columnSizeIndex","topBody","topJoin","joinBody","joinJoin","joinLeft","joinRight","bottomBody","bottomJoin","bottomRight","bodyLeft","bodyJoin","bodyRight","drawHorizontalLine","singleLine","realRowIndex","rowHeight","rowCount","_table","_cloneDeep2","_isUndefined2","_times2","_getBorderCharacters","_validateConfig","_calculateMaximumColumnWidthIndex","makeBorder","columnDefault","maximumColumnWidthIndex","makeColumns","_flatten2","unmappedRows","mappedRows","cellLine","index2","_drawTable","_makeConfig","_validateTableData","cellWidthIndex","_truncate2","content","refVal","refVal1","dataPath","parentData","parentDataProperty","rootData","vErrors","errors","key0","schema","schemaPath","additionalProperty","refVal2","pattern0","refVal3","refVal4","valid1","errs_1","schema1","enum","i1","allowedValues","errs__1","ruleErr1","columnNumber","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","return","_wrapString","_wrapWord","cellValue","cellLines","lineNr","lineChunks","_sliceAnsi","subjectSlice","chunks","onlyFirst","stripAnsi","emojiRegex","ansiRegex","notOk","undef","_types","anyType","_ignore","_conversions","ignore","findTypeByName","typeName","findInArray","hint","findTypeIndex","findTypeName","stringifyParams","typeNames","getTypeName","restParam","parseParam","notEmpty","notIgnore","matchingConversions","matches","filterConversions","exactTypes","typeIndex","conversionIndex","convertibleTypes","hasRestParam","hasConversions","compileTest","test0","test1","tests","compileTests","varIndex","lastTest","testRestParam","getParamAtIndex","getExpectedTypeNames","excludeConversions","isExactType","mergeExpectedParams","uniq","flatMap","_name","matchingSignatures","nextMatchingDefs","actualType","expectedLength","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","compareSignatures","signature1","signature2","compileArgConversion","conversion0","conversion1","splitParams","ignoreConversionTypes","_splitParams","typeGroups","filteredTypes","typeGroup","createTypedFunction","signaturesMap","parsedSignatures","parsedParam","isInvalidParam","parseSignature","notNull","parsedSignature","conflictingSignature","hasOverlap","len1","len2","restParam1","restParam2","hasConflictingParams","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","fns","fnConvert","compiledConversions","fnPreprocess","compileArgsPreprocessing","fn0","fn1","fn2","fn3","fn4","fn5","len0","len3","len4","len5","iStart","iEnd","generic","arg0","createSignaturesMap","array1","getName","extractSignatures","validateUnique","_fn","addType","beforeObjectTest","addConversion","cptable","DO_NOT_EXPORT_CODEPAGE","cpt","magic","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","has_buf","Buffer_from","nbfs","enc","mdl","mdb","sbcs_encode","cp","EE","ee","make_EE","ofmt","sbcs_decode","DD","dbcs_encode","jj","dbcs_decode","utf8_d","ww","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","F","dash","tt","o64","c3","e2","e3","e4","isstr","hascp","DO_NOT_EXPORT_JSZIP","JSZipSync","globalThis","$","1","_dereq_","_keyStr","utf8","chr1","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","getContent","getCompressedContent","3","STORE","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","4","crc","getTypeOf","iTop","5","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","6","base64","dir","createFolders","compression","comment","7","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","USE_TYPEDARRAY","pako","deflateRaw","inflateRaw","9","newObj","support","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","alloc","12","Uint8ArrayReader","NodeBufferReader","13","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","fileAdd","dataType","prepareFileAttrs","parentFolder","folderAdd","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","filename","relativePath","fileClone","folder","newFolder","kids","generate","writer","dirEnd","zipData","localDirLength","centralDirLength","compressionName","zipPart","CENTRAL_DIRECTORY_END","finalize","14","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","17","arraybuffer","uint8array","blob","builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","18","sig0","sig1","sig2","sig3","19","20","_utf8len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","m_pos","str_len","buf_len","string2buf","nextBoundary","21","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","22","ZipEntry","jszipProto","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","25","zlib_deflate","zstream","Deflate","windowBits","memLevel","strategy","opt","gzip","ended","strm","avail_out","deflateInit2","deflateSetHeader","deflate","deflator","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflate","inflator","next_out_utf8","tail","utf8str","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_STREAM_END","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","fnTyped","dest","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","29","adler","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","31","crcTable","makeTable","32","trees","adler32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","head","total_in","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","max_block_size","max_start","deflateInit","old_flush","beg","hcrc","extra","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","deflateInfo","33","xflags","extra_len","34","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","TYPE","BAD","ZSWAP32","InflateState","havedict","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","sym","inflateInit","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","updatewindow","inflateInfo","36","lbase","lext","dbase","dext","lens_index","table_index","incr","used","huff","base_index","MAXBITS","offs","extra_index","37","38","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","39","current_codepage","current_ansi","VALID_ANSI","CS2CP","0","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","set_cp","reset_cp","char_codes","debom","utf16leread","utf16beread","_getchar","_getansi","Base64","e1","new_raw_buf","new_unsafe_buf","s2a","s2ab","view","a2s","ab2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","rpad_","p2_32","pad0r","pad0r1","pad0r2","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","mixed","sgn","P_2","P_1","Q_2","Q_1","Q","parse_date_code","b2","dow","dout","T","H","date1904","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","getTimezoneOffset","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","V","LOG10E","small_exp","large_exp","normalize_exp","general_fmt","write_date","fmt","ss0","ss","outl","commaify","_general_num","_general","write_num","pct1","write_num_exp","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","cc","rnd","dd","_frac","write_num_flt","ffmt","write_num_cm","sfmt","write_num_pct","ri","ff","aval","den","rr","myn","myd","write_num_f1","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","lst","ssm","bt","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","dateNF","lat","m1","m2","choose_fmt","load_entry","get_table","load_table","tbl","CRC32","XLMLFormatMap","SSFImplicit","dateNFregex","signed_crc_table","bstr","crc32_buf_8","_fs","CFB","dirname","write_dos_date","hms","write_shift","ymd","parse_extra_field","prep_blob","read_shift","tgt","mtime","atime","ctime","mt","get_fs","parse_zip","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","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","mini","minifat_store","pl","sector","namelen","__utf16le","clsid","ct","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","payload","MSSZ","new_buf","cnt","__readUInt32LE","init_cfb","cfb","CLSID","nm","rebuild_cfb","seed_cfb","gc","_file","HEADER_CLSID","Z","namecmp","elt","_write","_opts","fileType","cdirs","start_cd","fcnt","fi","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","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","off","clens","cmap","MAX","maxlen","ccode","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","hcodes","h1","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","len_eb","dst_eb","dst","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","setMilliseconds","setFullYear","parse_dos_date","_csz","_usz","ef","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","_crc32","cfb_add","unsafe","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","read_file","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","fname","utf8write","IE_SaveFile","msSaveBlob","saveAs","chrome","downloads","revokeObjectURL","appendChild","click","removeChild","Folder","ks","o2","evert_key","K","evert","evert_num","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","getYear","jszip","safe_split_regex","getdatastr","safegetzipfile","getzipfile","getzipdata","safe","getdatabin","getzipstr","zip_add_file","zip_new","resolve_path","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","quot","strip_ns","encregex","coderegex","encodings","rencoding","unescapexml","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8read","orig","utf8readb","corpus","utf8readc","mtcache","entities","vt_cache","matchtag","htmldecode","vtregex","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","__lpp4","___lpp4","XMLNS","XLMLNS","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","read_double_le","is_buf","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","oo","__writeUInt16LE","WriteShift","cppayload","__writeUInt32LE","bs","write_double_le","__writeInt32LE","hexstr","fld","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","cstr","decode_range","encode_range","cs","ce","safe_decode_range","format_cell","XF","numFmtId","safe_format_cell","sheet_to_workbook","sheets","sheet_add_aoa","_ws","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","O","_crypto","rc4","md5","createHash","digest","make_offcrypto","parse_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","auto","theme","nTS","tint","parse_ClipboardFormatOrString","VT_STRING","VT_CUSTOM","DocSummaryPIDDSI","VT_VECTOR","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","type2ct","evert_arr","CT","CTYPE_XML_ROOT","xsi","CTYPE_DEFAULTS","rels","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","write_rdf_type","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","EXT_PROPS","load_props_pairs","HP","TOP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","EXT_PROPS_XML_ROOT","vt","CUST_PROPS","custregex","CUST_PROPS_XML_ROOT","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","Application","LastPrinted","CreatedDate","ModifiedDate","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","parse_TypedPropertyValue","parse_dictionary","CodePage","pid","parse_BLOB","Size","parse_ClipboardData","parse_VtUnalignedString","cElements","parse_VtVecHeadingPairValue","parse_VtVecHeadingPair","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkString","write_Hyperlink","hl","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","fSharedNote","parse_BOF","BIFFVer","write_BOF","bookType","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","udfName","parse_AddinUdf","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","rgcb","parse_Rgce","parse_RgbExtra","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","ref","parse_ArrayParsedFormula","parse_BIFF5OT","write_HLink","write_HLinkTooltip","TT","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","cchName","parse_Blank","parse_Scl","parse_String","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","hend","sheetRows","dbf_to_aoa","_RLEN","to_workbook","to_sheet","from_sheet","codepage","aoa","sheet_to_json","hcnt","coltypes","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","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","push_value","topic","ETH","eth_to_sheet","eth_to_aoa","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","dsv_to_sheet_str","instr","guess_sep","sepcc","_re","finish_cell","Y","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet","firstbyte","prn_to_aoa_str","prn_to_sheet_str","WK_","lotus_to_workbook_buf","sidx","snames","refguess","Enum","WK1Enum","WK3Enum","qpro","lotushopper","Rn","vers","parse_cell","parse_LABEL","parse_cell_3","parse_NUMBER_17","parse_NUMBER_27","parse_rs","tregex","rpregex","parse_r","rpr","font","shadow","outline","strike","uval","family","valign","parse_rpr","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","intro","outro","align","parse_rpr2","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","SST","straywsregex","write_sst_xml","sst","bookSST","xmlns","main","Count","uniqueCount","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_EncryptionHeader","Flags","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","xml","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PadArray","InitialCode","XorMatrix","XorRor","crypto_CreateXorArray_Method1","byte1","byte2","Byte","password","Temp","PasswordLastChar","PadIndex","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","RTF","rtf_to_sheet","rtf_to_sheet_str","rgb2Hex","rgb_tint","G","H6","L2","rgb2HSL","hex2RGB","h6","hsl2RGB","MDW","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","pt","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","XLMLPatternTypeMap","cellXF_uint","cellXF_bool","parse_sty_xml","themes","NumberFmt","formatCode","parse_numFmts","Fonts","condense","vertAlign","indexed","icv","themeElements","clrScheme","parse_fonts","Fills","patternType","fgColor","parse_fills","Borders","diagonalUp","diagonalDown","parse_borders","xf","CellXf","vertical","horizontal","textRotation","indent","wrapText","parse_cellXfs","STYLES_XML_ROOT","write_sty_xml","NF","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","STY","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_sty_bin","write_FMTS_bin","grbit","write_FontFlags","sss","charset","write_BrtFont","write_FONTS_bin","write_FILLS_bin","write_BrtBorder","write_BORDERS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","xfId","builtinId","write_BrtStyle","write_STYLES_bin","write_DXFS_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_TABLESTYLES_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_ExtProp","extType","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_FullColorExt","parse_XFExtGradient","IMG","DRAW","_shapeid","write_comments_vml","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","fillcolor","strokecolor","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","run","write_StrRun","write_BrtCommentText","VBAFMTS","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","shift_formula_str","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","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","rt","Ptg19","bitSemi","bitIf","bitGoto","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","get_ixti_raw","supbooks","XTI","SID","get_ixti","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","argc","lbl","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","shared","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","ods_to_csf_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","defs","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml_sheetpr","sheetPr","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","sviewregex","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","parse_ws_xml_data","sdata","sstr","ftag","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","_tag","_r","WS_XML_ROOT","write_ws_xml","rdata","_drawing","needed","vbaraw","Workbook","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","margin","relc","tooltip","ignoreEC","numberStoredAsText","sqref","write_row_header","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","ncell","write_BrtCellIsst","write_BrtCellSt","d100","write_RkNumber","write_BrtCellRk","write_BrtCellReal","write_BrtCellBool","write_BrtCellBlank","write_ws_bin","write_BrtWsProp","write_BrtBeginWsView","write_WSVIEWS2","write_BrtColInfo","write_COLINFOS","cap","write_CELLTABLE","write_BrtSheetProtection","write_SHEETPROTECT","write_AUTOFILTER","write_BrtBeginMergeCells","write_MERGECELLS","locidx","write_BrtHLink","write_HLINKS","write_BrtMargins","write_BrtCellIgnoreEC","write_IGNOREECS","write_LEGACYDRAWING","CHART","CHARTEX","CS","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","badchars","check_ws_name","_good","wbnsregex","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","Hidden","sheetId","Comment","localSheetId","write_BrtBundleSh","iTabID","strRelID","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","vistab","write_BrtBookView","write_BOOKVIEWS","write_BUNDLESHS","parse_ws","ai","seencol","R_n","aii","relId","Rel","rfx","tmpref","parse_ws_bin","mtch","ridx","parse_ws_xml_dim","svs","parse_ws_xml_sheetviews","coli","colm","colM","parse_ws_xml_cols","afilter","parse_ws_xml_autofilter","_merge","hlink","rng","parse_ws_xml_hlinks","parse_ws_xml_margins","parse_ws_xml","write_wb","write_ws","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","process_style_xlml","stag","Interior","Pattern","ID","parse_xlml_data","csty","nf","sid","StyleID","interiors","Parent","UTC","safe_format_xlml","Formula","ArrayRange","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","opening","ishtml","HTML_","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_name_xlml","write_ws_xlml_cell","_v","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","xlml_write_docprops","BLACKLIST","xlml_write_custprops","write_props_xlml","write_sty_xlml","write_names_xlml","slurp","insitu","XLSRecordEnum","ll","safe_format_xf","make_cell","PSCLSID","parse_xlscfb","CompObj","WorkbookP","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","parse_compobj","lastcell","cmnt","rngC","rngR","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","fDialog","ExternCount","tmpri","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","xfe","Encryption","Metadata","Country","parse_workbook","bookVBA","newcfb","newpath","make_vba_xls","DSI","DocSummary","SI","Summary","HeadingPairs","TitlesOfParts","parse_xls_props","bookFiles","ArchID","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","bR","bG","bB","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","fAlwaysCalc","display","idObj","stAuthor","parse_NoteSh","Info","Data","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4Header","EncryptionHeader","EncryptionVerifier","parse_RC4CryptoHeader","parse_FilePassHeader","XorArrayIndex","XorArray","verificationBytes","verifier","Value","crypto_DecryptData_Method1","parse_XORObfuscation","dyHeight","fl","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","UserName","fts","parse_BIFF5Obj","parse_FtArray","ccv","rw","rkrecs","lastcol","ixfes","fStyle","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_CellStyleXF","cmcs","ucnt","extsst","dsst","ctab","virtPath","rgst","texts","accel","parse_ControlInfo","cchText","sVer","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","parse_URLMoniker","ansiPath","parse_FileMoniker","parse_HyperlinkMoniker","parse_Hyperlink","xnum","cUse","wzTooltip","cxfs","cexts","cchComment","themeXML","parse_frtHeader","area","env","lcb","XLSRE","write_biff_rec","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff8_cell","bf","o1","write_FormulaValue","o3","write_Formula","write_Number","write_Bes","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_Font","write_FONTS_biff8","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","write_biff_buf","fix_write_opts","write_biff8_buf","write_ws_biff2","write_biff2_buf","html_to_sheet","mtch2","split_regex","hd","midx","colspan","rowspan","_t","make_html_row","editable","make_html_preamble","_BEGIN","_END","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","parse_dom_table","get_computed_style","ownerDocument","defaultView","getComputedStyle","get_get_computed_style_function","getPropertyValue","number_formats","parse_content_xml","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","fixed","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","FEtag","parse_manifest","write_styles_ods","write_content_ods","null_cell_xml","_Fref","text_p","_tgt","fods","write_automatic_styles_ods","write_ods","rdf","write_rdf","write_manifest","write_obj_str","write_sheet_index","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","safe_parse_sheet","relsPath","sheetRels","stype","parse_cs_bin","parse_cs_xml","parse_cs","dfile","drelsp","chartp","parse_drawing","crelsp","csheet","nc","parse_Cache","parse_chart","parse_ds","authors","author","parse_comments_bin","commentList","authtag","cmnttag","cm","authorId","textMatch","parse_comments_xml","parse_cmnt","encoded","sheet_insert_comments","strip_front_slash","binname","zipentries","links","coreprops","extprops","custprops","calcchains","vba","drawings","TODO","ctext","Extension","ContentType","PartName","calcchain","parse_ct","parse_sst_bin","parse_sst_xml","parse_sst","parse_theme","parse_sty_bin","parse_sty","parse_xlink_bin","parse_xlink","parse_wb_bin","dname","dnstart","parse_wb_xml","parse_wb","propdata","parse_ext_props","toks","parse_cust_props","bookDeps","parse_cc_bin","parse_cc_xml","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","W","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","parse_TransformInfoHeader","ename","cmode","parse_Primary","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","foo","vbafmt","write_core_props","_sn","write_ext_props","write_vt","write_cust_props","wsrels","need_vml","rId1","write_sty","f1","f3","write_ct","read_plaintext","read_prn","infile","read_binary","bstrify","ab","vu","read_cfb","OLD_WTF","read_wb_ID","zip_read","read_zip","read_utf16","read_plaintext_raw","write_cfb_ctr","write_string_type","bom","write_binary_type","writeSync","cn","check_wb","write_stxt_type","wbpath","Keys","DSEntries","SEntries","CEntries","CEntries2","write_xls_props","fill_vba_xls","write_xlscfb","write_cfb_type","oopts","encrypt_agile","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","Readable","split_cell","get_formulae","make_csv","make_json","make_formulae","json_to_sheet","table_to_sheet","table_to_book","sheet_to_html","sheet_to_row_object_array","get_default","ws_get_cell_stub","RC","book_new","book_append_sheet","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","to_json","objectMode","_read","to_html","to_csv","BOM","readFile","writeFileAsync","_cb","make_xlsx_lib","__webpack_module_cache__","__webpack_require__","moduleId","loaded","__webpack_modules__","amdD","amdO","getter","definition","nmd"],"mappings":"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KigJ,GAAgBloK,OAChDkoK,EAAet/F,GAAW2/F,EAC1B32I,EAAQ3xB,GAAKsoK,EACbH,EAAc1jK,KAAKzE,IAM3B,MAAMuoK,EAAiBj9J,EAAS3F,QAChC4iK,EAAe,GAAKjmK,OAAO0lB,KAAKigJ,GAAgBloK,OAChD,MAAMyoK,EAAe,IAAIxmJ,GAAaumJ,EAAgBxhK,GACtDohK,EAAc76J,SAAQ,CAACm7J,EAAoBzoK,KACvC,IAAK,IAAIm3B,EAAI,EAAGA,EAAI7rB,EAAS,GAAI6rB,IAC7B,IAAK,IAAI1xB,EAAI,EAAGA,EAAI6F,EAAS,GAAI7F,IAC7B+iK,EAAajiK,IAAI2hK,EAAYllK,IAAIm0B,EAAGsxI,EAAoBhjK,GAAI0xB,EAAGn3B,EAAGyF,MAM9E,MAAMyiD,EAAcphD,EAAMnB,QAE1B,OADAuiD,EAAY4xB,GAASyuF,EAAe,GAC7B,CACHG,aAAcF,EAAa3hK,OAC3BqhD,cACAv2B,WClFD,MCmHDg3I,GAAgB,CAClBzrB,GACAK,GACAE,GACAC,GACAzC,GACA0C,GACAO,GACAI,GACAE,GACAE,GACAE,GACAC,GACAC,GACAG,GACAC,GACAqD,GACAC,GACA,GACA,GACAvF,GACA+G,GACAoB,GACAU,GACA1M,GACA6M,GACAG,GACAxN,GACAyN,GACAoB,GACAyB,GACAS,GACAV,GACA4B,GACAkB,GACA1B,GACAiC,GACAC,GACAC,GACA8B,GACAO,GACAC,GACAY,GACAC,GACAE,GACAC,GACAC,GACAc,GACAH,GACAwB,GACAjb,GACA,GACAga,GACAM,GACAE,GACAE,GACAE,GACAqE,GACAI,GACAC,GACAO,GACAE,GACAC,GACAE,GACAE,GACAa,GACAK,GACAE,GACAvhB,GACAwhB,GACA3R,GACA4R,GACAC,GACAC,GACAzhB,GACA2hB,GACAE,GACAE,GACAE,GACAC,GACAE,GACAC,GACAE,GACAC,GACAO,GACAU,GACAC,GACAC,GACA,GACA,GACAG,GACAP,GACAe,GACAG,GACAE,GACAC,GACAK,GACAQ,GACA7K,GACAwL,GACAC,GACAC,GACAC,GAC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yEAI1Bq1H,2lBAgBlBE,kDAGqBF,mBACS,IAA5BC,8aAiBFC,yBACqC,IAA5BD,obAeTC,yBACqC,IAA5BD,+eAeTC,6DC9DL,MC6FD,GAAgB,CAClB0O,GACAE,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAxJ,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAmC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAkC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACAe,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA0B,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GDpPoC,CACpC18L,WAAYwU,GACZW,YAAa,QACb0O,WA3DG,SAA4BxpB,GAC/B,MAAM,OAAEgd,EAAM,QAAExY,EAAO,MAAEkkB,GAAU1oB,GAC7B,EAAEwG,EAAC,WAAEi3D,GAAezgD,GACpB,YAAE0gD,GAAgBh1C,EAClBynB,EAAQ3pC,EAAEjB,MAAM/G,OAChB47J,EAAY,GAClB,IAAInwJ,EAAO,EACX,MAAMivE,EAAc,GAAgC,CAACjvE,GAAOkmC,GAC5D,IAAI8pH,EAAYzzJ,EACG,MAAf0yE,IACA+gF,EAAY,GAAU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ACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,E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","file":"bundle.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","module.exports = require(\"regenerator-runtime\");\n","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport const EPSILON_FLOAT32 = 1e-7;\nexport const EPSILON_FLOAT16 = 1e-4;\n/** Convenient class for storing tensor-related data. */\nexport class DataStorage {\n constructor(backend, dataMover) {\n this.backend = backend;\n this.dataMover = dataMover;\n this.data = new WeakMap();\n this.dataIdsCount = 0;\n }\n get(dataId) {\n if (!this.data.has(dataId)) {\n this.dataMover.moveData(this.backend, dataId);\n }\n return this.data.get(dataId);\n }\n set(dataId, value) {\n this.dataIdsCount++;\n this.data.set(dataId, value);\n }\n has(dataId) {\n return this.data.has(dataId);\n }\n delete(dataId) {\n this.dataIdsCount--;\n return this.data.delete(dataId);\n }\n numDataIds() {\n return this.dataIdsCount;\n }\n}\n/**\n * The interface that defines the kernels that should be implemented when\n * adding a new backend. New backends don't need to implement every one of the\n * methods, this can be done gradually (throw an error for unimplemented\n * methods).\n */\nexport class KernelBackend {\n refCount(dataId) {\n return notYetImplemented('refCount');\n }\n incRef(dataId) {\n return notYetImplemented('incRef');\n }\n timerAvailable() {\n return true;\n }\n time(f) {\n return notYetImplemented('time');\n }\n read(dataId) {\n return notYetImplemented('read');\n }\n readSync(dataId) {\n return notYetImplemented('readSync');\n }\n numDataIds() {\n return notYetImplemented('numDataIds');\n }\n disposeData(dataId, force) {\n return notYetImplemented('disposeData');\n }\n write(values, shape, dtype) {\n return notYetImplemented('write');\n }\n move(dataId, values, shape, dtype, refCount) {\n return notYetImplemented('move');\n }\n memory() {\n return notYetImplemented('memory');\n }\n /** Returns the highest precision for floats in bits (e.g. 16 or 32) */\n floatPrecision() {\n return notYetImplemented('floatPrecision');\n }\n /** Returns the smallest representable number. */\n epsilon() {\n return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;\n }\n dispose() {\n return notYetImplemented('dispose');\n }\n}\nfunction notYetImplemented(kernelName) {\n throw new Error(`'${kernelName}' not yet implemented or not found in the registry. ` +\n `This kernel may not be supported by the tfjs backend you have chosen`);\n}\n//# sourceMappingURL=backend.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Shuffles the array in-place using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1, 2, 3, 4, 5];\n * tf.util.shuffle(a);\n * console.log(a);\n * ```\n *\n * @param array The array to shuffle in-place.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffle(array) {\n let counter = array.length;\n let temp = 0;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element with it\n temp = array[counter];\n array[counter] = array[index];\n array[index] = temp;\n }\n}\n/**\n * Shuffles two arrays in-place the same way using Fisher-Yates algorithm.\n *\n * ```js\n * const a = [1,2,3,4,5];\n * const b = [11,22,33,44,55];\n * tf.util.shuffleCombo(a, b);\n * console.log(a, b);\n * ```\n *\n * @param array The first array to shuffle in-place.\n * @param array2 The second array to shuffle in-place with the same permutation\n * as the first array.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\n// tslint:disable-next-line:no-any\nexport function shuffleCombo(array, \n// tslint:disable-next-line:no-any\narray2) {\n if (array.length !== array2.length) {\n throw new Error(`Array sizes must match to be shuffled together ` +\n `First array length was ${array.length}` +\n `Second array length was ${array2.length}`);\n }\n let counter = array.length;\n let temp, temp2;\n let index = 0;\n // While there are elements in the array\n while (counter > 0) {\n // Pick a random index\n index = (Math.random() * counter) | 0;\n // Decrease counter by 1\n counter--;\n // And swap the last element of each array with it\n temp = array[counter];\n temp2 = array2[counter];\n array[counter] = array[index];\n array2[counter] = array2[index];\n array[index] = temp;\n array2[index] = temp2;\n }\n}\n/** Clamps a value to a specified range. */\nexport function clamp(min, x, max) {\n return Math.max(min, Math.min(x, max));\n}\nexport function nearestLargerEven(val) {\n return val % 2 === 0 ? val : val + 1;\n}\nexport function sum(arr) {\n let sum = 0;\n for (let i = 0; i < arr.length; i++) {\n sum += arr[i];\n }\n return sum;\n}\n/**\n * Returns a sample from a uniform [a, b) distribution.\n *\n * @param a The minimum support (inclusive).\n * @param b The maximum support (exclusive).\n * @return A pseudorandom number on the half-open interval [a,b).\n */\nexport function randUniform(a, b) {\n const r = Math.random();\n return (b * r) + (1 - r) * a;\n}\n/** Returns the squared Euclidean distance between two vectors. */\nexport function distSquared(a, b) {\n let result = 0;\n for (let i = 0; i < a.length; i++) {\n const diff = Number(a[i]) - Number(b[i]);\n result += diff * diff;\n }\n return result;\n}\n/**\n * Asserts that the expression is true. Otherwise throws an error with the\n * provided message.\n *\n * ```js\n * const x = 2;\n * tf.util.assert(x === 2, 'x is not 2');\n * ```\n *\n * @param expr The expression to assert (as a boolean).\n * @param msg A function that returns the message to report when throwing an\n * error. We use a function for performance reasons.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function assert(expr, msg) {\n if (!expr) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\nexport function assertShapesMatch(shapeA, shapeB, errorMessagePrefix = '') {\n assert(arraysEqual(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);\n}\nexport function assertNonNull(a) {\n assert(a != null, () => `The input to the tensor constructor must be a non-null value.`);\n}\n// NOTE: We explicitly type out what T extends instead of any so that\n// util.flatten on a nested array of number doesn't try to infer T as a\n// number[][], causing us to explicitly type util.flatten().\n/**\n * Flattens an arbitrarily nested array.\n *\n * ```js\n * const a = [[1, 2], [3, 4], [5, [6, [7]]]];\n * const flat = tf.util.flatten(a);\n * console.log(flat);\n * ```\n *\n * @param arr The nested array to flatten.\n * @param result The destination array which holds the elements.\n * @param skipTypedArray If true, avoids flattening the typed arrays. Defaults\n * to false.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function flatten(arr, result = [], skipTypedArray = false) {\n if (result == null) {\n result = [];\n }\n if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {\n for (let i = 0; i < arr.length; ++i) {\n flatten(arr[i], result, skipTypedArray);\n }\n }\n else {\n result.push(arr);\n }\n return result;\n}\n/**\n * Returns the size (number of elements) of the tensor given its shape.\n *\n * ```js\n * const shape = [3, 4, 2];\n * const size = tf.util.sizeFromShape(shape);\n * console.log(size);\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function sizeFromShape(shape) {\n if (shape.length === 0) {\n // Scalar.\n return 1;\n }\n let size = shape[0];\n for (let i = 1; i < shape.length; i++) {\n size *= shape[i];\n }\n return size;\n}\nexport function isScalarShape(shape) {\n return shape.length === 0;\n}\nexport function arraysEqual(n1, n2) {\n if (n1 === n2) {\n return true;\n }\n if (n1 == null || n2 == null) {\n return false;\n }\n if (n1.length !== n2.length) {\n return false;\n }\n for (let i = 0; i < n1.length; i++) {\n if (n1[i] !== n2[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isInt(a) {\n return a % 1 === 0;\n}\nexport function tanh(x) {\n // tslint:disable-next-line:no-any\n if (Math.tanh != null) {\n // tslint:disable-next-line:no-any\n return Math.tanh(x);\n }\n if (x === Infinity) {\n return 1;\n }\n else if (x === -Infinity) {\n return -1;\n }\n else {\n const e2x = Math.exp(2 * x);\n return (e2x - 1) / (e2x + 1);\n }\n}\nexport function sizeToSquarishShape(size) {\n const width = Math.ceil(Math.sqrt(size));\n return [width, Math.ceil(size / width)];\n}\n/**\n * Creates a new array with randomized indicies to a given quantity.\n *\n * ```js\n * const randomTen = tf.util.createShuffledIndices(10);\n * console.log(randomTen);\n * ```\n *\n * @param number Quantity of how many shuffled indicies to create.\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function createShuffledIndices(n) {\n const shuffledIndices = new Uint32Array(n);\n for (let i = 0; i < n; ++i) {\n shuffledIndices[i] = i;\n }\n shuffle(shuffledIndices);\n return shuffledIndices;\n}\nexport function rightPad(a, size) {\n if (size <= a.length) {\n return a;\n }\n return a + ' '.repeat(size - a.length);\n}\nexport function repeatedTry(checkFn, delayFn = (counter) => 0, maxCounter) {\n return new Promise((resolve, reject) => {\n let tryCount = 0;\n const tryFn = () => {\n if (checkFn()) {\n resolve();\n return;\n }\n tryCount++;\n const nextBackoff = delayFn(tryCount);\n if (maxCounter != null && tryCount >= maxCounter) {\n reject();\n return;\n }\n setTimeout(tryFn, nextBackoff);\n };\n tryFn();\n });\n}\n/**\n * Given the full size of the array and a shape that may contain -1 as the\n * implicit dimension, returns the inferred shape where -1 is replaced.\n * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].\n *\n * @param shape The shape, which may contain -1 in some dimension.\n * @param size The full size (number of elements) of the array.\n * @return The inferred shape where -1 is replaced with the inferred size.\n */\nexport function inferFromImplicitShape(shape, size) {\n let shapeProd = 1;\n let implicitIdx = -1;\n for (let i = 0; i < shape.length; ++i) {\n if (shape[i] >= 0) {\n shapeProd *= shape[i];\n }\n else if (shape[i] === -1) {\n if (implicitIdx !== -1) {\n throw Error(`Shapes can only have 1 implicit size. ` +\n `Found -1 at dim ${implicitIdx} and dim ${i}`);\n }\n implicitIdx = i;\n }\n else if (shape[i] < 0) {\n throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);\n }\n }\n if (implicitIdx === -1) {\n if (size > 0 && size !== shapeProd) {\n throw Error(`Size(${size}) must match the product of shape ${shape}`);\n }\n return shape;\n }\n if (shapeProd === 0) {\n throw Error(`Cannot infer the missing size in [${shape}] when ` +\n `there are 0 elements`);\n }\n if (size % shapeProd !== 0) {\n throw Error(`The implicit shape can't be a fractional number. ` +\n `Got ${size} / ${shapeProd}`);\n }\n const newShape = shape.slice();\n newShape[implicitIdx] = size / shapeProd;\n return newShape;\n}\nexport function parseAxisParam(axis, shape) {\n const rank = shape.length;\n // Normalize input\n axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);\n // Check for valid range\n assert(axis.every(ax => ax >= -rank && ax < rank), () => `All values in axis param must be in range [-${rank}, ${rank}) but ` +\n `got axis ${axis}`);\n // Check for only integers\n assert(axis.every(ax => isInt(ax)), () => `All values in axis param must be integers but ` +\n `got axis ${axis}`);\n // Handle negative axis.\n return axis.map(a => a < 0 ? rank + a : a);\n}\n/** Reduces the shape by removing all dimensions of shape 1. */\nexport function squeezeShape(shape, axis) {\n const newShape = [];\n const keptDims = [];\n const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;\n const axes = (axis == null || isEmptyArray) ?\n null :\n parseAxisParam(axis, shape).sort();\n let j = 0;\n for (let i = 0; i < shape.length; ++i) {\n if (axes != null) {\n if (axes[j] === i && shape[i] !== 1) {\n throw new Error(`Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);\n }\n if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n if (axes[j] <= i) {\n j++;\n }\n }\n if (shape[i] !== 1) {\n newShape.push(shape[i]);\n keptDims.push(i);\n }\n }\n return { newShape, keptDims };\n}\nexport function getTypedArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function getArrayFromDType(dtype, size) {\n let values = null;\n if (dtype == null || dtype === 'float32') {\n values = new Float32Array(size);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(size);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(size);\n }\n else if (dtype === 'string') {\n values = new Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n return values;\n}\nexport function checkConversionForErrors(vals, dtype) {\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);\n }\n }\n}\n/** Returns true if the dtype is valid. */\nexport function isValidDtype(dtype) {\n return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' ||\n dtype === 'int32' || dtype === 'string';\n}\n/**\n * Returns true if the new type can't encode the old type without loss of\n * precision.\n */\nexport function hasEncodingLoss(oldType, newType) {\n if (newType === 'complex64') {\n return false;\n }\n if (newType === 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {\n return false;\n }\n if (newType === 'bool' && oldType === 'bool') {\n return false;\n }\n return true;\n}\nexport function isTypedArray(a) {\n return a instanceof Float32Array || a instanceof Int32Array ||\n a instanceof Uint8Array;\n}\nexport function bytesPerElement(dtype) {\n if (dtype === 'float32' || dtype === 'int32') {\n return 4;\n }\n else if (dtype === 'complex64') {\n return 8;\n }\n else if (dtype === 'bool') {\n return 1;\n }\n else {\n throw new Error(`Unknown dtype ${dtype}`);\n }\n}\n/**\n * Returns the approximate number of bytes allocated in the string array - 2\n * bytes per character. Computing the exact bytes for a native string in JS is\n * not possible since it depends on the encoding of the html page that serves\n * the website.\n */\nexport function bytesFromStringArray(arr) {\n if (arr == null) {\n return 0;\n }\n let bytes = 0;\n arr.forEach(x => bytes += x.length);\n return bytes;\n}\n/** Returns true if the value is a string. */\nexport function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\nexport function isBoolean(value) {\n return typeof value === 'boolean';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function inferDtype(values) {\n if (Array.isArray(values)) {\n return inferDtype(values[0]);\n }\n if (values instanceof Float32Array) {\n return 'float32';\n }\n else if (values instanceof Int32Array || values instanceof Uint8Array) {\n return 'int32';\n }\n else if (isNumber(values)) {\n return 'float32';\n }\n else if (isString(values)) {\n return 'string';\n }\n else if (isBoolean(values)) {\n return 'bool';\n }\n return 'float32';\n}\nexport function isFunction(f) {\n return !!(f && f.constructor && f.call && f.apply);\n}\nexport function nearestDivisor(size, start) {\n for (let i = start; i < size; ++i) {\n if (size % i === 0) {\n return i;\n }\n }\n return size;\n}\nexport function computeStrides(shape) {\n const rank = shape.length;\n if (rank < 2) {\n return [];\n }\n // Last dimension has implicit stride of 1, thus having D-1 (instead of D)\n // strides.\n const strides = new Array(rank - 1);\n strides[rank - 2] = shape[rank - 1];\n for (let i = rank - 3; i >= 0; --i) {\n strides[i] = strides[i + 1] * shape[i + 1];\n }\n return strides;\n}\nfunction createNestedArray(offset, shape, a) {\n const ret = new Array();\n if (shape.length === 1) {\n const d = shape[0];\n for (let i = 0; i < d; i++) {\n ret[i] = a[offset + i];\n }\n }\n else {\n const d = shape[0];\n const rest = shape.slice(1);\n const len = rest.reduce((acc, c) => acc * c);\n for (let i = 0; i < d; i++) {\n ret[i] = createNestedArray(offset + i * len, rest, a);\n }\n }\n return ret;\n}\n// Provide a nested array of TypedArray in given shape.\nexport function toNestedArray(shape, a) {\n if (shape.length === 0) {\n // Scalar type should return a single number.\n return a[0];\n }\n const size = shape.reduce((acc, c) => acc * c);\n if (size === 0) {\n // A tensor with shape zero should be turned into empty list.\n return [];\n }\n if (size !== a.length) {\n throw new Error(`[${shape}] does not match the input size ${a.length}.`);\n }\n return createNestedArray(0, shape, a);\n}\nexport function makeOnesTypedArray(size, dtype) {\n const array = makeZerosTypedArray(size, dtype);\n for (let i = 0; i < array.length; i++) {\n array[i] = 1;\n }\n return array;\n}\nexport function makeZerosTypedArray(size, dtype) {\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(size);\n }\n else if (dtype === 'int32') {\n return new Int32Array(size);\n }\n else if (dtype === 'bool') {\n return new Uint8Array(size);\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Make nested `TypedArray` filled with zeros.\n * @param shape The shape information for the nested array.\n * @param dtype dtype of the array element.\n */\nexport function makeZerosNestedTypedArray(shape, dtype) {\n const size = shape.reduce((prev, curr) => prev * curr, 1);\n if (dtype == null || dtype === 'float32') {\n return toNestedArray(shape, new Float32Array(size));\n }\n else if (dtype === 'int32') {\n return toNestedArray(shape, new Int32Array(size));\n }\n else if (dtype === 'bool') {\n return toNestedArray(shape, new Uint8Array(size));\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\nexport function assertNonNegativeIntegerDimensions(shape) {\n shape.forEach(dimSize => {\n assert(Number.isInteger(dimSize) && dimSize >= 0, () => `Tensor must have a shape comprised of positive integers but got ` +\n `shape [${shape}].`);\n });\n}\n/**\n * Computes flat index for a given location (multidimentionsal index) in a\n * Tensor/multidimensional array.\n *\n * @param locs Location in the tensor.\n * @param rank Rank of the tensor.\n * @param strides Tensor strides.\n */\nexport function locToIndex(locs, rank, strides) {\n if (rank === 0) {\n return 0;\n }\n else if (rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += strides[i] * locs[i];\n }\n return index;\n}\n/**\n * Computes the location (multidimensional index) in a tensor/multidimentional\n * array for a given flat index.\n *\n * @param index Index in flat array.\n * @param rank Rank of tensor.\n * @param strides Strides of tensor.\n */\nexport function indexToLoc(index, rank, strides) {\n if (rank === 0) {\n return [];\n }\n else if (rank === 1) {\n return [index];\n }\n const locs = new Array(rank);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / strides[i]);\n index -= locs[i] * strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n}\n/**\n * This method asserts whether an object is a Promise instance.\n * @param object\n */\n// tslint:disable-next-line: no-any\nexport function isPromise(object) {\n // We chose to not use 'obj instanceOf Promise' for two reasons:\n // 1. It only reliably works for es6 Promise, not other Promise\n // implementations.\n // 2. It doesn't work with framework that uses zone.js. zone.js monkey patch\n // the async calls, so it is possible the obj (patched) is comparing to a\n // pre-patched Promise.\n return object && object.then && typeof object.then === 'function';\n}\n//# sourceMappingURL=util_base.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { isPromise } from './util_base';\n// Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.\nconst TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';\n/**\n * The environment contains evaluated flags as well as the registered platform.\n * This is always used as a global singleton and can be retrieved with\n * `tf.env()`.\n *\n * @doc {heading: 'Environment'}\n */\nexport class Environment {\n // tslint:disable-next-line: no-any\n constructor(global) {\n this.global = global;\n this.flags = {};\n this.flagRegistry = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n setPlatform(platformName, platform) {\n if (this.platform != null) {\n console.warn(`Platform ${this.platformName} has already been set. ` +\n `Overwriting the platform with ${platform}.`);\n }\n this.platformName = platformName;\n this.platform = platform;\n }\n registerFlag(flagName, evaluationFn, setHook) {\n this.flagRegistry[flagName] = { evaluationFn, setHook };\n // Override the flag value from the URL. This has to happen here because the\n // environment is initialized before flags get registered.\n if (this.urlFlags[flagName] != null) {\n const flagValue = this.urlFlags[flagName];\n console.warn(`Setting feature override from URL ${flagName}: ${flagValue}.`);\n this.set(flagName, flagValue);\n }\n }\n async getAsync(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n this.flags[flagName] = await this.evaluateFlag(flagName);\n return this.flags[flagName];\n }\n get(flagName) {\n if (flagName in this.flags) {\n return this.flags[flagName];\n }\n const flagValue = this.evaluateFlag(flagName);\n if (isPromise(flagValue)) {\n throw new Error(`Flag ${flagName} cannot be synchronously evaluated. ` +\n `Please use getAsync() instead.`);\n }\n this.flags[flagName] = flagValue;\n return this.flags[flagName];\n }\n getNumber(flagName) {\n return this.get(flagName);\n }\n getBool(flagName) {\n return this.get(flagName);\n }\n getFlags() {\n return this.flags;\n }\n // For backwards compatibility.\n get features() {\n return this.flags;\n }\n set(flagName, value) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot set flag ${flagName} as it has not been registered.`);\n }\n this.flags[flagName] = value;\n if (this.flagRegistry[flagName].setHook != null) {\n this.flagRegistry[flagName].setHook(value);\n }\n }\n evaluateFlag(flagName) {\n if (this.flagRegistry[flagName] == null) {\n throw new Error(`Cannot evaluate flag '${flagName}': no evaluation function found.`);\n }\n return this.flagRegistry[flagName].evaluationFn();\n }\n setFlags(flags) {\n this.flags = Object.assign({}, flags);\n }\n reset() {\n this.flags = {};\n this.urlFlags = {};\n this.populateURLFlags();\n }\n populateURLFlags() {\n if (typeof this.global === 'undefined' ||\n typeof this.global.location === 'undefined' ||\n typeof this.global.location.search === 'undefined') {\n return;\n }\n const urlParams = getQueryParams(this.global.location.search);\n if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {\n const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');\n keyValues.forEach(keyValue => {\n const [key, value] = keyValue.split(':');\n this.urlFlags[key] = parseValue(key, value);\n });\n }\n }\n}\nexport function getQueryParams(queryString) {\n const params = {};\n queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {\n decodeParam(params, t[0], t[1]);\n return t.join('=');\n });\n return params;\n}\nfunction decodeParam(params, name, value) {\n params[decodeURIComponent(name)] = decodeURIComponent(value || '');\n}\nfunction parseValue(flagName, value) {\n value = value.toLowerCase();\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n else if (`${+value}` === value) {\n return +value;\n }\n throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`);\n}\n/**\n * Returns the current environment (a global singleton).\n *\n * The environment object contains the evaluated feature values as well as the\n * active platform.\n *\n * @doc {heading: 'Environment'}\n */\nexport function env() {\n return ENV;\n}\nexport let ENV = null;\nexport function setEnvironmentGlobal(environment) {\n ENV = environment;\n}\n//# sourceMappingURL=environment.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Note that the identifier globalNameSpace is scoped to this module, but will\n// always resolve to the same global object regardless of how the module is\n// resolved.\n// tslint:disable-next-line:no-any\nlet globalNameSpace;\n// tslint:disable-next-line:no-any\nexport function getGlobalNamespace() {\n if (globalNameSpace == null) {\n // tslint:disable-next-line:no-any\n let ns;\n if (typeof (window) !== 'undefined') {\n ns = window;\n }\n else if (typeof (global) !== 'undefined') {\n ns = global;\n }\n else if (typeof (process) !== 'undefined') {\n ns = process;\n }\n else if (typeof (self) !== 'undefined') {\n ns = self;\n }\n else {\n throw new Error('Could not find a global object');\n }\n globalNameSpace = ns;\n }\n return globalNameSpace;\n}\n// tslint:disable-next-line:no-any\nfunction getGlobalMap() {\n const ns = getGlobalNamespace();\n if (ns._tfGlobals == null) {\n ns._tfGlobals = new Map();\n }\n return ns._tfGlobals;\n}\n/**\n * Returns a globally accessible 'singleton' object.\n *\n * @param key the name of the object\n * @param init a function to initialize to initialize this object\n * the first time it is fetched.\n */\nexport function getGlobal(key, init) {\n const globalMap = getGlobalMap();\n if (globalMap.has(key)) {\n return globalMap.get(key);\n }\n else {\n const singleton = init();\n globalMap.set(key, singleton);\n return globalMap.get(key);\n }\n}\n//# sourceMappingURL=global_util.js.map","export const Abs = 'Abs';\nexport const Acos = 'Acos';\nexport const Acosh = 'Acosh';\nexport const Add = 'Add';\nexport const AddN = 'AddN';\nexport const All = 'All';\nexport const Any = 'Any';\nexport const ArgMax = 'ArgMax';\nexport const ArgMin = 'ArgMin';\nexport const Asin = 'Asin';\nexport const Asinh = 'Asinh';\nexport const Atan = 'Atan';\nexport const Atanh = 'Atanh';\nexport const Atan2 = 'Atan2';\nexport const AvgPool = 'AvgPool';\nexport const AvgPoolGrad = 'AvgPoolGrad';\nexport const AvgPool3D = 'AvgPool3D';\nexport const AvgPool3DGrad = 'AvgPool3DGrad';\nexport const BatchMatMul = 'BatchMatMul';\nexport const BatchToSpaceND = 'BatchToSpaceND';\nexport const Bincount = 'Bincount';\nexport const BroadcastTo = 'BroadcastTo';\nexport const Cast = 'Cast';\nexport const Ceil = 'Ceil';\nexport const ClipByValue = 'ClipByValue';\nexport const Complex = 'Complex';\nexport const ComplexAbs = 'ComplexAbs';\nexport const Concat = 'Concat';\nexport const Conv2D = 'Conv2D';\nexport const Conv2DBackpropFilter = 'Conv2DBackpropFilter';\nexport const Conv2DBackpropInput = 'Conv2DBackpropInput';\nexport const Conv3D = 'Conv3D';\nexport const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';\nexport const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';\nexport const Cos = 'Cos';\nexport const Cosh = 'Cosh';\nexport const Cumsum = 'Cumsum';\nexport const CropAndResize = 'CropAndResize';\nexport const DenseBincount = 'DenseBincount';\nexport const DepthToSpace = 'DepthToSpace';\nexport const DepthwiseConv2dNative = 'DepthwiseConv2dNative';\nexport const DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';\nexport const DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';\nexport const Diag = 'Diag';\nexport const Dilation2D = 'Dilation2D';\nexport const Dilation2DBackpropInput = 'Dilation2DBackpropInput';\nexport const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';\nexport const RealDiv = 'RealDiv';\nexport const Elu = 'Elu';\nexport const EluGrad = 'EluGrad';\nexport const Erf = 'Erf';\nexport const Equal = 'Equal';\nexport const Exp = 'Exp';\nexport const ExpandDims = 'ExpandDims';\nexport const Expm1 = 'Expm1';\nexport const FFT = 'FFT';\nexport const Fill = 'Fill';\nexport const FlipLeftRight = 'FlipLeftRight';\nexport const Floor = 'Floor';\nexport const FloorDiv = 'FloorDiv';\nexport const FusedBatchNorm = 'FusedBatchNorm';\nexport const GatherV2 = 'GatherV2';\nexport const GatherNd = 'GatherNd';\nexport const Greater = 'Greater';\nexport const GreaterEqual = 'GreaterEqual';\nexport const Identity = 'Identity';\nexport const IFFT = 'IFFT';\nexport const Imag = 'Imag';\nexport const IsFinite = 'IsFinite';\nexport const IsInf = 'IsInf';\nexport const IsNan = 'IsNan';\nexport const LeakyRelu = 'LeakyRelu';\nexport const Less = 'Less';\nexport const LessEqual = 'LessEqual';\nexport const LinSpace = 'LinSpace';\nexport const Log = 'Log';\nexport const Log1p = 'Log1p';\nexport const LogicalAnd = 'LogicalAnd';\nexport const LogicalNot = 'LogicalNot';\nexport const LogicalOr = 'LogicalOr';\nexport const LogSoftmax = 'LogSoftmax';\nexport const LRN = 'LRN';\nexport const LRNGrad = 'LRNGrad';\nexport const Max = 'Max';\nexport const Maximum = 'Maximum';\nexport const MaxPool = 'MaxPool';\nexport const MaxPoolGrad = 'MaxPoolGrad';\nexport const MaxPool3D = 'MaxPool3D';\nexport const MaxPool3DGrad = 'MaxPool3DGrad';\nexport const MaxPoolWithArgmax = 'MaxPoolWithArgmax';\nexport const Mean = 'Mean';\nexport const Min = 'Min';\nexport const Minimum = 'Minimum';\nexport const MirrorPad = 'MirrorPad';\nexport const Mod = 'Mod';\nexport const Multinomial = 'Multinomial';\nexport const Multiply = 'Multiply';\nexport const Neg = 'Neg';\nexport const NotEqual = 'NotEqual';\nexport const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';\nexport const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';\nexport const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';\nexport const OnesLike = 'OnesLike';\nexport const OneHot = 'OneHot';\nexport const Pack = 'Pack';\nexport const PadV2 = 'PadV2';\nexport const Pool = 'Pool';\nexport const Pow = 'Pow';\nexport const Prelu = 'Prelu';\nexport const Prod = 'Prod';\nexport const Range = 'Range';\nexport const Real = 'Real';\nexport const Reciprocal = 'Reciprocal';\nexport const Relu = 'Relu';\nexport const Reshape = 'Reshape';\nexport const ResizeNearestNeighbor = 'ResizeNearestNeighbor';\nexport const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';\nexport const ResizeBilinear = 'ResizeBilinear';\nexport const ResizeBilinearGrad = 'ResizeBilinearGrad';\nexport const Relu6 = 'Relu6';\nexport const Reverse = 'Reverse';\nexport const Round = 'Round';\nexport const Rsqrt = 'Rsqrt';\nexport const ScatterNd = 'ScatterNd';\nexport const Select = 'Select';\nexport const Selu = 'Selu';\nexport const Slice = 'Slice';\nexport const Sin = 'Sin';\nexport const Sinh = 'Sinh';\nexport const Sign = 'Sign';\nexport const Sigmoid = 'Sigmoid';\nexport const Softplus = 'Softplus';\nexport const Sqrt = 'Sqrt';\nexport const Sum = 'Sum';\nexport const SpaceToBatchND = 'SpaceToBatchND';\nexport const SplitV = 'SplitV';\nexport const Softmax = 'Softmax';\nexport const SquaredDifference = 'SquaredDifference';\nexport const Square = 'Square';\nexport const Sub = 'Sub';\nexport const SparseToDense = 'SparseToDense';\nexport const StridedSlice = 'StridedSlice';\nexport const Tan = 'Tan';\nexport const Tanh = 'Tanh';\nexport const Tile = 'Tile';\nexport const TopK = 'TopK';\nexport const Transform = 'Transform';\nexport const Transpose = 'Transpose';\nexport const Unique = 'Unique';\nexport const Unpack = 'Unpack';\nexport const UnsortedSegmentSum = 'UnsortedSegmentSum';\nexport const ZerosLike = 'ZerosLike';\n/**\n * TensorFlow.js-only kernels\n */\nexport const Step = 'Step';\nexport const FromPixels = 'FromPixels';\nexport const RotateWithOffset = 'RotateWithOffset';\nexport const _FusedMatMul = '_FusedMatMul';\nexport const FusedConv2D = 'FusedConv2D';\nexport const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';\n//# sourceMappingURL=kernel_names.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport { getGlobal } from './global_util';\nconst kernelRegistry = getGlobal('kernelRegistry', () => new Map());\nconst gradRegistry = getGlobal('gradRegistry', () => new Map());\n/**\n * Returns the kernel function (code) associated with the provided names.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n */\nexport function getKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n return kernelRegistry.get(key);\n}\n/**\n * Returns the registered gradient info associated with the provided kernel.\n * @param kernelName The official TF kernel name.\n */\nexport function getGradient(kernelName) {\n return gradRegistry.get(kernelName);\n}\nexport function getKernelsForBackend(backendName) {\n const it = kernelRegistry.entries();\n const result = [];\n while (true) {\n const { done, value } = it.next();\n if (done) {\n break;\n }\n const [key, config] = value;\n const [backend,] = key.split('_');\n if (backend === backendName) {\n result.push(config);\n }\n }\n return result;\n}\n/**\n * Registers the function (forward pass) for the kernel in a global registry.\n *\n * @param config A config object with the following properties:\n * - `kernelName` The official name of the kernel.\n * - `backendName` The official name of the backend.\n * - `kernelFunc` The function to run during the forward pass of the kernel.\n * - `setupFunc` Optional. Gets called once, after the backend initializes.\n * - `disposeFunc` Optional. Gets called once, right before the backend is\n * disposed.\n */\nexport function registerKernel(config) {\n const { kernelName, backendName } = config;\n const key = makeKey(kernelName, backendName);\n if (kernelRegistry.has(key)) {\n console.warn(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is already registered`);\n }\n kernelRegistry.set(key, config);\n}\n/**\n * Registers a gradient function for a given kernel in the global registry,\n * to be used during the back-propagation of that kernel.\n *\n * @param config An object with the following properties:\n * - `kernelName` The name of the kernel that the gradient function is for.\n * - `gradFunc` The function to run during back-propagation.\n */\nexport function registerGradient(config) {\n const { kernelName } = config;\n if (gradRegistry.has(kernelName)) {\n // TODO (yassogba) after 3.0 assess whether we need to keep this gated\n // to debug mode.\n if (env().getBool('DEBUG')) {\n console.warn(`Overriding the gradient for '${kernelName}'`);\n }\n }\n gradRegistry.set(kernelName, config);\n}\n/**\n * Removes the kernel function from the registry.\n *\n * @param kernelName The official name of the kernel.\n * @param backendName The official name of the backend.\n *\n */\nexport function unregisterKernel(kernelName, backendName) {\n const key = makeKey(kernelName, backendName);\n if (!kernelRegistry.has(key)) {\n throw new Error(`The kernel '${kernelName}' for backend ` +\n `'${backendName}' is not registered`);\n }\n kernelRegistry.delete(key);\n}\n/** Removes the registered gradient from the global registry. */\nexport function unregisterGradient(kernelName) {\n if (!gradRegistry.has(kernelName)) {\n throw new Error(`The gradient '${kernelName}' for backend is not registered`);\n }\n gradRegistry.delete(kernelName);\n}\n/**\n * Finds kernels that have already been registered to a backend and re-registers\n * them for a new backend. Useful for registering custom backends.\n * @param registeredBackendName Already registered backend.\n * @param newBackendName New backend.\n */\nexport function copyRegisteredKernels(registeredBackendName, newBackendName) {\n const kernels = getKernelsForBackend(registeredBackendName);\n kernels.forEach(kernelConfig => {\n const newKernelConfig = Object.assign({}, kernelConfig, { backendName: newBackendName });\n registerKernel(newKernelConfig);\n });\n}\nfunction makeKey(kernelName, backendName) {\n return `${backendName}_${kernelName}`;\n}\n//# sourceMappingURL=kernel_registry.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as base from './util_base';\nexport * from './util_base';\n/**\n * Create typed array for scalar value. Used for storing in `DataStorage`.\n */\nexport function createScalarValue(value, dtype) {\n if (dtype === 'string') {\n return encodeString(value);\n }\n return toTypedArray([value], dtype);\n}\nfunction noConversionNeeded(a, dtype) {\n return (a instanceof Float32Array && dtype === 'float32') ||\n (a instanceof Int32Array && dtype === 'int32') ||\n (a instanceof Uint8Array && dtype === 'bool');\n}\nexport function toTypedArray(a, dtype) {\n if (dtype === 'string') {\n throw new Error('Cannot convert a string[] to a TypedArray');\n }\n if (Array.isArray(a)) {\n a = base.flatten(a);\n }\n if (env().getBool('DEBUG')) {\n base.checkConversionForErrors(a, dtype);\n }\n if (noConversionNeeded(a, dtype)) {\n return a;\n }\n if (dtype == null || dtype === 'float32' || dtype === 'complex64') {\n return new Float32Array(a);\n }\n else if (dtype === 'int32') {\n return new Int32Array(a);\n }\n else if (dtype === 'bool') {\n const bool = new Uint8Array(a.length);\n for (let i = 0; i < bool.length; ++i) {\n if (Math.round(a[i]) !== 0) {\n bool[i] = 1;\n }\n }\n return bool;\n }\n else {\n throw new Error(`Unknown data type ${dtype}`);\n }\n}\n/**\n * Returns the current high-resolution time in milliseconds relative to an\n * arbitrary time in the past. It works across different platforms (node.js,\n * browsers).\n *\n * ```js\n * console.log(tf.util.now());\n * ```\n *\n * @doc {heading: 'Util', namespace: 'util'}\n */\nexport function now() {\n return env().platform.now();\n}\n/**\n * Returns a platform-specific implementation of\n * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n *\n * If `fetch` is defined on the global object (`window`, `process`, etc.),\n * `tf.util.fetch` returns that function.\n *\n * If not, `tf.util.fetch` returns a platform-specific solution.\n *\n * ```js\n * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');\n * // handle response\n * ```\n *\n * @doc {heading: 'Util'}\n */\nexport function fetch(path, requestInits) {\n return env().platform.fetch(path, requestInits);\n}\n/**\n * Encodes the provided string into bytes using the provided encoding scheme.\n *\n * @param s The string to encode.\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function encodeString(s, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.encode(s, encoding);\n}\n/**\n * Decodes the provided bytes into a string using the provided encoding scheme.\n * @param bytes The bytes to decode.\n *\n * @param encoding The encoding scheme. Defaults to utf-8.\n *\n * @doc {heading: 'Util'}\n */\nexport function decodeString(bytes, encoding = 'utf-8') {\n encoding = encoding || 'utf-8';\n return env().platform.decode(bytes, encoding);\n}\n//# sourceMappingURL=util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from './environment';\nimport * as util from './util';\nexport class Profiler {\n constructor(backendTimer, logger) {\n this.backendTimer = backendTimer;\n this.logger = logger;\n if (logger == null) {\n this.logger = new Logger();\n }\n }\n profileKernel(kernelName, inputs, f) {\n let outputs;\n const holdResultWrapperFn = () => {\n outputs = f();\n };\n let timer;\n const start = util.now();\n if (this.backendTimer.timerAvailable()) {\n timer = this.backendTimer.time(holdResultWrapperFn);\n }\n else {\n holdResultWrapperFn();\n for (const output of outputs) {\n output.dataSync();\n }\n timer = Promise.resolve({ kernelMs: util.now() - start });\n }\n if (env().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {\n for (let i = 0; i < outputs.length; i++) {\n const output = outputs[i];\n // Dangling promise here because we don't want to propagate up\n // asynchronicity.\n output.data().then(tensorVals => {\n checkComputationForErrors(tensorVals, output.dtype, kernelName);\n });\n }\n }\n const kernelProfile = {\n kernelName,\n outputs,\n inputs,\n timeMs: timer.then(timing => timing.kernelMs),\n extraInfo: timer.then(timing => timing.getExtraProfileInfo != null ?\n timing.getExtraProfileInfo() :\n '')\n };\n return kernelProfile;\n }\n logKernelProfile(kernelProfile) {\n const { kernelName, outputs, timeMs, inputs, extraInfo } = kernelProfile;\n outputs.forEach(result => {\n Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {\n this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);\n });\n });\n }\n}\nexport function checkComputationForErrors(vals, dtype, kernelName) {\n if (dtype !== 'float32') {\n // Only floating point computations will generate NaN values\n return false;\n }\n for (let i = 0; i < vals.length; i++) {\n const num = vals[i];\n if (isNaN(num) || !isFinite(num)) {\n // Throwing custom exception so behavior is testable.\n console.warn(`Found ${num} in the result of '${kernelName}'`);\n return true;\n }\n }\n return false;\n}\nexport class Logger {\n logKernelProfile(name, result, vals, timeMs, inputs, extraInfo) {\n const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) :\n timeMs['error'];\n const paddedName = util.rightPad(name, 25);\n const rank = result.rank;\n const size = result.size;\n const shape = util.rightPad(result.shape.toString(), 14);\n let inputShapesDescription = '';\n for (const name in inputs) {\n const input = inputs[name];\n if (input != null) {\n // The input might be a non-tensor (e.g HTMLImageElement), in which case\n // we claim the output shape as input shape.\n const inputShape = input.shape || result.shape;\n const inputRank = inputShape.length;\n inputShapesDescription +=\n `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;\n }\n }\n console.log(`%c${paddedName}\\t%c${time}\\t%c${rank}D ${shape}\\t%c${size}\\t%c${inputShapesDescription}\\t%c${extraInfo}`, 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');\n }\n}\n//# sourceMappingURL=profiler.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { computeStrides, isString, rightPad, sizeFromShape } from './util';\n// Maximum number of values before we decide to show ellipsis.\nconst FORMAT_LIMIT_NUM_VALS = 20;\n// Number of first and last values to show when displaying a, b,...,y, z.\nconst FORMAT_NUM_FIRST_LAST_VALS = 3;\n// Number of significant digits to show.\nconst FORMAT_NUM_SIG_DIGITS = 7;\nexport function tensorToString(vals, shape, dtype, verbose) {\n const strides = computeStrides(shape);\n const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);\n const rank = shape.length;\n const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);\n const lines = ['Tensor'];\n if (verbose) {\n lines.push(` dtype: ${dtype}`);\n lines.push(` rank: ${rank}`);\n lines.push(` shape: [${shape}]`);\n lines.push(` values:`);\n }\n lines.push(valsLines.map(l => ' ' + l).join('\\n'));\n return lines.join('\\n');\n}\nfunction computeMaxSizePerColumn(vals, shape, dtype, strides) {\n const n = sizeFromShape(shape);\n const numCols = strides[strides.length - 1];\n const padPerCol = new Array(numCols).fill(0);\n const rank = shape.length;\n const valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;\n if (rank > 1) {\n for (let row = 0; row < n / numCols; row++) {\n const offset = row * numCols;\n for (let j = 0; j < numCols; j++) {\n padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);\n }\n }\n }\n return padPerCol;\n}\nfunction valToString(val, pad, dtype) {\n let valStr;\n if (Array.isArray(val)) {\n valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` +\n `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;\n }\n else if (isString(val)) {\n valStr = `'${val}'`;\n }\n else if (dtype === 'bool') {\n valStr = boolNumToString(val);\n }\n else {\n valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();\n }\n return rightPad(valStr, pad);\n}\nfunction boolNumToString(v) {\n return v === 0 ? 'false' : 'true';\n}\nfunction subTensorToString(vals, shape, dtype, strides, padPerCol, isLast = true) {\n const storagePerElement = dtype === 'complex64' ? 2 : 1;\n const size = shape[0];\n const rank = shape.length;\n if (rank === 0) {\n if (dtype === 'complex64') {\n const complexTuple = createComplexTuples(vals);\n return [valToString(complexTuple[0], 0, dtype)];\n }\n if (dtype === 'bool') {\n return [boolNumToString(vals[0])];\n }\n return [vals[0].toString()];\n }\n if (rank === 1) {\n if (size > FORMAT_LIMIT_NUM_VALS) {\n const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;\n let firstVals = Array.from(vals.slice(0, firstValsSize));\n let lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));\n if (dtype === 'complex64') {\n firstVals = createComplexTuples(firstVals);\n lastVals = createComplexTuples(lastVals);\n }\n return [\n '[' +\n firstVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ', ..., ' +\n lastVals\n .map((x, i) => valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype))\n .join(', ') +\n ']'\n ];\n }\n const displayVals = dtype === 'complex64' ? createComplexTuples(vals) :\n Array.from(vals);\n return [\n '[' +\n displayVals.map((x, i) => valToString(x, padPerCol[i], dtype))\n .join(', ') +\n ']'\n ];\n }\n // The array is rank 2 or more.\n const subshape = shape.slice(1);\n const substrides = strides.slice(1);\n const stride = strides[0] * storagePerElement;\n const lines = [];\n if (size > FORMAT_LIMIT_NUM_VALS) {\n for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */));\n }\n lines.push('...');\n for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n else {\n for (let i = 0; i < size; i++) {\n const start = i * stride;\n const end = start + stride;\n lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */));\n }\n }\n const sep = rank === 2 ? ',' : '';\n lines[0] = '[' + lines[0] + sep;\n for (let i = 1; i < lines.length - 1; i++) {\n lines[i] = ' ' + lines[i] + sep;\n }\n let newLineSep = ',\\n';\n for (let i = 2; i < rank; i++) {\n newLineSep += '\\n';\n }\n lines[lines.length - 1] =\n ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);\n return lines;\n}\nfunction createComplexTuples(vals) {\n const complexTuples = [];\n for (let i = 0; i < vals.length; i += 2) {\n complexTuples.push([vals[i], vals[i + 1]]);\n }\n return complexTuples;\n}\n//# sourceMappingURL=tensor_format.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { getGlobal } from './global_util';\nimport { tensorToString } from './tensor_format';\nimport * as util from './util';\nimport { computeStrides, toNestedArray } from './util';\n/**\n * A mutable object, similar to `tf.Tensor`, that allows users to set values\n * at locations before converting to an immutable `tf.Tensor`.\n *\n * See `tf.buffer` for creating a tensor buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class TensorBuffer {\n constructor(shape, dtype, values) {\n this.dtype = dtype;\n this.shape = shape.slice();\n this.size = util.sizeFromShape(shape);\n if (values != null) {\n const n = values.length;\n util.assert(n === this.size, () => `Length of values '${n}' does not match the size ` +\n `inferred by the shape '${this.size}'.`);\n }\n if (dtype === 'complex64') {\n throw new Error(`complex64 dtype TensorBuffers are not supported. Please create ` +\n `a TensorBuffer for the real and imaginary parts separately and ` +\n `call tf.complex(real, imag).`);\n }\n this.values = values || util.getArrayFromDType(dtype, this.size);\n this.strides = computeStrides(shape);\n }\n /**\n * Sets a value in the buffer at a given location.\n *\n * @param value The value to set.\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n set(value, ...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n util.assert(locs.length === this.rank, () => `The number of provided coordinates (${locs.length}) must ` +\n `match the rank (${this.rank})`);\n const index = this.locToIndex(locs);\n this.values[index] = value;\n }\n /**\n * Returns the value in the buffer at the provided location.\n *\n * @param locs The location indices.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n get(...locs) {\n if (locs.length === 0) {\n locs = [0];\n }\n let i = 0;\n for (const loc of locs) {\n if (loc < 0 || loc >= this.shape[i]) {\n const msg = `Requested out of range element at ${locs}. ` +\n ` Buffer shape=${this.shape}`;\n throw new Error(msg);\n }\n i++;\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return this.values[index];\n }\n locToIndex(locs) {\n if (this.rank === 0) {\n return 0;\n }\n else if (this.rank === 1) {\n return locs[0];\n }\n let index = locs[locs.length - 1];\n for (let i = 0; i < locs.length - 1; ++i) {\n index += this.strides[i] * locs[i];\n }\n return index;\n }\n indexToLoc(index) {\n if (this.rank === 0) {\n return [];\n }\n else if (this.rank === 1) {\n return [index];\n }\n const locs = new Array(this.shape.length);\n for (let i = 0; i < locs.length - 1; ++i) {\n locs[i] = Math.floor(index / this.strides[i]);\n index -= locs[i] * this.strides[i];\n }\n locs[locs.length - 1] = index;\n return locs;\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Creates an immutable `tf.Tensor` object from the buffer.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\n toTensor() {\n return trackerFn().makeTensor(this.values, this.shape, this.dtype);\n }\n}\n// For tracking tensor creation and disposal.\nlet trackerFn = null;\n// Used by chaining methods to call into ops.\nlet opHandler = null;\n// Used to warn about deprecated methods.\nlet deprecationWarningFn = null;\n// This here so that we can use this method on dev branches and keep the\n// functionality at master.\n// tslint:disable-next-line:no-unused-expression\n[deprecationWarningFn];\n/**\n * An external consumer can register itself as the tensor tracker. This way\n * the Tensor class can notify the tracker for every tensor created and\n * disposed.\n */\nexport function setTensorTracker(fn) {\n trackerFn = fn;\n}\n/**\n * An external consumer can register itself as the op handler. This way the\n * Tensor class can have chaining methods that call into ops via the op\n * handler.\n */\nexport function setOpHandler(handler) {\n opHandler = handler;\n}\n/**\n * Sets the deprecation warning function to be used by this file. This way the\n * Tensor class can be a leaf but still use the environment.\n */\nexport function setDeprecationWarningFn(fn) {\n deprecationWarningFn = fn;\n}\n/**\n * A `tf.Tensor` object represents an immutable, multidimensional array of\n * numbers that has a shape and a data type.\n *\n * See `tf.tensor` for details on how to create a `tf.Tensor`.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Tensor {\n constructor(shape, dtype, dataId, id) {\n /** Whether this tensor has been globally kept. */\n this.kept = false;\n this.isDisposedInternal = false;\n this.shape = shape.slice();\n this.dtype = dtype || 'float32';\n this.size = util.sizeFromShape(shape);\n this.strides = computeStrides(shape);\n this.dataId = dataId;\n this.id = id;\n this.rankType = (this.rank < 5 ? this.rank.toString() : 'higher');\n }\n get rank() {\n return this.shape.length;\n }\n /**\n * Returns a promise of `tf.TensorBuffer` that holds the underlying data.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async buffer() {\n const vals = await this.data();\n return opHandler.buffer(this.shape, this.dtype, vals);\n }\n /**\n * Returns a `tf.TensorBuffer` that holds the underlying data.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n bufferSync() {\n return opHandler.buffer(this.shape, this.dtype, this.dataSync());\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * asynchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async array() {\n const vals = await this.data();\n return toNestedArray(this.shape, vals);\n }\n /**\n * Returns the tensor data as a nested array. The transfer of data is done\n * synchronously.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n arraySync() {\n return toNestedArray(this.shape, this.dataSync());\n }\n /**\n * Asynchronously downloads the values from the `tf.Tensor`. Returns a\n * promise of `TypedArray` that resolves when the computation has finished.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n async data() {\n this.throwIfDisposed();\n const data = trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n const bytes = await data;\n try {\n return bytes.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /**\n * Synchronously downloads the values from the `tf.Tensor`. This blocks the\n * UI thread until the values are ready, which can cause performance issues.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dataSync() {\n this.throwIfDisposed();\n const data = trackerFn().readSync(this.dataId);\n if (this.dtype === 'string') {\n try {\n return data.map(b => util.decodeString(b));\n }\n catch (_a) {\n throw new Error('Failed to decode the string bytes into utf-8. ' +\n 'To get the original bytes, call tensor.bytes().');\n }\n }\n return data;\n }\n /** Returns the underlying bytes of the tensor's data. */\n async bytes() {\n this.throwIfDisposed();\n const data = await trackerFn().read(this.dataId);\n if (this.dtype === 'string') {\n return data;\n }\n else {\n return new Uint8Array(data.buffer);\n }\n }\n /**\n * Disposes `tf.Tensor` from memory.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n dispose() {\n if (this.isDisposed) {\n return;\n }\n trackerFn().disposeTensor(this);\n this.isDisposedInternal = true;\n }\n get isDisposed() {\n return this.isDisposedInternal;\n }\n throwIfDisposed() {\n if (this.isDisposed) {\n throw new Error(`Tensor is disposed.`);\n }\n }\n /**\n * Prints the `tf.Tensor`. See `tf.print` for details.\n *\n * @param verbose Whether to print verbose information about the tensor,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n print(verbose = false) {\n return opHandler.print(this, verbose);\n }\n /**\n * Returns a copy of the tensor. See `tf.clone` for details.\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n clone() {\n this.throwIfDisposed();\n return opHandler.clone(this);\n }\n /**\n * Returns a human-readable description of the tensor. Useful for logging.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n toString(verbose = false) {\n const vals = this.dataSync();\n return tensorToString(vals, this.shape, this.dtype, verbose);\n }\n cast(dtype) {\n this.throwIfDisposed();\n return opHandler.cast(this, dtype);\n }\n variable(trainable = true, name, dtype) {\n this.throwIfDisposed();\n return trackerFn().makeVariable(this, trainable, name, dtype);\n }\n}\nObject.defineProperty(Tensor, Symbol.hasInstance, {\n value: (instance) => {\n // Implementation note: we should use properties of the object that will be\n // defined before the constructor body has finished executing (methods).\n // This is because when this code is transpiled by babel, babel will call\n // classCallCheck before the constructor body is run.\n // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.\n return !!instance && instance.data != null && instance.dataSync != null &&\n instance.throwIfDisposed != null;\n }\n});\nexport function getGlobalTensorClass() {\n // Use getGlobal so that we can augment the Tensor class across package\n // boundaries becase the node resolution alg may result in different modules\n // being returned for this file depending on the path they are loaded from.\n return getGlobal('Tensor', () => {\n return Tensor;\n });\n}\n// Global side effect. Cache global reference to Tensor class\ngetGlobalTensorClass();\n/**\n * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\nexport class Variable extends Tensor {\n constructor(initialValue, trainable, name, tensorId) {\n super(initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);\n this.trainable = trainable;\n this.name = name;\n }\n /**\n * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have\n * the same shape and dtype as the old `tf.Tensor`.\n *\n * @param newValue New tensor to be assigned to this variable.\n *\n * @doc {heading: 'Tensors', subheading: 'Classes'}\n */\n assign(newValue) {\n if (newValue.dtype !== this.dtype) {\n throw new Error(`dtype of the new value (${newValue.dtype}) and ` +\n `previous value (${this.dtype}) must match`);\n }\n if (!util.arraysEqual(newValue.shape, this.shape)) {\n throw new Error(`shape of the new value (${newValue.shape}) and ` +\n `previous value (${this.shape}) must match`);\n }\n trackerFn().disposeTensor(this);\n this.dataId = newValue.dataId;\n trackerFn().incRef(this, null /* backend */);\n }\n dispose() {\n trackerFn().disposeVariable(this);\n this.isDisposedInternal = true;\n }\n}\nObject.defineProperty(Variable, Symbol.hasInstance, {\n value: (instance) => {\n return instance instanceof Tensor && instance.assign != null &&\n instance.assign instanceof Function;\n }\n});\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport var Rank;\n(function (Rank) {\n Rank[\"R0\"] = \"R0\";\n Rank[\"R1\"] = \"R1\";\n Rank[\"R2\"] = \"R2\";\n Rank[\"R3\"] = \"R3\";\n Rank[\"R4\"] = \"R4\";\n Rank[\"R5\"] = \"R5\";\n Rank[\"R6\"] = \"R6\";\n})(Rank || (Rank = {}));\n// Looks for upcasting types. Used, for example, in operations with mixed dtype\n// inputs.\nvar UpcastInt32AndMap;\n(function (UpcastInt32AndMap) {\n UpcastInt32AndMap[\"float32\"] = \"float32\";\n UpcastInt32AndMap[\"int32\"] = \"int32\";\n UpcastInt32AndMap[\"bool\"] = \"int32\";\n UpcastInt32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastInt32AndMap || (UpcastInt32AndMap = {}));\nvar UpcastBoolAndMap;\n(function (UpcastBoolAndMap) {\n UpcastBoolAndMap[\"float32\"] = \"float32\";\n UpcastBoolAndMap[\"int32\"] = \"int32\";\n UpcastBoolAndMap[\"bool\"] = \"bool\";\n UpcastBoolAndMap[\"complex64\"] = \"complex64\";\n})(UpcastBoolAndMap || (UpcastBoolAndMap = {}));\nvar UpcastFloat32AndMap;\n(function (UpcastFloat32AndMap) {\n UpcastFloat32AndMap[\"float32\"] = \"float32\";\n UpcastFloat32AndMap[\"int32\"] = \"float32\";\n UpcastFloat32AndMap[\"bool\"] = \"float32\";\n UpcastFloat32AndMap[\"complex64\"] = \"complex64\";\n})(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));\nvar UpcastComplex64AndMap;\n(function (UpcastComplex64AndMap) {\n UpcastComplex64AndMap[\"float32\"] = \"complex64\";\n UpcastComplex64AndMap[\"int32\"] = \"complex64\";\n UpcastComplex64AndMap[\"bool\"] = \"complex64\";\n UpcastComplex64AndMap[\"complex64\"] = \"complex64\";\n})(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));\nconst upcastTypeMap = {\n 'float32': UpcastFloat32AndMap,\n 'int32': UpcastInt32AndMap,\n 'bool': UpcastBoolAndMap,\n 'complex64': UpcastComplex64AndMap\n};\nexport function upcastType(typeA, typeB) {\n if (typeA === 'string' || typeB === 'string') {\n if (typeA === 'string' && typeB === 'string') {\n return 'string';\n }\n throw new Error(`Can not upcast ${typeA} with ${typeB}`);\n }\n return upcastTypeMap[typeA][typeB];\n}\n/** Returns the output type after summation. */\nexport function sumOutType(type) {\n return upcastType(type, 'int32');\n}\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { Tensor } from './tensor';\nimport { upcastType } from './types';\nimport { assert } from './util';\nexport function makeTypesMatch(a, b) {\n if (a.dtype === b.dtype) {\n return [a, b];\n }\n const dtype = upcastType(a.dtype, b.dtype);\n return [a.cast(dtype), b.cast(dtype)];\n}\nexport function assertTypesMatch(a, b) {\n assert(a.dtype === b.dtype, () => `The dtypes of the first(${a.dtype}) and` +\n ` second(${b.dtype}) input must match`);\n}\nexport function isTensorInList(tensor, tensorList) {\n return tensorList.some(x => x.id === tensor.id);\n}\n/**\n * Extracts any `Tensor`s found within the provided object.\n *\n * @param container an object that may be a `Tensor` or may directly contain\n * `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it\n * is safe to pass any object here, except that `Promise`s are not\n * supported.\n * @returns An array of `Tensors` found within the passed object. If the\n * argument is simply a `Tensor', a list containing that `Tensor` is\n * returned. If the object is not a `Tensor` or does not\n * contain `Tensors`, an empty list is returned.\n */\nexport function getTensorsInContainer(result) {\n const list = [];\n const seen = new Set();\n walkTensorContainer(result, list, seen);\n return list;\n}\nfunction walkTensorContainer(container, list, seen) {\n if (container == null) {\n return;\n }\n if (container instanceof Tensor) {\n list.push(container);\n return;\n }\n if (!isIterable(container)) {\n return;\n }\n // Iteration over keys works also for arrays.\n const iterable = container;\n for (const k in iterable) {\n const val = iterable[k];\n if (!seen.has(val)) {\n seen.add(val);\n walkTensorContainer(val, list, seen);\n }\n }\n}\n// tslint:disable-next-line:no-any\nfunction isIterable(obj) {\n return Array.isArray(obj) || typeof obj === 'object';\n}\n//# sourceMappingURL=tensor_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { KernelBackend } from './backends/backend';\nimport { Environment, setEnvironmentGlobal } from './environment';\nimport { getGlobalNamespace } from './global_util';\nimport { Add, Cast, Identity } from './kernel_names';\nimport { getGradient, getKernel, getKernelsForBackend } from './kernel_registry';\nimport { Profiler } from './profiler';\nimport { backpropagateGradients, getFilteredNodesXToY } from './tape';\nimport { setTensorTracker, Tensor, Variable } from './tensor';\nimport { getTensorsInContainer } from './tensor_util';\nimport * as util from './util';\nimport { bytesFromStringArray, makeOnesTypedArray, now, sizeFromShape } from './util';\nfunction isRegisteredKernelInvocation(kernelInvocation) {\n return kernelInvocation.kernelName != null;\n}\nclass EngineState {\n constructor() {\n // Public since optimizers will use it.\n this.registeredVariables = {};\n this.nextTapeNodeId = 0;\n this.numBytes = 0;\n this.numTensors = 0;\n this.numStringTensors = 0;\n this.numDataBuffers = 0;\n // Number of nested tf.grad() statements when computing higher-order\n // gradients. E.g. `1` for first-order gradients and `2` for second-order\n // gradients. Used to track if the tape should be removed after a backprop.\n this.gradientDepth = 0;\n // Number of nested kernel calls. When kernel depth is greater than 1, we turn\n // off the tape.\n this.kernelDepth = 0;\n this.scopeStack = [];\n /**\n * Keeps track of the number of data moves during a kernel execution. We\n * maintain a stack since kernels can call other kernels, recursively.\n */\n this.numDataMovesStack = [];\n this.nextScopeId = 0;\n this.tensorInfo = new WeakMap();\n this.profiling = false;\n this.activeProfile = {\n newBytes: 0,\n newTensors: 0,\n peakBytes: 0,\n kernels: [],\n result: null,\n get kernelNames() {\n return Array.from(new Set(this.kernels.map(k => k.name)));\n }\n };\n }\n dispose() {\n for (const variableName in this.registeredVariables) {\n this.registeredVariables[variableName].dispose();\n }\n }\n}\nexport class Engine {\n constructor(ENV) {\n this.ENV = ENV;\n this.registry = {};\n this.registryFactory = {};\n this.pendingBackendInitId = 0;\n this.state = new EngineState();\n }\n async ready() {\n if (this.pendingBackendInit != null) {\n return this.pendingBackendInit.then(() => { });\n }\n if (this.backendInstance != null) {\n return;\n }\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const success = await this.initializeBackend(backendName).success;\n if (success) {\n await this.setBackend(backendName);\n return;\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n get backend() {\n if (this.pendingBackendInit != null) {\n throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make ` +\n `sure to await tf.ready() or await tf.setBackend() before calling ` +\n `other methods`);\n }\n if (this.backendInstance == null) {\n const { name, asyncInit } = this.initializeBackendsAndReturnBest();\n if (asyncInit) {\n throw new Error(`The highest priority backend '${name}' has not yet been ` +\n `initialized. Make sure to await tf.ready() or ` +\n `await tf.setBackend() before calling other methods`);\n }\n this.setBackend(name);\n }\n return this.backendInstance;\n }\n backendNames() {\n return Object.keys(this.registryFactory);\n }\n findBackend(backendName) {\n if (!(backendName in this.registry)) {\n // If the backend hasn't been initialized but we have a registry entry for\n // it, initialize it and return it.\n if (backendName in this.registryFactory) {\n const { asyncInit } = this.initializeBackend(backendName);\n if (asyncInit) {\n // Backend is not ready yet.\n return null;\n }\n }\n else {\n return null;\n }\n }\n return this.registry[backendName];\n }\n findBackendFactory(backendName) {\n if (!(backendName in this.registryFactory)) {\n return null;\n }\n return this.registryFactory[backendName].factory;\n }\n registerBackend(backendName, factory, priority = 1) {\n if (backendName in this.registryFactory) {\n console.warn(`${backendName} backend was already registered. ` +\n `Reusing existing backend factory.`);\n return false;\n }\n this.registryFactory[backendName] = { factory, priority };\n return true;\n }\n async setBackend(backendName) {\n if (this.registryFactory[backendName] == null) {\n throw new Error(`Backend name '${backendName}' not found in registry`);\n }\n this.backendName = backendName;\n if (this.registry[backendName] == null) {\n this.backendInstance = null;\n const { success, asyncInit } = this.initializeBackend(backendName);\n const result = asyncInit ? await success : success;\n if (!result) {\n return false;\n }\n }\n this.backendInstance = this.registry[backendName];\n this.setupRegisteredKernels();\n // Reset the profiler.\n this.profiler = new Profiler(this.backendInstance);\n return true;\n }\n setupRegisteredKernels() {\n const kernels = getKernelsForBackend(this.backendName);\n kernels.forEach(kernel => {\n if (kernel.setupFunc != null) {\n kernel.setupFunc(this.backendInstance);\n }\n });\n }\n disposeRegisteredKernels(backendName) {\n const kernels = getKernelsForBackend(backendName);\n kernels.forEach(kernel => {\n if (kernel.disposeFunc != null) {\n kernel.disposeFunc(this.registry[backendName]);\n }\n });\n }\n /**\n * Initializes a backend by looking up the backend name in the factory\n * registry and calling the factory method. Returns a boolean representing\n * whether the initialization of the backend suceeded. Throws an error if\n * there is no backend in the factory registry.\n */\n initializeBackend(backendName) {\n const registryFactoryEntry = this.registryFactory[backendName];\n if (registryFactoryEntry == null) {\n throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);\n }\n try {\n const backend = registryFactoryEntry.factory();\n /* Test if the factory returns a promise.\n Done in a more liberal way than\n previous 'Promise.resolve(backend)===backend'\n as we needed to account for custom Promise\n implementations (e.g. Angular) */\n if (backend && !(backend instanceof KernelBackend) &&\n typeof backend.then === 'function') {\n const promiseId = ++this.pendingBackendInitId;\n const success = backend\n .then(backendInstance => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.registry[backendName] = backendInstance;\n this.pendingBackendInit = null;\n return true;\n })\n .catch(err => {\n // Outdated promise. Another backend was set in the meantime.\n if (promiseId < this.pendingBackendInitId) {\n return false;\n }\n this.pendingBackendInit = null;\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return false;\n });\n this.pendingBackendInit = success;\n return { success, asyncInit: true };\n }\n else {\n this.registry[backendName] = backend;\n return { success: true, asyncInit: false };\n }\n }\n catch (err) {\n console.warn(`Initialization of backend ${backendName} failed`);\n console.warn(err.stack || err.message);\n return { success: false, asyncInit: false };\n }\n }\n removeBackend(backendName) {\n if (!(backendName in this.registryFactory)) {\n throw new Error(`${backendName} backend not found in registry`);\n }\n if (this.backendName === backendName && this.pendingBackendInit != null) {\n // There is a pending promise of the backend we want to remove. Make it\n // obsolete.\n this.pendingBackendInitId++;\n }\n if (backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n delete this.registryFactory[backendName];\n // Unset the backend if it is active.\n if (this.backendName === backendName) {\n this.pendingBackendInit = null;\n this.backendName = null;\n this.backendInstance = null;\n }\n }\n getSortedBackends() {\n if (Object.keys(this.registryFactory).length === 0) {\n throw new Error('No backend found in registry.');\n }\n return Object.keys(this.registryFactory).sort((a, b) => {\n // Highest priority comes first.\n return this.registryFactory[b].priority -\n this.registryFactory[a].priority;\n });\n }\n initializeBackendsAndReturnBest() {\n const sortedBackends = this.getSortedBackends();\n for (let i = 0; i < sortedBackends.length; i++) {\n const backendName = sortedBackends[i];\n const { success, asyncInit } = this.initializeBackend(backendName);\n if (asyncInit || success) {\n return { name: backendName, asyncInit };\n }\n }\n throw new Error(`Could not initialize any backends, all backend initializations ` +\n `failed.`);\n }\n moveData(backend, dataId) {\n const info = this.state.tensorInfo.get(dataId);\n const srcBackend = info.backend;\n const values = this.readSync(dataId);\n const refCount = srcBackend.refCount(dataId);\n // Delete the tensor from the old backend and move it to the new\n // backend.\n srcBackend.disposeData(dataId, true);\n info.backend = backend;\n backend.move(dataId, values, info.shape, info.dtype, refCount);\n if (this.shouldCheckForMemLeaks()) {\n // Track the number of moves during a kernel execution to correctly\n // detect memory leaks.\n this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;\n }\n }\n tidy(nameOrFn, fn) {\n let name = null;\n if (fn == null) {\n // Called with only 1 argument.\n if (typeof nameOrFn !== 'function') {\n throw new Error('Please provide a function to tidy()');\n }\n fn = nameOrFn;\n }\n else {\n // Called with 2 arguments.\n if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {\n throw new Error('When calling with two arguments, the first argument ' +\n 'to tidy() must be a string');\n }\n if (typeof fn !== 'function') {\n throw new Error('When calling with two arguments, the 2nd argument ' +\n 'to tidy() must be a function');\n }\n name = nameOrFn;\n // TODO(nsthorat,smilkov): Do operation logging and performance\n // profiling.\n }\n let result;\n return this.scopedRun(() => this.startScope(name), () => this.endScope(result), () => {\n result = fn();\n if (result instanceof Promise) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n return result;\n });\n }\n scopedRun(start, end, f) {\n start();\n try {\n const res = f();\n end();\n return res;\n }\n catch (ex) {\n end();\n throw ex;\n }\n }\n nextTensorId() {\n return Engine.nextTensorId++;\n }\n nextVariableId() {\n return Engine.nextVariableId++;\n }\n /**\n * This method is called instead of the public-facing tensor.clone() when\n * saving a tensor for backwards pass. It makes sure to add the clone\n * operation to the tape regardless of being called inside a kernel\n * execution.\n */\n clone(x) {\n const y = ENGINE.runKernel(Identity, { x });\n const inputs = { x };\n const grad = (dy) => ({\n x: () => {\n const dtype = 'float32';\n const gradInputs = { x: dy };\n const attrs = { dtype };\n return ENGINE.runKernel(Cast, gradInputs, \n // tslint:disable-next-line: no-unnecessary-type-assertion\n attrs);\n }\n });\n const saved = [];\n this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});\n return y;\n }\n /**\n * Execute a kernel with the given name and return the output tensor.\n *\n * @param kernelName The name of the kernel to execute.\n * @param inputs A map of input names to tensors.\n * @param attrs A map of attribute names to their values. An attribute is a\n * primitive (non-tensor) input to the kernel.\n * @param inputsToSave A list of tensors, inputs to save for the backprop\n * computation.\n * @param outputsToSave A list of booleans, specifying which output to save\n * for the backprop computation. These are booleans since the output\n * tensors are not visible to the user.\n */\n runKernel(kernelName, inputs, attrs) {\n const hasKernel = getKernel(kernelName, this.backendName) != null;\n if (!hasKernel) {\n throw new Error(`Kernel '${kernelName}' not registered for backend '${this.backendName}'`);\n }\n return this.runKernelFunc({ kernelName, inputs, attrs });\n }\n shouldCheckForMemLeaks() {\n return this.ENV.getBool('IS_TEST');\n }\n checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos) {\n const numDataIdsAfter = this.backend.numDataIds();\n // Count the number of data ids associated with the result of the kernel.\n let numOutputDataIds = 0;\n outInfos.forEach(info => {\n // Complex numbers allocate 3 data ids, one for 'real', one for\n // 'imaginary', and one for the container that holds the former two.\n numOutputDataIds += (info.dtype === 'complex64' ? 3 : 1);\n });\n // Account for the number of moves during kernel execution. A \"data move\"\n // can happen in the middle of a kernel execution, placing a new (key,value)\n // pair in the data storage. Since data moves have net zero effect (we\n // always remove the data from the old backend), we have to cancel them out\n // when detecting memory leaks.\n const numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];\n const dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;\n if (dataIdsLeaked > 0) {\n throw new Error(`Backend '${this.backendName}' has an internal memory leak ` +\n `(${dataIdsLeaked} data ids) after running '${kernelName}'`);\n }\n }\n /**\n * Internal helper method to execute a kernel Func\n *\n * Use `runKernel` to execute kernels from outside of engine.\n */\n runKernelFunc(kernelParams) {\n let outputs;\n let saved = [];\n const isTapeOn = this.isTapeOn();\n const startingBytecount = this.state.numBytes;\n const startingNumTensors = this.state.numTensors;\n if (this.shouldCheckForMemLeaks()) {\n this.state.numDataMovesStack.push(0);\n }\n let kernelFunc;\n if (this.backendName == null) {\n // backend has not been initialized yet (backend initialization is lazy\n // can be deferred until an op/ kernel is run).\n // The below getter has side effects that will try to initialize the\n // backend and set properties like this.backendName\n // tslint:disable-next-line: no-unused-expression\n this.backend;\n }\n let out;\n const kernelOrScopeName = isRegisteredKernelInvocation(kernelParams) ?\n kernelParams.kernelName :\n this.state.activeScope != null ? this.state.activeScope.name : '';\n // Create the kernelFunc from either a registered kernel OR passed in\n // forward/backward functions (used by custom grad). In this context a\n // kernelFunc wraps a kernel implementation with some bookkeeping.\n if (isRegisteredKernelInvocation(kernelParams)) {\n const { kernelName, inputs, attrs } = kernelParams;\n if (this.backendName == null) {\n // backend has not been initialized yet (backend initialization is lazy\n // can be deferred until an op/ kernel is run).\n // The below getter has side effects that will try to initialize the\n // backend and set properties like this.backendName\n // tslint:disable-next-line: no-unused-expression\n this.backend;\n }\n const kernel = getKernel(kernelName, this.backendName);\n util.assert(kernel != null, () => `Cannot find registered kernel '${kernelName}' for backend '${this.backendName}'`);\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = kernel.kernelFunc({ inputs, attrs, backend: this.backend });\n const outInfos = Array.isArray(out) ? out : [out];\n if (this.shouldCheckForMemLeaks()) {\n this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);\n }\n const outTensors = outInfos.map((outInfo) => {\n // todo (yassogba) remove this option (Tensor) when node backend\n // methods have been modularized and they all return tensorInfo.\n // TensorInfos do not have a rank attribute.\n if (outInfo.rank != null) {\n return outInfo;\n }\n const { dataId, shape, dtype } = outInfo;\n return this.makeTensorFromDataId(dataId, shape, dtype);\n });\n // Save any required inputs and outputs.\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since there would be no backprop for these tensors\n // (which would otherwise dispose them).\n if (isTapeOn) {\n const tensorsToSave = this.getTensorsForGradient(kernelName, inputs, outTensors);\n saved = this.saveTensorsForBackwardMode(tensorsToSave);\n }\n return outTensors;\n };\n }\n else {\n const { forwardFunc } = kernelParams;\n // Running a customGrad op.\n const saveFunc = (tensors) => {\n // Do not save unless we are recording to the tape. Otherwise it would\n // cause a mem leak since we would never run backprop, which disposes\n // the kept tensors.\n if (!isTapeOn) {\n return;\n }\n saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n };\n kernelFunc = () => {\n const numDataIdsBefore = this.backend.numDataIds();\n out = this.tidy(() => forwardFunc(this.backend, saveFunc));\n const outs = (Array.isArray(out) ? out : [out]);\n if (this.shouldCheckForMemLeaks()) {\n // Scope name is used to print a more helpful error message if needed.\n this.checkKernelForMemLeak(kernelOrScopeName, numDataIdsBefore, outs);\n }\n return outs;\n };\n }\n //\n // Run the kernelFunc. Optionally profiling it.\n //\n const { inputs, attrs } = kernelParams;\n const backwardsFunc = isRegisteredKernelInvocation(kernelParams) ?\n null :\n kernelParams.backwardsFunc;\n let kernelProfile;\n this.scopedRun(\n // Stop recording to a tape when running a kernel.\n () => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {\n if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {\n outputs = kernelFunc();\n }\n else {\n kernelProfile = this.profiler.profileKernel(kernelOrScopeName, inputs, () => kernelFunc());\n if (this.ENV.getBool('DEBUG')) {\n this.profiler.logKernelProfile(kernelProfile);\n }\n outputs = kernelProfile.outputs;\n }\n });\n if (isTapeOn) {\n this.addTapeNode(kernelOrScopeName, inputs, outputs, backwardsFunc, saved, attrs);\n }\n if (this.state.profiling) {\n this.state.activeProfile.kernels.push({\n name: kernelOrScopeName,\n bytesAdded: this.state.numBytes - startingBytecount,\n totalBytesSnapshot: this.state.numBytes,\n tensorsAdded: this.state.numTensors - startingNumTensors,\n totalTensorsSnapshot: this.state.numTensors,\n inputShapes: Object.keys(inputs).map(key => inputs[key] != null ? inputs[key].shape : null),\n outputShapes: outputs.map(item => item.shape),\n kernelTimeMs: kernelProfile.timeMs,\n extraInfo: kernelProfile.extraInfo\n });\n }\n return (Array.isArray(out) ? outputs : outputs[0]);\n }\n /**\n * Saves tensors used in forward mode for use in backward mode.\n *\n * @param tensors the list of tensors to save.\n */\n saveTensorsForBackwardMode(tensors) {\n const saved = tensors.map(tensor => this.keep(this.clone(tensor)));\n return saved;\n }\n /**\n * Returns a list of tensors to save for a given gradient calculation.\n *\n * @param kernelName name of kernel to look up gradient for.\n * @param inputs a map of input tensors.\n * @param outputs an array of output tensors from forward mode of kernel.\n */\n getTensorsForGradient(kernelName, inputs, outputs) {\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n const inputsToSave = gradConfig.inputsToSave || [];\n const outputsToSave = gradConfig.outputsToSave || [];\n // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs\n // specified in inputsToSave will be saved.\n let inputTensorsToSave;\n if (gradConfig.saveAllInputs) {\n util.assert(Array.isArray(inputs), () => 'saveAllInputs is true, expected inputs to be an array.');\n inputTensorsToSave = Object.keys(inputs).map((key) => inputs[key]);\n }\n else {\n inputTensorsToSave = inputsToSave.map((inputName) => inputs[inputName]);\n }\n const outputTensorsToSave = outputs.filter((_, i) => outputsToSave[i]);\n return inputTensorsToSave.concat(outputTensorsToSave);\n }\n // We return an empty list rather than throw an error because the kernel we\n // are looking up may not actually be relevant to backproping through the\n // overall function\n //\n // See 'does not error if irrelevant (pruned) ops are missing grads' test\n // in gradients_test.ts for an example.\n return [];\n }\n /**\n * Internal method used by public APIs for tensor creation. Makes a new\n * tensor with the provided shape, dtype and values. It always\n * creates a new data id and writes the values to the underlying backend.\n */\n makeTensor(values, shape, dtype, backend) {\n if (values == null) {\n throw new Error('Values passed to engine.makeTensor() are null');\n }\n dtype = dtype || 'float32';\n backend = backend || this.backend;\n let backendVals = values;\n if (dtype === 'string' && util.isString(values[0])) {\n backendVals = values.map(d => util.encodeString(d));\n }\n const dataId = backend.write(backendVals, shape, dtype);\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.trackTensor(t, backend);\n // Count bytes for string tensors.\n if (dtype === 'string') {\n const info = this.state.tensorInfo.get(dataId);\n const newBytes = bytesFromStringArray(backendVals);\n this.state.numBytes += newBytes - info.bytes;\n info.bytes = newBytes;\n }\n return t;\n }\n /**\n * Internal method used by backends. Makes a new tensor\n * that is a wrapper around an existing data id. It doesn't create\n * a new data id, only increments the ref count used in memory tracking.\n */\n makeTensorFromDataId(dataId, shape, dtype, backend) {\n dtype = dtype || 'float32';\n const t = new Tensor(shape, dtype, dataId, this.nextTensorId());\n this.trackTensor(t, backend);\n return t;\n }\n makeVariable(initialValue, trainable = true, name, dtype) {\n name = name || this.nextVariableId().toString();\n if (dtype != null && dtype !== initialValue.dtype) {\n initialValue = initialValue.cast(dtype);\n }\n const v = new Variable(initialValue, trainable, name, this.nextTensorId());\n if (this.state.registeredVariables[v.name] != null) {\n throw new Error(`Variable with name ${v.name} was already registered`);\n }\n this.state.registeredVariables[v.name] = v;\n this.incRef(v, this.backend);\n return v;\n }\n trackTensor(a, backend) {\n this.state.numTensors++;\n if (a.dtype === 'string') {\n this.state.numStringTensors++;\n }\n // Bytes for complex numbers are counted by their components. Bytes for\n // string tensors are counted when writing values.\n let bytes = 0;\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n bytes = a.size * util.bytesPerElement(a.dtype);\n }\n this.state.numBytes += bytes;\n if (!this.state.tensorInfo.has(a.dataId)) {\n this.state.numDataBuffers++;\n this.state.tensorInfo.set(a.dataId, {\n backend: backend || this.backend,\n dtype: a.dtype,\n shape: a.shape,\n bytes\n });\n }\n if (!(a instanceof Variable)) {\n this.track(a);\n }\n }\n // Track the tensor by dataId and increase the refCount for the dataId in the\n // backend.\n // TODO(pyu10055): This is currently used by makeVariable method, to increase\n // refCount on the backend for the dataId. It can potentially be replaced with\n // Identity op indead of calling backend directly.\n incRef(a, backend) {\n this.trackTensor(a, backend);\n this.backend.incRef(a.dataId);\n }\n removeDataId(dataId, backend) {\n if (this.state.tensorInfo.has(dataId) &&\n this.state.tensorInfo.get(dataId).backend === backend) {\n this.state.tensorInfo.delete(dataId);\n this.state.numDataBuffers--;\n }\n }\n disposeTensor(a) {\n if (!this.state.tensorInfo.has(a.dataId)) {\n return;\n }\n const info = this.state.tensorInfo.get(a.dataId);\n this.state.numTensors--;\n if (a.dtype === 'string') {\n this.state.numStringTensors--;\n this.state.numBytes -= info.bytes;\n }\n // Don't count bytes for complex numbers as they are counted by their\n // components.\n if (a.dtype !== 'complex64' && a.dtype !== 'string') {\n const bytes = a.size * util.bytesPerElement(a.dtype);\n this.state.numBytes -= bytes;\n }\n // Remove the reference to dataId if backend dispose the data successfully\n if (info.backend.disposeData(a.dataId)) {\n this.removeDataId(a.dataId, info.backend);\n }\n // TODO(nsthorat): Construct an error and save the stack trace for\n // debugging when in debug mode. Creating a stack trace is too expensive\n // to do unconditionally.\n }\n disposeVariables() {\n for (const varName in this.state.registeredVariables) {\n const v = this.state.registeredVariables[varName];\n this.disposeVariable(v);\n }\n }\n disposeVariable(v) {\n this.disposeTensor(v);\n if (this.state.registeredVariables[v.name] != null) {\n delete this.state.registeredVariables[v.name];\n }\n }\n memory() {\n const info = this.backend.memory();\n info.numTensors = this.state.numTensors;\n info.numDataBuffers = this.state.numDataBuffers;\n info.numBytes = this.state.numBytes;\n if (this.state.numStringTensors > 0) {\n info.unreliable = true;\n if (info.reasons == null) {\n info.reasons = [];\n }\n info.reasons.push('Memory usage by string tensors is approximate ' +\n '(2 bytes per character)');\n }\n return info;\n }\n async profile(query) {\n this.state.profiling = true;\n const startBytes = this.state.numBytes;\n const startNumTensors = this.state.numTensors;\n this.state.activeProfile.kernels = [];\n this.state.activeProfile.result = await query();\n this.state.profiling = false;\n this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));\n this.state.activeProfile.newBytes = this.state.numBytes - startBytes;\n this.state.activeProfile.newTensors =\n this.state.numTensors - startNumTensors;\n for (const kernel of this.state.activeProfile.kernels) {\n kernel.kernelTimeMs = await kernel.kernelTimeMs;\n kernel.extraInfo = await kernel.extraInfo;\n }\n return this.state.activeProfile;\n }\n isTapeOn() {\n return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;\n }\n addTapeNode(kernelName, inputs, outputs, gradientsFunc, saved, attrs) {\n const tapeNode = { id: this.state.nextTapeNodeId++, kernelName, inputs, outputs, saved };\n const gradConfig = getGradient(kernelName);\n if (gradConfig != null) {\n gradientsFunc = gradConfig.gradFunc;\n }\n if (gradientsFunc != null) {\n tapeNode.gradient = (dys) => {\n // TODO(smilkov): To optimize back-prop, pass dys that are not used in\n // the backprop graph to the user as null instead of zeros\n dys = dys.map((dy, i) => {\n if (dy == null) {\n const output = outputs[i];\n const vals = util.makeZerosTypedArray(output.size, output.dtype);\n return this.makeTensor(vals, output.shape, output.dtype);\n }\n return dy;\n });\n // Grad functions of ops with single outputs expect a dy, while ops\n // with multiple outputs expect dys (array of dy).\n return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);\n };\n }\n this.state.activeTape.push(tapeNode);\n }\n keep(result) {\n result.kept = true;\n return result;\n }\n startTape() {\n if (this.state.gradientDepth === 0) {\n this.state.activeTape = [];\n }\n this.state.gradientDepth++;\n }\n endTape() {\n this.state.gradientDepth--;\n }\n /**\n * Start a scope. Use this with endScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n startScope(name) {\n const scopeInfo = {\n track: [],\n name: 'unnamed scope',\n id: this.state.nextScopeId++\n };\n if (name) {\n scopeInfo.name = name;\n }\n this.state.scopeStack.push(scopeInfo);\n this.state.activeScope = scopeInfo;\n }\n /**\n * End a scope. Use this with startScope() to achieve the same functionality\n * as scope() without the need for a function closure.\n */\n endScope(result) {\n const tensorsToTrackInParent = getTensorsInContainer(result);\n const tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(t => t.id));\n // Dispose the arrays tracked in this scope.\n for (let i = 0; i < this.state.activeScope.track.length; i++) {\n const tensor = this.state.activeScope.track[i];\n if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {\n tensor.dispose();\n }\n }\n const oldScope = this.state.scopeStack.pop();\n this.state.activeScope = this.state.scopeStack.length === 0 ?\n null :\n this.state.scopeStack[this.state.scopeStack.length - 1];\n // Track the current result in the parent scope.\n tensorsToTrackInParent.forEach(tensor => {\n // Only track the tensor if was allocated in the inner scope and is not\n // globally kept.\n if (!tensor.kept && tensor.scopeId === oldScope.id) {\n this.track(tensor);\n }\n });\n }\n /**\n * Returns gradients of `f` with respect to each of the `xs`. The gradients\n * returned are of the same length as `xs`, but some might be null if `f`\n * was not a function of that `x`. It also takes optional dy to multiply the\n * gradient, which defaults to `1`.\n */\n gradients(f, xs, dy, allowNoGradients = false) {\n util.assert(xs.length > 0, () => 'gradients() received an empty list of xs.');\n if (dy != null && dy.dtype !== 'float32') {\n throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);\n }\n const y = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy('forward', f));\n util.assert(y instanceof Tensor, () => 'The result y returned by f() must be a tensor.');\n // Filter out the nodes that don't connect x => y.\n const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);\n if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {\n throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' +\n 'that the f you passed encloses all operations that lead from x ' +\n 'to y.');\n }\n return this.tidy('backward', () => {\n const accumulatedGradientMap = {};\n accumulatedGradientMap[y.id] = (dy == null) ? ones(y.shape) : dy;\n // Backprop gradients through the filtered nodes.\n backpropagateGradients(accumulatedGradientMap, filteredTape, \n // Pass the tidy function to avoid circular dep with `tape.ts`.\n f => this.tidy(f), \n // Pass an add function to avoide a circular dep with `tape.ts`.\n add);\n const grads = xs.map(x => accumulatedGradientMap[x.id]);\n if (this.state.gradientDepth === 0) {\n // This means that we are not computing higher-order gradients\n // and can clean up the tape.\n this.state.activeTape.forEach(node => {\n for (const tensor of node.saved) {\n tensor.dispose();\n }\n });\n this.state.activeTape = null;\n }\n return { value: y, grads };\n });\n }\n customGrad(f) {\n util.assert(util.isFunction(f), () => 'The f passed in customGrad(f) must be a function.');\n return (...inputs) => {\n util.assert(inputs.every(t => t instanceof Tensor), () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' +\n 'tensors');\n let res;\n const inputMap = {};\n inputs.forEach((input, i) => {\n inputMap[i] = input;\n });\n const forwardFunc = (_, save) => {\n res = f(...[...inputs, save]);\n util.assert(res.value instanceof Tensor, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.value` is a tensor');\n util.assert(util.isFunction(res.gradFunc), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function.');\n return res.value;\n };\n const backwardsFunc = (dy, saved) => {\n const gradRes = res.gradFunc(dy, saved);\n const grads = Array.isArray(gradRes) ? gradRes : [gradRes];\n util.assert(grads.length === inputs.length, () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'the same number of tensors as inputs passed to f(...).');\n util.assert(grads.every(t => t instanceof Tensor), () => 'The function f passed in customGrad(f) must return an ' +\n 'object where `obj.gradFunc` is a function that returns ' +\n 'a list of only tensors.');\n const gradMap = {};\n grads.forEach((grad, i) => {\n gradMap[i] = () => grad;\n });\n return gradMap;\n };\n return this.runKernelFunc({\n forwardFunc,\n backwardsFunc,\n inputs: inputMap,\n });\n };\n }\n readSync(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.readSync(dataId);\n }\n read(dataId) {\n // Route the read to the correct backend.\n const info = this.state.tensorInfo.get(dataId);\n return info.backend.read(dataId);\n }\n async time(query) {\n const start = now();\n const timingInfo = await this.backend.time(query);\n timingInfo.wallMs = now() - start;\n return timingInfo;\n }\n /**\n * Tracks a Tensor in the current scope to be automatically cleaned up\n * when the current scope ends, and returns the value.\n *\n * @param result The Tensor to track in the current scope.\n */\n track(result) {\n if (this.state.activeScope != null) {\n result.scopeId = this.state.activeScope.id;\n this.state.activeScope.track.push(result);\n }\n return result;\n }\n get registeredVariables() {\n return this.state.registeredVariables;\n }\n /**\n * Resets the engine state. Removes all backends but does not remove\n * registered backend factories.\n */\n reset() {\n // Make any pending promise obsolete.\n this.pendingBackendInitId++;\n this.state.dispose();\n this.ENV.reset();\n this.state = new EngineState();\n for (const backendName in this.registry) {\n this.disposeRegisteredKernels(backendName);\n this.registry[backendName].dispose();\n delete this.registry[backendName];\n }\n this.backendName = null;\n this.backendInstance = null;\n this.pendingBackendInit = null;\n }\n}\nEngine.nextTensorId = 0;\nEngine.nextVariableId = 0;\nfunction ones(shape) {\n const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');\n return ENGINE.makeTensor(values, shape, 'float32');\n}\nexport function getOrMakeEngine() {\n const ns = getGlobalNamespace();\n if (ns._tfengine == null) {\n const environment = new Environment(ns);\n ns._tfengine = new Engine(environment);\n }\n setEnvironmentGlobal(ns._tfengine.ENV);\n // Tell the current tensor interface that the global engine is responsible\n // for tracking.\n setTensorTracker(() => ns._tfengine);\n return ns._tfengine;\n}\nexport const ENGINE = getOrMakeEngine();\n/**\n * A implementation of the add op for use within engine and tape.\n *\n * This allows us to avoid a circular dependency between add.ts and engine.\n * It is exported to be available in tape tests.\n */\nexport function add(a, b) {\n // We duplicate Add here to avoid a circular dependency with add.ts.\n const inputs = { a, b };\n return ENGINE.runKernel(Add, inputs);\n}\n//# sourceMappingURL=engine.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport * as util from './util';\n/**\n * Computes a list of TapeNodes that connect x to y, filtering everything else\n * out and preserving the order of the original tape elements.\n *\n * @param tape The tape elements to filter.\n * @param xs The input Tensors.\n * @param y The output Tensor.\n */\nexport function getFilteredNodesXToY(tape, xs, y) {\n // Forward pass to compute all the nodes and Tensors that are transitively a\n // function of x.\n const tensorsFromX = {};\n const nodesFromX = {};\n for (let i = 0; i < xs.length; i++) {\n tensorsFromX[xs[i].id] = true;\n }\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n for (const inputName in nodeInputs) {\n const input = nodeInputs[inputName];\n let anyInputFromX = false;\n for (let j = 0; j < xs.length; j++) {\n if (tensorsFromX[input.id]) {\n node.outputs.forEach(output => tensorsFromX[output.id] = true);\n anyInputFromX = true;\n nodesFromX[node.id] = true;\n break;\n }\n }\n if (anyInputFromX) {\n break;\n }\n }\n }\n // Backward pass to find all of the nodes and Tensors that lead to y.\n const tensorsLeadToY = {};\n tensorsLeadToY[y.id] = true;\n const nodesToY = {};\n for (let i = tape.length - 1; i >= 0; i--) {\n const node = tape[i];\n const nodeInputs = node.inputs;\n // If any of the outputs lead to y, mark all of the inputs as leading to y.\n for (let j = 0; j < node.outputs.length; j++) {\n if (tensorsLeadToY[node.outputs[j].id]) {\n for (const inputName in nodeInputs) {\n tensorsLeadToY[nodeInputs[inputName].id] = true;\n nodesToY[node.id] = true;\n }\n break;\n }\n }\n }\n // Return the paths that come from x and lead to y.\n const filteredTape = [];\n for (let i = 0; i < tape.length; i++) {\n const node = tape[i];\n if (nodesFromX[node.id] && nodesToY[node.id]) {\n // Prune the inputs from the node that aren't a function of x.\n const prunedInputs = {};\n for (const inputName in node.inputs) {\n const nodeInput = node.inputs[inputName];\n if (tensorsFromX[nodeInput.id]) {\n prunedInputs[inputName] = nodeInput;\n }\n }\n // Copy the node and overwrite inputsAndArgs to the pruned version.\n const prunedNode = Object.assign({}, node);\n prunedNode.inputs = prunedInputs;\n prunedNode.outputs = node.outputs;\n filteredTape.push(prunedNode);\n }\n }\n return filteredTape;\n}\n/**\n * Backpropagate gradients through the filtered TapeNodes.\n *\n * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map\n * is mutated by this method.\n * @param filteredTape The filtered TapeNodes to backprop through.\n */\nexport function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {\n // Walk the tape backward and keep a map of Tensor to its gradient.\n for (let i = filteredTape.length - 1; i >= 0; i--) {\n const node = filteredTape[i];\n const dys = [];\n node.outputs.forEach(o => {\n const gradTensor = tensorAccumulatedGradientMap[o.id];\n if (gradTensor != null) {\n dys.push(gradTensor);\n }\n else {\n // This particular output is not in the back-propagation subgraph, so it\n // does not affect the final output, thus we put null for its dy.\n dys.push(null);\n }\n });\n if (node.gradient == null) {\n throw new Error(`Cannot compute gradient: gradient function not found ` +\n `for ${node.kernelName}.`);\n }\n // Backprop dy through this node and accumulate gradients over the inputs.\n const inputGradients = node.gradient(dys);\n for (const inputName in node.inputs) {\n if (!(inputName in inputGradients)) {\n throw new Error(`Cannot backprop through input ${inputName}. ` +\n `Available gradients found: ${Object.keys(inputGradients)}.`);\n }\n // Call the gradient function.\n const dx = tidy(() => inputGradients[inputName]());\n if (dx.dtype !== 'float32') {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);\n }\n const x = node.inputs[inputName];\n if (!util.arraysEqual(dx.shape, x.shape)) {\n throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` +\n `'${inputName}' has shape '${dx.shape}', which does not match ` +\n `the shape of the input '${x.shape}'`);\n }\n if (tensorAccumulatedGradientMap[x.id] == null) {\n tensorAccumulatedGradientMap[x.id] = dx;\n }\n else {\n const curGradient = tensorAccumulatedGradientMap[x.id];\n tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);\n curGradient.dispose();\n }\n }\n }\n}\n//# sourceMappingURL=tape.js.map","/**\n * @license\n * Copyright 2017 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// tslint:disable-next-line:no-any\nfunction _isNavigatorDefined() {\n return typeof navigator !== 'undefined' && navigator != null;\n}\nexport function isMobile() {\n if (_isNavigatorDefined()) {\n // tslint:disable-next-line:no-any\n const a = navigator.userAgent || navigator.vendor || window.opera;\n // tslint:disable-next-line:max-line-length\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(a) ||\n // tslint:disable-next-line:max-line-length\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(a.substr(0, 4));\n }\n return false;\n}\nexport function isBrowser() {\n return (typeof window !== 'undefined' && window.document != null) ||\n //@ts-ignore\n (typeof WorkerGlobalScope !== 'undefined');\n}\n//# sourceMappingURL=device_util.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport './engine';\nimport * as device_util from './device_util';\nimport { env } from './environment';\nconst ENV = env();\n/**\n * This file contains environment-related flag registrations.\n */\n/** Whether to enable debug mode. */\nENV.registerFlag('DEBUG', () => false, debugValue => {\n if (debugValue) {\n console.warn('Debugging mode is ON. The output of every math call will ' +\n 'be downloaded to CPU and checked for NaNs. ' +\n 'This significantly impacts performance.');\n }\n});\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());\n/** Whether we are in a browser (as versus, say, node.js) environment. */\nENV.registerFlag('IS_NODE', () => (typeof process !== 'undefined') &&\n (typeof process.versions !== 'undefined') &&\n (typeof process.versions.node !== 'undefined'));\n/** Whether this browser is Chrome. */\nENV.registerFlag('IS_CHROME', () => typeof navigator !== 'undefined' && navigator != null &&\n navigator.userAgent != null && /Chrome/.test(navigator.userAgent) &&\n /Google Inc/.test(navigator.vendor));\n/**\n * True when the environment is \"production\" where we disable safety checks\n * to gain performance.\n */\nENV.registerFlag('PROD', () => false);\n/**\n * Whether to do sanity checks when inferring a shape from user-provided\n * values, used when creating a new tensor.\n */\nENV.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));\n/** Whether deprecation warnings are enabled. */\nENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);\n/** True if running unit tests. */\nENV.registerFlag('IS_TEST', () => false);\n/** Whether to check computation result for errors. */\nENV.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', () => true);\n/** Whether the backend needs to wrap input to imageBitmap. */\nENV.registerFlag('WRAP_TO_IMAGEBITMAP', () => false);\n//# sourceMappingURL=flags.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from './engine';\nimport { env } from './environment';\nimport { Tensor } from './tensor';\nimport { assert, flatten, inferDtype, isTypedArray, toTypedArray } from './util';\nexport function inferShape(val, dtype) {\n let firstElem = val;\n if (isTypedArray(val)) {\n return dtype === 'string' ? [] : [val.length];\n }\n if (!Array.isArray(val)) {\n return []; // Scalar.\n }\n const shape = [];\n while (Array.isArray(firstElem) ||\n isTypedArray(firstElem) && dtype !== 'string') {\n shape.push(firstElem.length);\n firstElem = firstElem[0];\n }\n if (Array.isArray(val) &&\n env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {\n deepAssertShapeConsistency(val, shape, []);\n }\n return shape;\n}\nfunction deepAssertShapeConsistency(val, shape, indices) {\n indices = indices || [];\n if (!(Array.isArray(val)) && !isTypedArray(val)) {\n assert(shape.length === 0, () => `Element arr[${indices.join('][')}] is a primitive, ` +\n `but should be an array/TypedArray of ${shape[0]} elements`);\n return;\n }\n assert(shape.length > 0, () => `Element arr[${indices.join('][')}] should be a primitive, ` +\n `but is an array of ${val.length} elements`);\n assert(val.length === shape[0], () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` +\n `elements, but has ${val.length} elements`);\n const subShape = shape.slice(1);\n for (let i = 0; i < val.length; ++i) {\n deepAssertShapeConsistency(val[i], subShape, indices.concat(i));\n }\n}\nfunction assertDtype(expectedDtype, actualDType, argName, functionName) {\n if (expectedDtype === 'string_or_numeric') {\n return;\n }\n if (expectedDtype == null) {\n throw new Error(`Expected dtype cannot be null.`);\n }\n if (expectedDtype !== 'numeric' && expectedDtype !== actualDType ||\n expectedDtype === 'numeric' && actualDType === 'string') {\n throw new Error(`Argument '${argName}' passed to '${functionName}' must ` +\n `be ${expectedDtype} tensor, but got ${actualDType} tensor`);\n }\n}\nexport function convertToTensor(x, argName, functionName, parseAsDtype = 'numeric') {\n if (x instanceof Tensor) {\n assertDtype(parseAsDtype, x.dtype, argName, functionName);\n return x;\n }\n let inferredDtype = inferDtype(x);\n // If the user expects a bool/int/float, use that info to update the\n // inferredDtype when it is not a string.\n if (inferredDtype !== 'string' &&\n ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {\n inferredDtype = parseAsDtype;\n }\n assertDtype(parseAsDtype, inferredDtype, argName, functionName);\n if ((x == null) ||\n (!isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' &&\n typeof x !== 'boolean' && typeof x !== 'string')) {\n const type = x == null ? 'null' : x.constructor.name;\n throw new Error(`Argument '${argName}' passed to '${functionName}' must be a ` +\n `Tensor or TensorLike, but got '${type}'`);\n }\n const inferredShape = inferShape(x, inferredDtype);\n if (!isTypedArray(x) && !Array.isArray(x)) {\n x = [x];\n }\n const skipTypedArray = true;\n const values = inferredDtype !== 'string' ?\n toTypedArray(x, inferredDtype) :\n flatten(x, [], skipTypedArray);\n return ENGINE.makeTensor(values, inferredShape, inferredDtype);\n}\nexport function convertToTensorArray(arg, argName, functionName, parseAsDtype = 'numeric') {\n if (!Array.isArray(arg)) {\n throw new Error(`Argument ${argName} passed to ${functionName} must be a ` +\n '`Tensor[]` or `TensorLike[]`');\n }\n const tensors = arg;\n return tensors.map((t, i) => convertToTensor(t, `${argName}[${i}]`, functionName, parseAsDtype));\n}\n//# sourceMappingURL=tensor_util_env.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { isPromise } from '../util';\nexport const OP_SCOPE_SUFFIX = '__op';\n/**\n * Used for wrapping functions that perform math operations on\n * Tensors. The function will be wrapped in a named scope that cleans all\n * memory usage after the function is done.\n */\nexport function op(f) {\n const keys = Object.keys(f);\n if (keys.length !== 1) {\n throw new Error(`Please provide an object with a single key ` +\n `(operation name) mapping to a function. Got an object with ` +\n `${keys.length} keys.`);\n }\n let opName = keys[0];\n const fn = f[opName];\n // Strip the underscore from the end of the function name.\n if (opName.endsWith('_')) {\n opName = opName.substring(0, opName.length - 1);\n }\n // add an __op suffix to distinguish ops from kernels in tf.profile\n opName = opName + OP_SCOPE_SUFFIX;\n // tslint:disable-next-line:no-any\n const f2 = (...args) => {\n ENGINE.startScope(opName);\n try {\n const result = fn(...args);\n if (isPromise(result)) {\n console.error('Cannot return a Promise inside of tidy.');\n }\n ENGINE.endScope(result);\n return result;\n }\n catch (ex) {\n ENGINE.endScope(null);\n throw ex;\n }\n };\n Object.defineProperty(f2, 'name', { value: opName, configurable: true });\n // tslint:disable-next-line:no-any\n return f2;\n}\n//# sourceMappingURL=operation.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Complex } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Converts two real numbers to a complex number.\n *\n * Given a tensor `real` representing the real part of a complex number, and a\n * tensor `imag` representing the imaginary part of a complex number, this\n * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],\n * where r represents the real part and i represents the imag part.\n *\n * The input tensors real and imag must have the same shape.\n *\n * ```js\n * const real = tf.tensor1d([2.25, 3.25]);\n * const imag = tf.tensor1d([4.75, 5.75]);\n * const complex = tf.complex(real, imag);\n *\n * complex.print();\n * ```\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction complex_(real, imag) {\n const $real = convertToTensor(real, 'real', 'complex');\n const $imag = convertToTensor(imag, 'imag', 'complex');\n util.assertShapesMatch($real.shape, $imag.shape, `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` +\n `must match in call to tf.complex().`);\n const inputs = { real: $real, imag: $imag };\n return ENGINE.runKernel(Complex, inputs);\n}\nexport const complex = op({ complex_ });\n//# sourceMappingURL=complex.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { assert, assertNonNegativeIntegerDimensions, flatten, inferDtype, isTypedArray, sizeFromShape, toTypedArray } from '../util';\n/** This is shared code across all tensor creation methods. */\nexport function makeTensor(values, shape, inferredShape, dtype) {\n if (dtype == null) {\n dtype = inferDtype(values);\n }\n if (dtype === 'complex64') {\n throw new Error(`Cannot construct a complex64 tensor directly. ` +\n `Please use tf.complex(real, imag).`);\n }\n if (!isTypedArray(values) && !Array.isArray(values) &&\n typeof values !== 'number' && typeof values !== 'boolean' &&\n typeof values !== 'string') {\n throw new Error('values passed to tensor(values) must be a number/boolean/string or ' +\n 'an array of numbers/booleans/strings, or a TypedArray');\n }\n if (shape != null) {\n assertNonNegativeIntegerDimensions(shape);\n const providedSize = sizeFromShape(shape);\n const inferredSize = sizeFromShape(inferredShape);\n assert(providedSize === inferredSize, () => `Based on the provided shape, [${shape}], the tensor should have ` +\n `${providedSize} values but has ${inferredSize}`);\n for (let i = 0; i < inferredShape.length; ++i) {\n const inferred = inferredShape[i];\n const flatDimsDontMatch = i === inferredShape.length - 1 ?\n inferred !== sizeFromShape(shape.slice(i)) :\n true;\n assert(inferredShape[i] === shape[i] || !flatDimsDontMatch, () => `Error creating a new Tensor. Inferred shape ` +\n `(${inferredShape}) does not match the provided ` +\n `shape (${shape}). `);\n }\n }\n if (!isTypedArray(values) && !Array.isArray(values)) {\n values = [values];\n }\n shape = shape || inferredShape;\n values = dtype !== 'string' ?\n toTypedArray(values, dtype) :\n flatten(values, [], true);\n return ENGINE.makeTensor(values, shape, dtype);\n}\n//# sourceMappingURL=tensor_ops_util.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates a `tf.Tensor` with the provided values, shape and dtype.\n *\n * ```js\n * // Pass an array of values to create a vector.\n * tf.tensor([1, 2, 3, 4]).print();\n * ```\n *\n * ```js\n * // Pass a nested array of values to make a matrix or a higher\n * // dimensional tensor.\n * tf.tensor([[1, 2], [3, 4]]).print();\n * ```\n *\n * ```js\n * // Pass a flat array and specify a shape yourself.\n * tf.tensor([1, 2, 3, 4], [2, 2]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`. If the values are strings,\n * they will be encoded as utf-8 and kept as `Uint8Array[]`.\n * @param shape The shape of the tensor. Optional. If not provided,\n * it is inferred from `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor(values, shape, dtype) {\n const inferredShape = inferShape(values, dtype);\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/* Type definitions for exporting and importing of models. */\n/**\n * A map from Tensor dtype to number of bytes per element of the Tensor.\n */\nexport const DTYPE_VALUE_SIZE_MAP = {\n 'float32': 4,\n 'float16': 2,\n 'int32': 4,\n 'uint16': 2,\n 'uint8': 1,\n 'bool': 1,\n 'complex64': 8\n};\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { complex } from '../ops/complex';\nimport { tensor } from '../ops/tensor';\nimport { sizeFromShape } from '../util';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/** Number of bytes reserved for the length of the string. (32bit integer). */\nconst NUM_BYTES_STRING_LENGTH = 4;\n/**\n * Encode a map from names to weight values as an ArrayBuffer, along with an\n * `Array` of `WeightsManifestEntry` as specification of the encoded weights.\n *\n * This function does not perform sharding.\n *\n * This function is the reverse of `decodeWeights`.\n *\n * @param tensors A map (\"dict\") from names to tensors.\n * @param group Group to which the weights belong (optional).\n * @returns A `Promise` of\n * - A flat `ArrayBuffer` with all the binary values of the `Tensor`s\n * concatenated.\n * - An `Array` of `WeightManifestEntry`s, carrying information including\n * tensor names, `dtype`s and shapes.\n * @throws Error: on unsupported tensor `dtype`.\n */\nexport async function encodeWeights(tensors, group) {\n // TODO(adarob, cais): Support quantization.\n const specs = [];\n const dataPromises = [];\n const names = Array.isArray(tensors) ?\n tensors.map(tensor => tensor.name) :\n Object.keys(tensors);\n for (let i = 0; i < names.length; ++i) {\n const name = names[i];\n const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];\n if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' &&\n t.dtype !== 'string' && t.dtype !== 'complex64') {\n throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);\n }\n const spec = { name, shape: t.shape, dtype: t.dtype };\n if (t.dtype === 'string') {\n const utf8bytes = new Promise(async (resolve) => {\n const vals = await t.bytes();\n const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) +\n NUM_BYTES_STRING_LENGTH * vals.length;\n const bytes = new Uint8Array(totalNumBytes);\n let offset = 0;\n for (let i = 0; i < vals.length; i++) {\n const val = vals[i];\n const bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);\n bytes.set(bytesOfLength, offset);\n offset += NUM_BYTES_STRING_LENGTH;\n bytes.set(val, offset);\n offset += val.length;\n }\n resolve(bytes);\n });\n dataPromises.push(utf8bytes);\n }\n else {\n dataPromises.push(t.data());\n }\n if (group != null) {\n spec.group = group;\n }\n specs.push(spec);\n }\n const tensorValues = await Promise.all(dataPromises);\n return { data: concatenateTypedArrays(tensorValues), specs };\n}\n/**\n * Decode flat ArrayBuffer as weights.\n *\n * This function does not handle sharding.\n *\n * This function is the reverse of `encodeWeights`.\n *\n * @param buffer A flat ArrayBuffer carrying the binary values of the tensors\n * concatenated in the order specified in `specs`.\n * @param specs Specifications of the names, dtypes and shapes of the tensors\n * whose value are encoded by `buffer`.\n * @return A map from tensor name to tensor value, with the names corresponding\n * to names in `specs`.\n * @throws Error, if any of the tensors has unsupported dtype.\n */\nexport function decodeWeights(buffer, specs) {\n // TODO(adarob, cais): Support quantization.\n const out = {};\n let float16Decode;\n let offset = 0;\n for (const spec of specs) {\n const name = spec.name;\n const dtype = spec.dtype;\n const shape = spec.shape;\n const size = sizeFromShape(shape);\n let values;\n if ('quantization' in spec) {\n const quantization = spec.quantization;\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n if (!('min' in quantization && 'scale' in quantization)) {\n throw new Error(`Weight ${spec.name} with quantization ${quantization.dtype} ` +\n `doesn't have corresponding metadata min and scale.`);\n }\n }\n else if (quantization.dtype === 'float16') {\n if (dtype !== 'float32') {\n throw new Error(`Weight ${spec.name} is quantized with ${quantization.dtype} ` +\n `which only supports weights of type float32 not ${dtype}.`);\n }\n }\n else {\n throw new Error(`Weight ${spec.name} has unknown ` +\n `quantization dtype ${quantization.dtype}. ` +\n `Supported quantization dtypes are: ` +\n `'uint8', 'uint16', and 'float16'.`);\n }\n const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];\n const byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);\n const quantizedArray = (quantization.dtype === 'uint8') ?\n new Uint8Array(byteBuffer) :\n new Uint16Array(byteBuffer);\n if (dtype === 'float32') {\n if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {\n values = new Float32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = v * quantization.scale + quantization.min;\n }\n }\n else if (quantization.dtype === 'float16') {\n if (float16Decode === undefined) {\n float16Decode = getFloat16Decoder();\n }\n values = float16Decode(quantizedArray);\n }\n else {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type float32.`);\n }\n }\n else if (dtype === 'int32') {\n if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {\n throw new Error(`Unsupported quantization type ${quantization.dtype} ` +\n `for weight type int32.`);\n }\n values = new Int32Array(quantizedArray.length);\n for (let i = 0; i < quantizedArray.length; i++) {\n const v = quantizedArray[i];\n values[i] = Math.round(v * quantization.scale + quantization.min);\n }\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * quantizationSizeFactor;\n }\n else if (dtype === 'string') {\n const size = sizeFromShape(spec.shape);\n values = [];\n for (let i = 0; i < size; i++) {\n const byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];\n offset += NUM_BYTES_STRING_LENGTH;\n const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));\n values.push(bytes);\n offset += byteLength;\n }\n }\n else {\n const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];\n const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);\n if (dtype === 'float32') {\n values = new Float32Array(byteBuffer);\n }\n else if (dtype === 'int32') {\n values = new Int32Array(byteBuffer);\n }\n else if (dtype === 'bool') {\n values = new Uint8Array(byteBuffer);\n }\n else if (dtype === 'complex64') {\n values = new Float32Array(byteBuffer);\n const real = new Float32Array(values.length / 2);\n const image = new Float32Array(values.length / 2);\n for (let i = 0; i < real.length; i++) {\n real[i] = values[i * 2];\n image[i] = values[i * 2 + 1];\n }\n const realTensor = tensor(real, shape, 'float32');\n const imageTensor = tensor(image, shape, 'float32');\n out[name] = complex(realTensor, imageTensor);\n realTensor.dispose();\n imageTensor.dispose();\n }\n else {\n throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);\n }\n offset += size * dtypeFactor;\n }\n if (dtype !== 'complex64') {\n out[name] = tensor(values, shape, dtype);\n }\n }\n return out;\n}\n/**\n * Concatenate TypedArrays into an ArrayBuffer.\n */\nexport function concatenateTypedArrays(xs) {\n // TODO(adarob, cais): Support quantization.\n if (xs === null) {\n throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);\n }\n let totalByteLength = 0;\n // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'\n // can have a different byte length from that of the `TypedArray` itself,\n // for example, when the `TypedArray` is created from an offset in an\n // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match\n // the `TypedArray` in byte length. If an element of `xs` does not show\n // this property, a new `TypedArray` that satisfy this property will be\n // constructed and pushed into `normalizedXs`.\n const normalizedXs = [];\n xs.forEach((x) => {\n totalByteLength += x.byteLength;\n // tslint:disable:no-any\n normalizedXs.push(x.byteLength === x.buffer.byteLength ? x :\n new x.constructor(x));\n if (!(x instanceof Float32Array || x instanceof Int32Array ||\n x instanceof Uint8Array)) {\n throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);\n }\n // tslint:enable:no-any\n });\n const y = new Uint8Array(totalByteLength);\n let offset = 0;\n normalizedXs.forEach((x) => {\n y.set(new Uint8Array(x.buffer), offset);\n offset += x.byteLength;\n });\n return y.buffer;\n}\n// Use Buffer on Node.js instead of Blob/atob/btoa\nconst useNodeBuffer = typeof Buffer !== 'undefined' &&\n (typeof Blob === 'undefined' || typeof atob === 'undefined' ||\n typeof btoa === 'undefined');\n/**\n * Calculate the byte length of a JavaScript string.\n *\n * Note that a JavaScript string can contain wide characters, therefore the\n * length of the string is not necessarily equal to the byte length.\n *\n * @param str Input string.\n * @returns Byte length.\n */\nexport function stringByteLength(str) {\n if (useNodeBuffer) {\n return Buffer.byteLength(str);\n }\n return new Blob([str]).size;\n}\n/**\n * Encode an ArrayBuffer as a base64 encoded string.\n *\n * @param buffer `ArrayBuffer` to be converted.\n * @returns A string that base64-encodes `buffer`.\n */\nexport function arrayBufferToBase64String(buffer) {\n if (useNodeBuffer) {\n return Buffer.from(buffer).toString('base64');\n }\n const buf = new Uint8Array(buffer);\n let s = '';\n for (let i = 0, l = buf.length; i < l; i++) {\n s += String.fromCharCode(buf[i]);\n }\n return btoa(s);\n}\n/**\n * Decode a base64 string as an ArrayBuffer.\n *\n * @param str Base64 string.\n * @returns Decoded `ArrayBuffer`.\n */\nexport function base64StringToArrayBuffer(str) {\n if (useNodeBuffer) {\n const buf = Buffer.from(str, 'base64');\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n const s = atob(str);\n const buffer = new Uint8Array(s.length);\n for (let i = 0; i < s.length; ++i) {\n buffer.set([s.charCodeAt(i)], i);\n }\n return buffer.buffer;\n}\n/**\n * Concatenate a number of ArrayBuffers into one.\n *\n * @param buffers A number of array buffers to concatenate.\n * @returns Result of concatenating `buffers` in order.\n */\nexport function concatenateArrayBuffers(buffers) {\n if (buffers.length === 1) {\n return buffers[0];\n }\n let totalByteLength = 0;\n buffers.forEach((buffer) => {\n totalByteLength += buffer.byteLength;\n });\n const temp = new Uint8Array(totalByteLength);\n let offset = 0;\n buffers.forEach((buffer) => {\n temp.set(new Uint8Array(buffer), offset);\n offset += buffer.byteLength;\n });\n return temp.buffer;\n}\n/**\n * Get the basename of a path.\n *\n * Behaves in a way analogous to Linux's basename command.\n *\n * @param path\n */\nexport function basename(path) {\n const SEPARATOR = '/';\n path = path.trim();\n while (path.endsWith(SEPARATOR)) {\n path = path.slice(0, path.length - 1);\n }\n const items = path.split(SEPARATOR);\n return items[items.length - 1];\n}\n/**\n * Populate ModelArtifactsInfo fields for a model with JSON topology.\n * @param modelArtifacts\n * @returns A ModelArtifactsInfo object.\n */\nexport function getModelArtifactsInfoForJSON(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('Expected JSON model topology, received ArrayBuffer.');\n }\n return {\n dateSaved: new Date(),\n modelTopologyType: 'JSON',\n modelTopologyBytes: modelArtifacts.modelTopology == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),\n weightSpecsBytes: modelArtifacts.weightSpecs == null ?\n 0 :\n stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),\n weightDataBytes: modelArtifacts.weightData == null ?\n 0 :\n modelArtifacts.weightData.byteLength,\n };\n}\n/**\n * Computes mantisa table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 2048 mantissa lookup values.\n */\nfunction computeFloat16MantisaTable() {\n const convertMantissa = (i) => {\n let m = i << 13;\n let e = 0;\n while ((m & 0x00800000) === 0) {\n e -= 0x00800000;\n m <<= 1;\n }\n m &= ~0x00800000;\n e += 0x38800000;\n return m | e;\n };\n const mantisaTable = new Uint32Array(2048);\n mantisaTable[0] = 0;\n for (let i = 1; i < 1024; i++) {\n mantisaTable[i] = convertMantissa(i);\n }\n for (let i = 1024; i < 2048; i++) {\n mantisaTable[i] = 0x38000000 + ((i - 1024) << 13);\n }\n return mantisaTable;\n}\n/**\n * Computes exponent table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 64 exponent lookup values.\n */\nfunction computeFloat16ExponentTable() {\n const exponentTable = new Uint32Array(64);\n exponentTable[0] = 0;\n exponentTable[31] = 0x47800000;\n exponentTable[32] = 0x80000000;\n exponentTable[63] = 0xc7800000;\n for (let i = 1; i < 31; i++) {\n exponentTable[i] = i << 23;\n }\n for (let i = 33; i < 63; i++) {\n exponentTable[i] = 0x80000000 + ((i - 32) << 23);\n }\n return exponentTable;\n}\n/**\n * Computes offset table for casting Float16 to Float32\n * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n *\n * @returns Uint32Array, 6d offset values.\n */\nfunction computeFloat16OffsetTable() {\n const offsetTable = new Uint32Array(64);\n for (let i = 0; i < 64; i++) {\n offsetTable[i] = 1024;\n }\n offsetTable[0] = offsetTable[32] = 0;\n return offsetTable;\n}\n/**\n * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values\n * to a Float32Array.\n *\n * @returns Function (buffer: Uint16Array) => Float32Array which decodes\n * the Uint16Array of Float16 bytes to a Float32Array.\n */\nexport function getFloat16Decoder() {\n // Algorithm is based off of\n // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n // Cache lookup tables\n const mantisaTable = computeFloat16MantisaTable();\n const exponentTable = computeFloat16ExponentTable();\n const offsetTable = computeFloat16OffsetTable();\n return (quantizedArray) => {\n const buffer = new ArrayBuffer(4 * quantizedArray.length);\n const bufferUint32View = new Uint32Array(buffer);\n for (let index = 0; index < quantizedArray.length; index++) {\n const float16Bits = quantizedArray[index];\n const float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] +\n exponentTable[float16Bits >> 10];\n bufferUint32View[index] = float32Bits;\n }\n return new Float32Array(buffer);\n };\n}\n//# sourceMappingURL=io_utils.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nexport class IORouterRegistry {\n constructor() {\n this.saveRouters = [];\n this.loadRouters = [];\n }\n static getInstance() {\n if (IORouterRegistry.instance == null) {\n IORouterRegistry.instance = new IORouterRegistry();\n }\n return IORouterRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerSaveRouter(saveRouter) {\n IORouterRegistry.getInstance().saveRouters.push(saveRouter);\n }\n /**\n * Register a load-handler router.\n *\n * @param loadRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `load` method defined or `null`.\n */\n static registerLoadRouter(loadRouter) {\n IORouterRegistry.getInstance().loadRouters.push(loadRouter);\n }\n /**\n * Look up IOHandler for saving, given a URL-like string.\n *\n * @param url\n * @returns If only one match is found, an instance of IOHandler with the\n * `save` method defined. If no match is found, `null`.\n * @throws Error, if more than one match is found.\n */\n static getSaveHandlers(url) {\n return IORouterRegistry.getHandlers(url, 'save');\n }\n /**\n * Look up IOHandler for loading, given a URL-like string.\n *\n * @param url\n * @param loadOptions Optional, custom load options.\n * @returns All valid handlers for `url`, given the currently registered\n * handler routers.\n */\n static getLoadHandlers(url, loadOptions) {\n return IORouterRegistry.getHandlers(url, 'load', loadOptions);\n }\n static getHandlers(url, handlerType, loadOptions) {\n const validHandlers = [];\n const routers = handlerType === 'load' ?\n IORouterRegistry.getInstance().loadRouters :\n IORouterRegistry.getInstance().saveRouters;\n routers.forEach(router => {\n const handler = router(url, loadOptions);\n if (handler !== null) {\n validHandlers.push(handler);\n }\n });\n return validHandlers;\n }\n}\nexport const registerSaveRouter = (loudRouter) => IORouterRegistry.registerSaveRouter(loudRouter);\nexport const registerLoadRouter = (loudRouter) => IORouterRegistry.registerLoadRouter(loudRouter);\nexport const getSaveHandlers = (url) => IORouterRegistry.getSaveHandlers(url);\nexport const getLoadHandlers = (url, loadOptions) => IORouterRegistry.getLoadHandlers(url, loadOptions);\n//# sourceMappingURL=router_registry.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DATABASE_NAME = 'tensorflowjs';\nconst DATABASE_VERSION = 1;\n// Model data and ModelArtifactsInfo (metadata) are stored in two separate\n// stores for efficient access of the list of stored models and their metadata.\n// 1. The object store for model data: topology, weights and weight manifests.\nconst MODEL_STORE_NAME = 'models_store';\n// 2. The object store for ModelArtifactsInfo, including meta-information such\n// as the type of topology (JSON vs binary), byte size of the topology, byte\n// size of the weights, etc.\nconst INFO_STORE_NAME = 'model_info_store';\n/**\n * Delete the entire database for tensorflow.js, including the models store.\n */\nexport async function deleteDatabase() {\n const idbFactory = getIndexedDBFactory();\n return new Promise((resolve, reject) => {\n const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);\n deleteRequest.onsuccess = () => resolve();\n deleteRequest.onerror = error => reject(error);\n });\n}\nfunction getIndexedDBFactory() {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Add more info about what IOHandler subtypes are available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('Failed to obtain IndexedDB factory because the current environment' +\n 'is not a web browser.');\n }\n // tslint:disable-next-line:no-any\n const theWindow = typeof window === 'undefined' ? self : window;\n const factory = theWindow.indexedDB || theWindow.mozIndexedDB ||\n theWindow.webkitIndexedDB || theWindow.msIndexedDB ||\n theWindow.shimIndexedDB;\n if (factory == null) {\n throw new Error('The current browser does not appear to support IndexedDB.');\n }\n return factory;\n}\nfunction setUpDatabase(openRequest) {\n const db = openRequest.result;\n db.createObjectStore(MODEL_STORE_NAME, { keyPath: 'modelPath' });\n db.createObjectStore(INFO_STORE_NAME, { keyPath: 'modelPath' });\n}\n/**\n * IOHandler subclass: Browser IndexedDB.\n *\n * See the doc string of `browserIndexedDB` for more details.\n */\nexport class BrowserIndexedDB {\n constructor(modelPath) {\n this.indexedDB = getIndexedDBFactory();\n if (modelPath == null || !modelPath) {\n throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n }\n async save(modelArtifacts) {\n // TODO(cais): Support saving GraphDef models.\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n return this.databaseAction(this.modelPath, modelArtifacts);\n }\n async load() {\n return this.databaseAction(this.modelPath);\n }\n /**\n * Perform database action to put model artifacts into or read model artifacts\n * from IndexedDB object store.\n *\n * Whether the action is put or get depends on whether `modelArtifacts` is\n * specified. If it is specified, the action will be put; otherwise the action\n * will be get.\n *\n * @param modelPath A unique string path for the model.\n * @param modelArtifacts If specified, it will be the model artifacts to be\n * stored in IndexedDB.\n * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`\n * of `ModelArtifacts`, if the action is get.\n */\n databaseAction(modelPath, modelArtifacts) {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n if (modelArtifacts == null) {\n // Read model out from object store.\n const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const getRequest = modelStore.get(this.modelPath);\n getRequest.onsuccess = () => {\n if (getRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${this.modelPath}' ` +\n `in IndexedDB.`));\n }\n else {\n resolve(getRequest.result.modelArtifacts);\n }\n };\n getRequest.onerror = error => {\n db.close();\n return reject(getRequest.error);\n };\n modelTx.oncomplete = () => db.close();\n }\n else {\n // Put model into object store.\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n // First, put ModelArtifactsInfo into info store.\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n let infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const putInfoRequest = infoStore.put({ modelPath: this.modelPath, modelArtifactsInfo });\n let modelTx;\n putInfoRequest.onsuccess = () => {\n // Second, put model data into model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const putModelRequest = modelStore.put({\n modelPath: this.modelPath,\n modelArtifacts,\n modelArtifactsInfo\n });\n putModelRequest.onsuccess = () => resolve({ modelArtifactsInfo });\n putModelRequest.onerror = error => {\n // If the put-model request fails, roll back the info entry as\n // well.\n infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const deleteInfoRequest = infoStore.delete(this.modelPath);\n deleteInfoRequest.onsuccess = () => {\n db.close();\n return reject(putModelRequest.error);\n };\n deleteInfoRequest.onerror = error => {\n db.close();\n return reject(putModelRequest.error);\n };\n };\n };\n putInfoRequest.onerror = error => {\n db.close();\n return reject(putInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n }\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\nBrowserIndexedDB.URL_SCHEME = 'indexeddb://';\nexport const indexedDBRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {\n return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(indexedDBRouter);\nIORouterRegistry.registerLoadRouter(indexedDBRouter);\n/**\n * Creates a browser IndexedDB IOHandler for saving and loading models.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save('indexeddb://MyModel'));\n * console.log(saveResult);\n * ```\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),\n * which can be used with, e.g., `tf.Model.save`.\n */\nexport function browserIndexedDB(modelPath) {\n return new BrowserIndexedDB(modelPath);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserIndexedDB.URL_SCHEME) ?\n key.slice(BrowserIndexedDB.URL_SCHEME.length) :\n key;\n}\nexport class BrowserIndexedDBManager {\n constructor() {\n this.indexedDB = getIndexedDBFactory();\n }\n async listModels() {\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const tx = db.transaction(INFO_STORE_NAME, 'readonly');\n const store = tx.objectStore(INFO_STORE_NAME);\n // tslint:disable:max-line-length\n // Need to cast `store` as `any` here because TypeScript's DOM\n // library does not have the `getAll()` method even though the\n // method is supported in the latest version of most mainstream\n // browsers:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll\n // tslint:enable:max-line-length\n // tslint:disable-next-line:no-any\n const getAllInfoRequest = store.getAll();\n getAllInfoRequest.onsuccess = () => {\n const out = {};\n for (const item of getAllInfoRequest.result) {\n out[item.modelPath] = item.modelArtifactsInfo;\n }\n resolve(out);\n };\n getAllInfoRequest.onerror = error => {\n db.close();\n return reject(getAllInfoRequest.error);\n };\n tx.oncomplete = () => db.close();\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n return new Promise((resolve, reject) => {\n const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n openRequest.onupgradeneeded = () => setUpDatabase(openRequest);\n openRequest.onsuccess = () => {\n const db = openRequest.result;\n const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');\n const infoStore = infoTx.objectStore(INFO_STORE_NAME);\n const getInfoRequest = infoStore.get(path);\n let modelTx;\n getInfoRequest.onsuccess = () => {\n if (getInfoRequest.result == null) {\n db.close();\n return reject(new Error(`Cannot find model with path '${path}' ` +\n `in IndexedDB.`));\n }\n else {\n // First, delete the entry in the info store.\n const deleteInfoRequest = infoStore.delete(path);\n const deleteModelData = () => {\n // Second, delete the entry in the model store.\n modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');\n const modelStore = modelTx.objectStore(MODEL_STORE_NAME);\n const deleteModelRequest = modelStore.delete(path);\n deleteModelRequest.onsuccess = () => resolve(getInfoRequest.result.modelArtifactsInfo);\n deleteModelRequest.onerror = error => reject(getInfoRequest.error);\n };\n // Proceed with deleting model data regardless of whether deletion\n // of info data succeeds or not.\n deleteInfoRequest.onsuccess = deleteModelData;\n deleteInfoRequest.onerror = error => {\n deleteModelData();\n db.close();\n return reject(getInfoRequest.error);\n };\n }\n };\n getInfoRequest.onerror = error => {\n db.close();\n return reject(getInfoRequest.error);\n };\n infoTx.oncomplete = () => {\n if (modelTx == null) {\n db.close();\n }\n else {\n modelTx.oncomplete = () => db.close();\n }\n };\n };\n openRequest.onerror = error => reject(openRequest.error);\n });\n }\n}\n//# sourceMappingURL=indexed_db.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { arrayBufferToBase64String, base64StringToArrayBuffer, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst PATH_SEPARATOR = '/';\nconst PATH_PREFIX = 'tensorflowjs_models';\nconst INFO_SUFFIX = 'info';\nconst MODEL_TOPOLOGY_SUFFIX = 'model_topology';\nconst WEIGHT_SPECS_SUFFIX = 'weight_specs';\nconst WEIGHT_DATA_SUFFIX = 'weight_data';\nconst MODEL_METADATA_SUFFIX = 'model_metadata';\n/**\n * Purge all tensorflow.js-saved model artifacts from local storage.\n *\n * @returns Paths of the models purged.\n */\nexport function purgeLocalStorageArtifacts() {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n throw new Error('purgeLocalStorageModels() cannot proceed because local storage is ' +\n 'unavailable in the current environment.');\n }\n const LS = window.localStorage;\n const purgedModelPaths = [];\n for (let i = 0; i < LS.length; ++i) {\n const key = LS.key(i);\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n if (key.startsWith(prefix) && key.length > prefix.length) {\n LS.removeItem(key);\n const modelName = getModelPathFromKey(key);\n if (purgedModelPaths.indexOf(modelName) === -1) {\n purgedModelPaths.push(modelName);\n }\n }\n }\n return purgedModelPaths;\n}\nfunction getModelKeys(path) {\n return {\n info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),\n topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),\n weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),\n weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),\n modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)\n };\n}\n/**\n * Get model path from a local-storage key.\n *\n * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'\n *\n * @param key\n */\nfunction getModelPathFromKey(key) {\n const items = key.split(PATH_SEPARATOR);\n if (items.length < 3) {\n throw new Error(`Invalid key format: ${key}`);\n }\n return items.slice(1, items.length - 1).join(PATH_SEPARATOR);\n}\nfunction maybeStripScheme(key) {\n return key.startsWith(BrowserLocalStorage.URL_SCHEME) ?\n key.slice(BrowserLocalStorage.URL_SCHEME.length) :\n key;\n}\n/**\n * IOHandler subclass: Browser Local Storage.\n *\n * See the doc string to `browserLocalStorage` for more details.\n */\nexport class BrowserLocalStorage {\n constructor(modelPath) {\n if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' ||\n typeof window.localStorage === 'undefined') {\n // TODO(cais): Add more info about what IOHandler subtypes are\n // available.\n // Maybe point to a doc page on the web and/or automatically determine\n // the available IOHandlers and print them in the error message.\n throw new Error('The current environment does not support local storage.');\n }\n this.LS = window.localStorage;\n if (modelPath == null || !modelPath) {\n throw new Error('For local storage, modelPath must not be null, undefined or empty.');\n }\n this.modelPath = modelPath;\n this.keys = getModelKeys(this.modelPath);\n }\n /**\n * Save model artifacts to browser local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @param modelArtifacts The model artifacts to be stored.\n * @returns An instance of SaveResult.\n */\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserLocalStorage.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const topology = JSON.stringify(modelArtifacts.modelTopology);\n const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);\n const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);\n try {\n this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));\n this.LS.setItem(this.keys.topology, topology);\n this.LS.setItem(this.keys.weightSpecs, weightSpecs);\n this.LS.setItem(this.keys.weightData, arrayBufferToBase64String(modelArtifacts.weightData));\n const result = {\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy\n };\n if (modelArtifacts.signature != null) {\n result.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n result.modelInitializer = modelArtifacts.modelInitializer;\n }\n this.LS.setItem(this.keys.modelMetadata, JSON.stringify(result));\n return { modelArtifactsInfo };\n }\n catch (err) {\n // If saving failed, clean up all items saved so far.\n this.LS.removeItem(this.keys.info);\n this.LS.removeItem(this.keys.topology);\n this.LS.removeItem(this.keys.weightSpecs);\n this.LS.removeItem(this.keys.weightData);\n this.LS.removeItem(this.keys.modelMetadata);\n throw new Error(`Failed to save model '${this.modelPath}' to local storage: ` +\n `size quota being exceeded is a possible cause of this failure: ` +\n `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` +\n `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` +\n `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);\n }\n }\n }\n /**\n * Load a model from local storage.\n *\n * See the documentation to `browserLocalStorage` for details on the saved\n * artifacts.\n *\n * @returns The loaded model (if loading succeeds).\n */\n async load() {\n const info = JSON.parse(this.LS.getItem(this.keys.info));\n if (info == null) {\n throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);\n }\n if (info.modelTopologyType !== 'JSON') {\n throw new Error('BrowserLocalStorage does not support loading non-JSON model ' +\n 'topology yet.');\n }\n const out = {};\n // Load topology.\n const topology = JSON.parse(this.LS.getItem(this.keys.topology));\n if (topology == null) {\n throw new Error(`In local storage, the topology of model '${this.modelPath}' ` +\n `is missing.`);\n }\n out.modelTopology = topology;\n // Load weight specs.\n const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));\n if (weightSpecs == null) {\n throw new Error(`In local storage, the weight specs of model '${this.modelPath}' ` +\n `are missing.`);\n }\n out.weightSpecs = weightSpecs;\n // Load meta-data fields.\n const metadataString = this.LS.getItem(this.keys.modelMetadata);\n if (metadataString != null) {\n const metadata = JSON.parse(metadataString);\n out.format = metadata['format'];\n out.generatedBy = metadata['generatedBy'];\n out.convertedBy = metadata['convertedBy'];\n if (metadata['signature'] != null) {\n out.signature = metadata['signature'];\n }\n if (metadata['userDefinedMetadata'] != null) {\n out.userDefinedMetadata = metadata['userDefinedMetadata'];\n }\n if (metadata['modelInitializer'] != null) {\n out.modelInitializer = metadata['modelInitializer'];\n }\n }\n // Load weight data.\n const weightDataBase64 = this.LS.getItem(this.keys.weightData);\n if (weightDataBase64 == null) {\n throw new Error(`In local storage, the binary weight values of model ` +\n `'${this.modelPath}' are missing.`);\n }\n out.weightData = base64StringToArrayBuffer(weightDataBase64);\n return out;\n }\n}\nBrowserLocalStorage.URL_SCHEME = 'localstorage://';\nexport const localStorageRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {\n return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(localStorageRouter);\nIORouterRegistry.registerLoadRouter(localStorageRouter);\n/**\n * Factory function for local storage IOHandler.\n *\n * This `IOHandler` supports both `save` and `load`.\n *\n * For each model's saved artifacts, four items are saved to local storage.\n * - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the\n * model, such as date saved, type of the topology, size in bytes, etc.\n * - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-\n * style models, this is a stringized JSON.\n * - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the\n * model, can be used to decode the saved binary weight values (see\n * item below).\n * - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary\n * weight values, stored as a base64-encoded string.\n *\n * Saving may throw an `Error` if the total size of the artifacts exceed the\n * browser-specific quota.\n *\n * @param modelPath A unique identifier for the model to be saved. Must be a\n * non-empty string.\n * @returns An instance of `IOHandler`, which can be used with, e.g.,\n * `tf.Model.save`.\n */\nexport function browserLocalStorage(modelPath) {\n return new BrowserLocalStorage(modelPath);\n}\nexport class BrowserLocalStorageManager {\n constructor() {\n assert(env().getBool('IS_BROWSER'), () => 'Current environment is not a web browser');\n assert(typeof window === 'undefined' ||\n typeof window.localStorage !== 'undefined', () => 'Current browser does not appear to support localStorage');\n this.LS = window.localStorage;\n }\n async listModels() {\n const out = {};\n const prefix = PATH_PREFIX + PATH_SEPARATOR;\n const suffix = PATH_SEPARATOR + INFO_SUFFIX;\n for (let i = 0; i < this.LS.length; ++i) {\n const key = this.LS.key(i);\n if (key.startsWith(prefix) && key.endsWith(suffix)) {\n const modelPath = getModelPathFromKey(key);\n out[modelPath] = JSON.parse(this.LS.getItem(key));\n }\n }\n return out;\n }\n async removeModel(path) {\n path = maybeStripScheme(path);\n const keys = getModelKeys(path);\n if (this.LS.getItem(keys.info) == null) {\n throw new Error(`Cannot find model at path '${path}'`);\n }\n const info = JSON.parse(this.LS.getItem(keys.info));\n this.LS.removeItem(keys.info);\n this.LS.removeItem(keys.topology);\n this.LS.removeItem(keys.weightSpecs);\n this.LS.removeItem(keys.weightData);\n return info;\n }\n}\n//# sourceMappingURL=local_storage.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Classes and functions for model management across multiple storage mediums.\n *\n * Supported client actions:\n * - Listing models on all registered storage mediums.\n * - Remove model by URL from any registered storage mediums, by using URL\n * string.\n * - Moving or copying model from one path to another in the same medium or from\n * one medium to another, by using URL strings.\n */\nimport { assert } from '../util';\nimport { IORouterRegistry } from './router_registry';\nconst URL_SCHEME_SUFFIX = '://';\nexport class ModelStoreManagerRegistry {\n constructor() {\n this.managers = {};\n }\n static getInstance() {\n if (ModelStoreManagerRegistry.instance == null) {\n ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();\n }\n return ModelStoreManagerRegistry.instance;\n }\n /**\n * Register a save-handler router.\n *\n * @param saveRouter A function that maps a URL-like string onto an instance\n * of `IOHandler` with the `save` method defined or `null`.\n */\n static registerManager(scheme, manager) {\n assert(scheme != null, () => 'scheme must not be undefined or null.');\n if (scheme.endsWith(URL_SCHEME_SUFFIX)) {\n scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));\n }\n assert(scheme.length > 0, () => 'scheme must not be an empty string.');\n const registry = ModelStoreManagerRegistry.getInstance();\n assert(registry.managers[scheme] == null, () => `A model store manager is already registered for scheme '${scheme}'.`);\n registry.managers[scheme] = manager;\n }\n static getManager(scheme) {\n const manager = this.getInstance().managers[scheme];\n if (manager == null) {\n throw new Error(`Cannot find model manager for scheme '${scheme}'`);\n }\n return manager;\n }\n static getSchemes() {\n return Object.keys(this.getInstance().managers);\n }\n}\n/**\n * Helper method for parsing a URL string into a scheme and a path.\n *\n * @param url E.g., 'localstorage://my-model'\n * @returns A dictionary with two fields: scheme and path.\n * Scheme: e.g., 'localstorage' in the example above.\n * Path: e.g., 'my-model' in the example above.\n */\nfunction parseURL(url) {\n if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {\n throw new Error(`The url string provided does not contain a scheme. ` +\n `Supported schemes are: ` +\n `${ModelStoreManagerRegistry.getSchemes().join(',')}`);\n }\n return {\n scheme: url.split(URL_SCHEME_SUFFIX)[0],\n path: url.split(URL_SCHEME_SUFFIX)[1],\n };\n}\nasync function cloneModelInternal(sourceURL, destURL, deleteSource = false) {\n assert(sourceURL !== destURL, () => `Old path and new path are the same: '${sourceURL}'`);\n const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);\n assert(loadHandlers.length > 0, () => `Copying failed because no load handler is found for source URL ${sourceURL}.`);\n assert(loadHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `load handlers for source URL ${sourceURL}.`);\n const loadHandler = loadHandlers[0];\n const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);\n assert(saveHandlers.length > 0, () => `Copying failed because no save handler is found for destination ` +\n `URL ${destURL}.`);\n assert(saveHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` +\n `save handlers for destination URL ${destURL}.`);\n const saveHandler = saveHandlers[0];\n const sourceScheme = parseURL(sourceURL).scheme;\n const sourcePath = parseURL(sourceURL).path;\n const sameMedium = sourceScheme === parseURL(sourceURL).scheme;\n const modelArtifacts = await loadHandler.load();\n // If moving within the same storage medium, remove the old model as soon as\n // the loading is done. Without doing this, it is possible that the combined\n // size of the two models will cause the cloning to fail.\n if (deleteSource && sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n const saveResult = await saveHandler.save(modelArtifacts);\n // If moving between mediums, the deletion is done after the save succeeds.\n // This guards against the case in which saving to the destination medium\n // fails.\n if (deleteSource && !sameMedium) {\n await ModelStoreManagerRegistry.getManager(sourceScheme)\n .removeModel(sourcePath);\n }\n return saveResult.modelArtifactsInfo;\n}\n/**\n * List all models stored in registered storage mediums.\n *\n * For a web browser environment, the registered mediums are Local Storage and\n * IndexedDB.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @returns A `Promise` of a dictionary mapping URLs of existing models to\n * their model artifacts info. URLs include medium-specific schemes, e.g.,\n * 'indexeddb://my/model/1'. Model artifacts info include type of the\n * model's topology, byte sizes of the topology, weights, etc.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function listModels() {\n const schemes = ModelStoreManagerRegistry.getSchemes();\n const out = {};\n for (const scheme of schemes) {\n const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();\n for (const path in schemeOut) {\n const url = scheme + URL_SCHEME_SUFFIX + path;\n out[url] = schemeOut[path];\n }\n }\n return out;\n}\n/**\n * Remove a model specified by URL from a reigstered storage medium.\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Delete the model.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n * ```\n *\n * @param url A URL to a stored model, with a scheme prefix, e.g.,\n * 'localstorage://my-model-1', 'indexeddb://my/model/2'.\n * @returns ModelArtifactsInfo of the deleted model (if and only if deletion\n * is successful).\n * @throws Error if deletion fails, e.g., if no model exists at `path`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function removeModel(url) {\n const schemeAndPath = parseURL(url);\n const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);\n return manager.removeModel(schemeAndPath.path);\n}\n/**\n * Copy a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Copying within a storage medium, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Copying between two storage mediums, e.g.,\n * `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Copy the model, from Local Storage to IndexedDB.\n * await tf.io.copyModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove both models.\n * await tf.io.removeModel('localstorage://demo/management/model1');\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of copying.\n * @param destURL Destination URL of copying.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function copyModel(sourceURL, destURL) {\n const deleteSource = false;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\n/**\n * Move a model from one URL to another.\n *\n * This function supports:\n *\n * 1. Moving within a storage medium, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`\n * 2. Moving between two storage mediums, e.g.,\n * `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`\n *\n * ```js\n * // First create and save a model.\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * await model.save('localstorage://demo/management/model1');\n *\n * // Then list existing models.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Move the model, from Local Storage to IndexedDB.\n * await tf.io.moveModel(\n * 'localstorage://demo/management/model1',\n * 'indexeddb://demo/management/model1');\n *\n * // List models again.\n * console.log(JSON.stringify(await tf.io.listModels()));\n *\n * // Remove the moved model.\n * await tf.io.removeModel('indexeddb://demo/management/model1');\n * ```\n *\n * @param sourceURL Source URL of moving.\n * @param destURL Destination URL of moving.\n * @returns ModelArtifactsInfo of the copied model (if and only if copying\n * is successful).\n * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or\n * if `oldPath` and `newPath` are identical.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Management',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nasync function moveModel(sourceURL, destURL) {\n const deleteSource = true;\n return cloneModelInternal(sourceURL, destURL, deleteSource);\n}\nexport { moveModel, copyModel, removeModel, listModels };\n//# sourceMappingURL=model_management.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { BrowserIndexedDB, BrowserIndexedDBManager } from '../io/indexed_db';\nimport { BrowserLocalStorage, BrowserLocalStorageManager } from '../io/local_storage';\nimport { ModelStoreManagerRegistry } from '../io/model_management';\nexport class PlatformBrowser {\n fetch(path, init) {\n return fetch(path, init);\n }\n now() {\n return performance.now();\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`);\n }\n if (this.textEncoder == null) {\n this.textEncoder = new TextEncoder();\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n return new TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_BROWSER')) {\n env().setPlatform('browser', new PlatformBrowser());\n // Register LocalStorage IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());\n }\n catch (err) {\n }\n // Register IndexedDB IOHandler\n try {\n ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());\n }\n catch (err) {\n }\n}\n//# sourceMappingURL=platform_browser.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\n// We are wrapping this within an object so it can be stubbed by Jasmine.\nexport const getNodeFetch = {\n // tslint:disable-next-line:no-require-imports\n importFetch: () => require('node-fetch')\n};\nlet systemFetch;\n// These getters and setters are for testing so we don't export a mutable\n// variable.\nexport function resetSystemFetch() {\n systemFetch = null;\n}\nexport function setSystemFetch(fetchFn) {\n systemFetch = fetchFn;\n}\nexport function getSystemFetch() {\n return systemFetch;\n}\nexport class PlatformNode {\n constructor() {\n // tslint:disable-next-line:no-require-imports\n this.util = require('util');\n // According to the spec, the built-in encoder can do only UTF-8 encoding.\n // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder\n this.textEncoder = new this.util.TextEncoder();\n }\n fetch(path, requestInits) {\n if (env().global.fetch != null) {\n return env().global.fetch(path, requestInits);\n }\n if (systemFetch == null) {\n systemFetch = getNodeFetch.importFetch();\n }\n return systemFetch(path, requestInits);\n }\n now() {\n const time = process.hrtime();\n return time[0] * 1000 + time[1] / 1000000;\n }\n encode(text, encoding) {\n if (encoding !== 'utf-8' && encoding !== 'utf8') {\n throw new Error(`Node built-in encoder only supports utf-8, but got ${encoding}`);\n }\n return this.textEncoder.encode(text);\n }\n decode(bytes, encoding) {\n if (bytes.length === 0) {\n return '';\n }\n return new this.util.TextDecoder(encoding).decode(bytes);\n }\n}\nif (env().get('IS_NODE')) {\n env().setPlatform('node', new PlatformNode());\n}\n//# sourceMappingURL=platform_node.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { TensorBuffer } from '../tensor';\nimport * as util from '../util';\n/**\n * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.\n *\n * The values are stored in CPU as `TypedArray`. Fill the buffer using\n * `buffer.set()`, or by modifying directly `buffer.values`.\n *\n * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with\n * those values.\n *\n * ```js\n * // Create a buffer and set values at particular indices.\n * const buffer = tf.buffer([2, 2]);\n * buffer.set(3, 0, 0);\n * buffer.set(5, 1, 0);\n *\n * // Convert the buffer back to a tensor.\n * buffer.toTensor().print();\n * ```\n *\n * @param shape An array of integers defining the output tensor shape.\n * @param dtype The dtype of the buffer. Defaults to 'float32'.\n * @param values The values of the buffer as `TypedArray`. Defaults to\n * zeros.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function buffer(shape, dtype = 'float32', values) {\n dtype = dtype || 'float32';\n util.assertNonNegativeIntegerDimensions(shape);\n return new TensorBuffer(shape, dtype, values);\n}\n//# sourceMappingURL=buffer.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Cast } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Casts a `tf.Tensor` to a new dtype.\n *\n * ```js\n * const x = tf.tensor1d([1.5, 2.5, 3]);\n * tf.cast(x, 'int32').print();\n * ```\n * @param x The input tensor to be casted.\n * @param dtype The dtype to cast the input tensor to.\n *\n * @doc {heading: 'Tensors', subheading: 'Transformations'}\n */\nfunction cast_(x, dtype) {\n const $x = convertToTensor(x, 'x', 'cast');\n // Sanity checks.\n if (!util.isValidDtype(dtype)) {\n throw new Error(`Failed to cast to unknown dtype ${dtype}`);\n }\n if (dtype === 'string' && $x.dtype !== 'string' ||\n dtype !== 'string' && $x.dtype === 'string') {\n throw new Error('Only strings can be casted to strings');\n }\n const inputs = { x: $x };\n const attrs = { dtype };\n return ENGINE.runKernel(Cast, inputs, attrs);\n}\nexport const cast = op({ cast_ });\n//# sourceMappingURL=cast.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Identity } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a new tensor with the same values and shape as the specified\n * tensor.\n *\n * ```js\n * const x = tf.tensor([1, 2]);\n *\n * x.clone().print();\n * ```\n *\n * @param x The tensor to clone.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction clone_(x) {\n const $x = convertToTensor(x, 'x', 'clone', 'string_or_numeric');\n const inputs = { x: $x };\n // Note this op is called tf.identity in python. Hence the kernel name used\n // here.\n return ENGINE.runKernel(Identity, inputs);\n}\nexport const clone = op({ clone_ });\n//# sourceMappingURL=clone.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * Prints information about the `tf.Tensor` including its data.\n *\n * ```js\n * const verbose = true;\n * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);\n * ```\n * @param x The tensor to be printed.\n * @param verbose Whether to print verbose information about the ` Tensor`,\n * including dtype and size.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function print(x, verbose = false) {\n console.log(x.toString(verbose));\n}\n//# sourceMappingURL=print.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandlers related to files, such as browser-triggered file downloads,\n * user-selected files in browser.\n */\nimport '../flags';\nimport { env } from '../environment';\nimport { basename, concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nconst DEFAULT_FILE_NAME_PREFIX = 'model';\nconst DEFAULT_JSON_EXTENSION_NAME = '.json';\nconst DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';\nfunction defer(f) {\n return new Promise(resolve => setTimeout(resolve)).then(f);\n}\nexport class BrowserDownloads {\n constructor(fileNamePrefix) {\n if (!env().getBool('IS_BROWSER')) {\n // TODO(cais): Provide info on what IOHandlers are available under the\n // current environment.\n throw new Error('browserDownloads() cannot proceed because the current environment ' +\n 'is not a browser.');\n }\n if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {\n fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);\n }\n if (fileNamePrefix == null || fileNamePrefix.length === 0) {\n fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;\n }\n this.modelTopologyFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;\n this.weightDataFileName =\n fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;\n }\n async save(modelArtifacts) {\n if (typeof (document) === 'undefined') {\n throw new Error('Browser downloads are not supported in ' +\n 'this environment since `document` is not present');\n }\n const weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], { type: 'application/octet-stream' }));\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserDownloads.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n else {\n const weightsManifest = [{\n paths: ['./' + this.weightDataFileName],\n weights: modelArtifacts.weightSpecs\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n const modelTopologyAndWeightManifestURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: 'application/json' }));\n // If anchor elements are not provided, create them without attaching them\n // to parents, so that the downloaded file names can be controlled.\n const jsonAnchor = this.jsonAnchor == null ? document.createElement('a') :\n this.jsonAnchor;\n jsonAnchor.download = this.modelTopologyFileName;\n jsonAnchor.href = modelTopologyAndWeightManifestURL;\n // Trigger downloads by evoking a click event on the download anchors.\n // When multiple downloads are started synchronously, Firefox will only\n // save the last one.\n await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));\n if (modelArtifacts.weightData != null) {\n const weightDataAnchor = this.weightDataAnchor == null ?\n document.createElement('a') :\n this.weightDataAnchor;\n weightDataAnchor.download = this.weightDataFileName;\n weightDataAnchor.href = weightsURL;\n await defer(() => weightDataAnchor.dispatchEvent(new MouseEvent('click')));\n }\n return { modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts) };\n }\n }\n}\nBrowserDownloads.URL_SCHEME = 'downloads://';\nclass BrowserFiles {\n constructor(files) {\n if (files == null || files.length < 1) {\n throw new Error(`When calling browserFiles, at least 1 file is required, ` +\n `but received ${files}`);\n }\n this.files = files;\n }\n async load() {\n const jsonFile = this.files[0];\n const weightFiles = this.files.slice(1);\n return new Promise((resolve, reject) => {\n const jsonReader = new FileReader();\n jsonReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const modelJSON = JSON.parse(event.target.result);\n const modelTopology = modelJSON.modelTopology;\n if (modelTopology == null) {\n reject(new Error(`modelTopology field is missing from file ${jsonFile.name}`));\n return;\n }\n if (weightFiles.length === 0) {\n resolve({ modelTopology });\n }\n const weightsManifest = modelJSON.weightsManifest;\n if (weightsManifest == null) {\n reject(new Error(`weightManifest field is missing from file ${jsonFile.name}`));\n return;\n }\n let pathToFile;\n try {\n pathToFile =\n this.checkManifestAndWeightFiles(weightsManifest, weightFiles);\n }\n catch (err) {\n reject(err);\n return;\n }\n const weightSpecs = [];\n const paths = [];\n const perFileBuffers = [];\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n paths.push(path);\n perFileBuffers.push(null);\n });\n weightSpecs.push(...weightsGroup.weights);\n });\n weightsManifest.forEach(weightsGroup => {\n weightsGroup.paths.forEach(path => {\n const weightFileReader = new FileReader();\n weightFileReader.onload = (event) => {\n // tslint:disable-next-line:no-any\n const weightData = event.target.result;\n const index = paths.indexOf(path);\n perFileBuffers[index] = weightData;\n if (perFileBuffers.indexOf(null) === -1) {\n const result = {\n modelTopology,\n weightSpecs,\n weightData: concatenateArrayBuffers(perFileBuffers),\n format: modelJSON.format,\n generatedBy: modelJSON.generatedBy,\n convertedBy: modelJSON.convertedBy\n };\n if (modelJSON.signature != null) {\n result.signature = modelJSON.signature;\n }\n if (modelJSON.userDefinedMetadata != null) {\n result.userDefinedMetadata = modelJSON.userDefinedMetadata;\n }\n if (modelJSON.modelInitializer != null) {\n result.modelInitializer = modelJSON.modelInitializer;\n }\n resolve(result);\n }\n };\n weightFileReader.onerror = error => reject(`Failed to weights data from file of path '${path}'.`);\n weightFileReader.readAsArrayBuffer(pathToFile[path]);\n });\n });\n };\n jsonReader.onerror = error => reject(`Failed to read model topology and weights manifest JSON ` +\n `from file '${jsonFile.name}'. BrowserFiles supports loading ` +\n `Keras-style tf.Model artifacts only.`);\n jsonReader.readAsText(jsonFile);\n });\n }\n /**\n * Check the compatibility between weights manifest and weight files.\n */\n checkManifestAndWeightFiles(manifest, files) {\n const basenames = [];\n const fileNames = files.map(file => basename(file.name));\n const pathToFile = {};\n for (const group of manifest) {\n group.paths.forEach(path => {\n const pathBasename = basename(path);\n if (basenames.indexOf(pathBasename) !== -1) {\n throw new Error(`Duplicate file basename found in weights manifest: ` +\n `'${pathBasename}'`);\n }\n basenames.push(pathBasename);\n if (fileNames.indexOf(pathBasename) === -1) {\n throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);\n }\n else {\n pathToFile[path] = files[fileNames.indexOf(pathBasename)];\n }\n });\n }\n if (basenames.length !== files.length) {\n throw new Error(`Mismatch in the number of files in weights manifest ` +\n `(${basenames.length}) and the number of weight files provided ` +\n `(${files.length}).`);\n }\n return pathToFile;\n }\n}\nexport const browserDownloadsRouter = (url) => {\n if (!env().getBool('IS_BROWSER')) {\n return null;\n }\n else {\n if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {\n return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));\n }\n else {\n return null;\n }\n }\n};\nIORouterRegistry.registerSaveRouter(browserDownloadsRouter);\n/**\n * Creates an IOHandler that triggers file downloads from the browser.\n *\n * The returned `IOHandler` instance can be used as model exporting methods such\n * as `tf.Model.save` and supports only saving.\n *\n * ```js\n * const model = tf.sequential();\n * model.add(tf.layers.dense(\n * {units: 1, inputShape: [10], activation: 'sigmoid'}));\n * const saveResult = await model.save('downloads://mymodel');\n * // This will trigger downloading of two files:\n * // 'mymodel.json' and 'mymodel.weights.bin'.\n * console.log(saveResult);\n * ```\n *\n * @param fileNamePrefix Prefix name of the files to be downloaded. For use with\n * `tf.Model`, `fileNamePrefix` should follow either of the following two\n * formats:\n * 1. `null` or `undefined`, in which case the default file\n * names will be used:\n * - 'model.json' for the JSON file containing the model topology and\n * weights manifest.\n * - 'model.weights.bin' for the binary file containing the binary weight\n * values.\n * 2. A single string or an Array of a single string, as the file name prefix.\n * For example, if `'foo'` is provided, the downloaded JSON\n * file and binary weights file will be named 'foo.json' and\n * 'foo.weights.bin', respectively.\n * @param config Additional configuration for triggering downloads.\n * @returns An instance of `BrowserDownloads` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserDownloads(fileNamePrefix = 'model') {\n return new BrowserDownloads(fileNamePrefix);\n}\n/**\n * Creates an IOHandler that loads model artifacts from user-selected files.\n *\n * This method can be used for loading from files such as user-selected files\n * in the browser.\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * // Note: This code snippet won't run properly without the actual file input\n * // elements in the HTML DOM.\n *\n * // Suppose there are two HTML file input (``)\n * // elements.\n * const uploadJSONInput = document.getElementById('upload-json');\n * const uploadWeightsInput = document.getElementById('upload-weights');\n * const model = await tf.loadLayersModel(tf.io.browserFiles(\n * [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));\n * ```\n *\n * @param files `File`s to load from. Currently, this function supports only\n * loading from files that contain Keras-style models (i.e., `tf.Model`s), for\n * which an `Array` of `File`s is expected (in that order):\n * - A JSON file containing the model topology and weight manifest.\n * - Optionally, One or more binary files containing the binary weights.\n * These files must have names that match the paths in the `weightsManifest`\n * contained by the aforementioned JSON file, or errors will be thrown\n * during loading. These weights files have the same format as the ones\n * generated by `tensorflowjs_converter` that comes with the `tensorflowjs`\n * Python PIP package. If no weights files are provided, only the model\n * topology will be loaded from the JSON file above.\n * @returns An instance of `Files` `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function browserFiles(files) {\n return new BrowserFiles(files);\n}\n//# sourceMappingURL=browser_files.js.map","/**\n * @license\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// Required side effectful code for tfjs-core\n// Set up Engine and ENV\nimport { getOrMakeEngine } from './engine';\ngetOrMakeEngine();\n// Register backend-agnostic flags.\nimport './flags';\n// Register platforms\nimport './platforms/platform_browser';\nimport './platforms/platform_node';\n// Set up OpHandler\nimport { buffer } from './ops/buffer';\nimport { cast } from './ops/cast';\nimport { clone } from './ops/clone';\nimport { print } from './ops/print';\nimport { setOpHandler } from './tensor';\nconst opHandler = {\n buffer,\n cast,\n clone,\n print\n};\nsetOpHandler(opHandler);\n//# sourceMappingURL=base_side_effects.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { assert } from '../util';\n/**\n * Monitor Promise.all progress, fire onProgress callback function.\n *\n * @param promises Promise list going to be monitored\n * @param onProgress Callback function. Fired when a promise resolved.\n * @param startFraction Optional fraction start. Default to 0.\n * @param endFraction Optional fraction end. Default to 1.\n */\nexport function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {\n checkPromises(promises);\n startFraction = startFraction == null ? 0 : startFraction;\n endFraction = endFraction == null ? 1 : endFraction;\n checkFraction(startFraction, endFraction);\n let resolvedPromise = 0;\n const registerMonitor = (promise) => {\n promise.then(value => {\n const fraction = startFraction +\n ++resolvedPromise / promises.length * (endFraction - startFraction);\n // pass fraction as parameter to callback function.\n onProgress(fraction);\n return value;\n });\n return promise;\n };\n function checkPromises(promises) {\n assert(promises != null && Array.isArray(promises) && promises.length > 0, () => 'promises must be a none empty array');\n }\n function checkFraction(startFraction, endFraction) {\n assert(startFraction >= 0 && startFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got startFraction ${startFraction}`);\n assert(endFraction >= 0 && endFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` +\n `got endFraction ${endFraction}`);\n assert(endFraction >= startFraction, () => `startFraction must be no more than endFraction, but ` +\n `got startFraction ${startFraction} and endFraction ` +\n `${endFraction}`);\n }\n return Promise.all(promises.map(registerMonitor));\n}\n//# sourceMappingURL=progress.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { env } from '../environment';\nimport * as util from '../util';\nimport { decodeWeights } from './io_utils';\nimport { monitorPromisesProgress } from './progress';\nimport { DTYPE_VALUE_SIZE_MAP } from './types';\n/**\n * Reads binary weights data from a number of URLs.\n *\n * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.\n * @param requestOptions RequestInit (options) for the HTTP requests.\n * @param fetchFunc Optional overriding value for the `window.fetch` function.\n * @param onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same\n * length as `fetchURLs`.\n */\nexport async function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {\n if (loadOptions == null) {\n loadOptions = {};\n }\n const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch :\n loadOptions.fetchFunc;\n // Create the requests for all of the weights in parallel.\n const requests = fetchURLs.map(fetchURL => fetchFunc(fetchURL, loadOptions.requestInit, { isBinary: true }));\n const fetchStartFraction = 0;\n const fetchEndFraction = 0.5;\n const responses = loadOptions.onProgress == null ?\n await Promise.all(requests) :\n await monitorPromisesProgress(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction);\n const bufferPromises = responses.map(response => response.arrayBuffer());\n const bufferStartFraction = 0.5;\n const bufferEndFraction = 1;\n const buffers = loadOptions.onProgress == null ?\n await Promise.all(bufferPromises) :\n await monitorPromisesProgress(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction);\n return buffers;\n}\n/**\n * Reads a weights manifest JSON configuration, fetches the weights and\n * returns them as `Tensor`s.\n *\n * @param manifest The weights manifest JSON.\n * @param filePathPrefix The path prefix for filenames given in the manifest.\n * Defaults to the empty string.\n * @param weightNames The names of the weights to be fetched.\n */\nexport async function loadWeights(manifest, filePathPrefix = '', weightNames, requestInit) {\n // TODO(nsthorat): Groups are currently fetched atomically. If you need a\n // single weight from a group, the whole group will be fetched. At a future\n // date, we should support fetching only the individual shards within a\n // group that are needed to reconstruct the requested weight.\n // TODO(cais): Use `decodeWeights` for implementation.\n const fetchWeights = (fetchUrls) => loadWeightsAsArrayBuffer(fetchUrls, { requestInit });\n const loadWeights = weightsLoaderFactory(fetchWeights);\n return loadWeights(manifest, filePathPrefix, weightNames);\n}\n/**\n * Creates a function, which reads a weights manifest JSON configuration,\n * fetches the weight files using the specified function and returns them as\n * `Tensor`s.\n *\n * ```js\n * // example for creating a nodejs weight loader, which reads the weight files\n * // from disk using fs.readFileSync\n *\n * import * as fs from 'fs'\n *\n * const fetchWeightsFromDisk = (filePaths: string[]) =>\n * filePaths.map(filePath => fs.readFileSync(filePath).buffer)\n *\n * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)\n *\n * const manifest = JSON.parse(\n * fs.readFileSync('./my_model-weights_manifest').toString()\n * )\n * const weightMap = await loadWeights(manifest, './')\n * ```\n * @param fetchWeightsFunction The function used for fetching the weight files.\n * @returns Weight loading function.\n */\nexport function weightsLoaderFactory(fetchWeightsFunction) {\n return async (manifest, filePathPrefix = '', weightNames) => {\n // Collect all the groups, weights, and their relative offsets to be\n // fetched.\n const groupIndicesToFetchMap = manifest.map(() => false);\n const groupWeightsToFetch = {};\n const weightsFound = weightNames != null ? weightNames.map(() => false) : [];\n const allManifestWeightNames = [];\n manifest.forEach((manifestGroupConfig, groupIndex) => {\n let groupOffset = 0;\n manifestGroupConfig.weights.forEach(weightsEntry => {\n const rawDtype = ('quantization' in weightsEntry) ?\n weightsEntry.quantization.dtype :\n weightsEntry.dtype;\n const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] *\n util.sizeFromShape(weightsEntry.shape);\n const enqueueWeightsForFetchingFn = () => {\n groupIndicesToFetchMap[groupIndex] = true;\n if (groupWeightsToFetch[groupIndex] == null) {\n groupWeightsToFetch[groupIndex] = [];\n }\n groupWeightsToFetch[groupIndex].push({\n manifestEntry: weightsEntry,\n groupOffset,\n sizeBytes: weightsBytes\n });\n };\n if (weightNames != null) {\n weightNames.forEach((weightName, weightIndex) => {\n if (weightName === weightsEntry.name) {\n enqueueWeightsForFetchingFn();\n weightsFound[weightIndex] = true;\n }\n });\n }\n else {\n enqueueWeightsForFetchingFn();\n }\n allManifestWeightNames.push(weightsEntry.name);\n groupOffset += weightsBytes;\n });\n });\n if (!weightsFound.every(found => found)) {\n const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);\n throw new Error(`Could not find weights in manifest with names: ` +\n `${weightsNotFound.join(', ')}. \\n` +\n `Manifest JSON has weights with names: ` +\n `${allManifestWeightNames.join(', ')}.`);\n }\n // Convert the one-hot boolean groupId => shouldFetch map to a list of group\n // IDs.\n const groupIndicesToFetch = groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {\n if (shouldFetch) {\n accumulator.push(i);\n }\n return accumulator;\n }, []);\n const fetchUrls = [];\n groupIndicesToFetch.forEach(i => {\n manifest[i].paths.forEach(filepath => {\n const fetchUrl = filePathPrefix +\n (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;\n fetchUrls.push(fetchUrl);\n });\n });\n const buffers = await fetchWeightsFunction(fetchUrls);\n const weightsTensorMap = {};\n let bufferIndexOffset = 0;\n groupIndicesToFetch.forEach(i => {\n const numBuffers = manifest[i].paths.length;\n let groupBytes = 0;\n for (let i = 0; i < numBuffers; i++) {\n groupBytes += buffers[bufferIndexOffset + i].byteLength;\n }\n // Create a buffer for the whole group.\n const groupBuffer = new ArrayBuffer(groupBytes);\n const groupByteBuffer = new Uint8Array(groupBuffer);\n let groupBufferOffset = 0;\n for (let i = 0; i < numBuffers; i++) {\n const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);\n groupByteBuffer.set(buffer, groupBufferOffset);\n groupBufferOffset += buffer.byteLength;\n }\n const weightsEntries = groupWeightsToFetch[i];\n weightsEntries.forEach(weightsEntry => {\n const byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);\n const nameToTensorMap = decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);\n for (const name in nameToTensorMap) {\n weightsTensorMap[name] = nameToTensorMap[name];\n }\n });\n bufferIndexOffset += numBuffers;\n });\n return weightsTensorMap;\n };\n}\n//# sourceMappingURL=weights_loader.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * IOHandler implementations based on HTTP requests in the web browser.\n *\n * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).\n */\nimport { env } from '../environment';\nimport { assert } from '../util';\nimport { concatenateArrayBuffers, getModelArtifactsInfoForJSON } from './io_utils';\nimport { IORouterRegistry } from './router_registry';\nimport { loadWeightsAsArrayBuffer } from './weights_loader';\nconst OCTET_STREAM_MIME_TYPE = 'application/octet-stream';\nconst JSON_TYPE = 'application/json';\nexport class HTTPRequest {\n constructor(path, loadOptions) {\n this.DEFAULT_METHOD = 'POST';\n if (loadOptions == null) {\n loadOptions = {};\n }\n this.weightPathPrefix = loadOptions.weightPathPrefix;\n this.onProgress = loadOptions.onProgress;\n this.weightUrlConverter = loadOptions.weightUrlConverter;\n if (loadOptions.fetchFunc != null) {\n assert(typeof loadOptions.fetchFunc === 'function', () => 'Must pass a function that matches the signature of ' +\n '`fetch` (see ' +\n 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');\n this.fetch = loadOptions.fetchFunc;\n }\n else {\n this.fetch = env().platform.fetch;\n }\n assert(path != null && path.length > 0, () => 'URL path for http must not be null, undefined or ' +\n 'empty.');\n if (Array.isArray(path)) {\n assert(path.length === 2, () => 'URL paths for http must have a length of 2, ' +\n `(actual length is ${path.length}).`);\n }\n this.path = path;\n if (loadOptions.requestInit != null &&\n loadOptions.requestInit.body != null) {\n throw new Error('requestInit is expected to have no pre-existing body, but has one.');\n }\n this.requestInit = loadOptions.requestInit || {};\n }\n async save(modelArtifacts) {\n if (modelArtifacts.modelTopology instanceof ArrayBuffer) {\n throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' +\n 'in binary formats yet.');\n }\n const init = Object.assign({ method: this.DEFAULT_METHOD }, this.requestInit);\n init.body = new FormData();\n const weightsManifest = [{\n paths: ['./model.weights.bin'],\n weights: modelArtifacts.weightSpecs,\n }];\n const modelTopologyAndWeightManifest = {\n modelTopology: modelArtifacts.modelTopology,\n format: modelArtifacts.format,\n generatedBy: modelArtifacts.generatedBy,\n convertedBy: modelArtifacts.convertedBy,\n weightsManifest\n };\n if (modelArtifacts.signature != null) {\n modelTopologyAndWeightManifest.signature = modelArtifacts.signature;\n }\n if (modelArtifacts.userDefinedMetadata != null) {\n modelTopologyAndWeightManifest.userDefinedMetadata =\n modelArtifacts.userDefinedMetadata;\n }\n if (modelArtifacts.modelInitializer != null) {\n modelTopologyAndWeightManifest.modelInitializer =\n modelArtifacts.modelInitializer;\n }\n init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], { type: JSON_TYPE }), 'model.json');\n if (modelArtifacts.weightData != null) {\n init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], { type: OCTET_STREAM_MIME_TYPE }), 'model.weights.bin');\n }\n const response = await this.fetch(this.path, init);\n if (response.ok) {\n return {\n modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),\n responses: [response],\n };\n }\n else {\n throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ` +\n `${response.status}.`);\n }\n }\n /**\n * Load model artifacts via HTTP request(s).\n *\n * See the documentation to `tf.io.http` for details on the saved\n * artifacts.\n *\n * @returns The loaded model artifacts (if loading succeeds).\n */\n async load() {\n const modelConfigRequest = await this.fetch(this.path, this.requestInit);\n if (!modelConfigRequest.ok) {\n throw new Error(`Request to ${this.path} failed with status code ` +\n `${modelConfigRequest.status}. Please verify this URL points to ` +\n `the model JSON of the model to load.`);\n }\n let modelConfig;\n try {\n modelConfig = await modelConfigRequest.json();\n }\n catch (e) {\n let message = `Failed to parse model JSON of response from ${this.path}.`;\n // TODO(nsthorat): Remove this after some time when we're comfortable that\n // .pb files are mostly gone.\n if (this.path.endsWith('.pb')) {\n message += ' Your path contains a .pb file extension. ' +\n 'Support for .pb models have been removed in TensorFlow.js 1.0 ' +\n 'in favor of .json models. You can re-convert your Python ' +\n 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' +\n 'or you can convert your.pb models with the \\'pb2json\\'' +\n 'NPM script in the tensorflow/tfjs-converter repository.';\n }\n else {\n message += ' Please make sure the server is serving valid ' +\n 'JSON for this request.';\n }\n throw new Error(message);\n }\n const modelTopology = modelConfig.modelTopology;\n const weightsManifest = modelConfig.weightsManifest;\n const generatedBy = modelConfig.generatedBy;\n const convertedBy = modelConfig.convertedBy;\n const format = modelConfig.format;\n const signature = modelConfig.signature;\n const userDefinedMetadata = modelConfig.userDefinedMetadata;\n // We do not allow both modelTopology and weightsManifest to be missing.\n if (modelTopology == null && weightsManifest == null) {\n throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` +\n `topology or manifest for weights.`);\n }\n let weightSpecs;\n let weightData;\n if (weightsManifest != null) {\n const results = await this.loadWeights(weightsManifest);\n [weightSpecs, weightData] = results;\n }\n const artifacts = {\n modelTopology,\n weightSpecs,\n weightData,\n generatedBy,\n convertedBy,\n format\n };\n if (signature != null) {\n artifacts.signature = signature;\n }\n if (userDefinedMetadata != null) {\n artifacts.userDefinedMetadata = userDefinedMetadata;\n }\n const initializer = modelConfig.modelInitializer;\n if (initializer) {\n artifacts.modelInitializer = initializer;\n }\n return artifacts;\n }\n async loadWeights(weightsManifest) {\n const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;\n const [prefix, suffix] = parseUrl(weightPath);\n const pathPrefix = this.weightPathPrefix || prefix;\n const weightSpecs = [];\n for (const entry of weightsManifest) {\n weightSpecs.push(...entry.weights);\n }\n const fetchURLs = [];\n const urlPromises = [];\n for (const weightsGroup of weightsManifest) {\n for (const path of weightsGroup.paths) {\n if (this.weightUrlConverter != null) {\n urlPromises.push(this.weightUrlConverter(path));\n }\n else {\n fetchURLs.push(pathPrefix + path + suffix);\n }\n }\n }\n if (this.weightUrlConverter) {\n fetchURLs.push(...await Promise.all(urlPromises));\n }\n const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {\n requestInit: this.requestInit,\n fetchFunc: this.fetch,\n onProgress: this.onProgress\n });\n return [weightSpecs, concatenateArrayBuffers(buffers)];\n }\n}\nHTTPRequest.URL_SCHEME_REGEX = /^https?:\\/\\//;\n/**\n * Extract the prefix and suffix of the url, where the prefix is the path before\n * the last file, and suffix is the search params after the last file.\n * ```\n * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'\n * [prefix, suffix] = parseUrl(url)\n * // prefix = 'http://tfhub.dev/model/1/'\n * // suffix = '?tfjs-format=file'\n * ```\n * @param url the model url to be parsed.\n */\nexport function parseUrl(url) {\n const lastSlash = url.lastIndexOf('/');\n const lastSearchParam = url.lastIndexOf('?');\n const prefix = url.substring(0, lastSlash);\n const suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';\n return [prefix + '/', suffix];\n}\nexport function isHTTPScheme(url) {\n return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;\n}\nexport const httpRouter = (url, loadOptions) => {\n if (typeof fetch === 'undefined' &&\n (loadOptions == null || loadOptions.fetchFunc == null)) {\n // `http` uses `fetch` or `node-fetch`, if one wants to use it in\n // an environment that is not the browser or node they have to setup a\n // global fetch polyfill.\n return null;\n }\n else {\n let isHTTP = true;\n if (Array.isArray(url)) {\n isHTTP = url.every(urlItem => isHTTPScheme(urlItem));\n }\n else {\n isHTTP = isHTTPScheme(url);\n }\n if (isHTTP) {\n return http(url, loadOptions);\n }\n }\n return null;\n};\nIORouterRegistry.registerSaveRouter(httpRouter);\nIORouterRegistry.registerLoadRouter(httpRouter);\n/**\n * Creates an IOHandler subtype that sends model artifacts to HTTP server.\n *\n * An HTTP request of the `multipart/form-data` mime type will be sent to the\n * `path` URL. The form data includes artifacts that represent the topology\n * and/or weights of the model. In the case of Keras-style `tf.Model`, two\n * blobs (files) exist in form-data:\n * - A JSON file consisting of `modelTopology` and `weightsManifest`.\n * - A binary weights file consisting of the concatenated weight values.\n * These files are in the same format as the one generated by\n * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).\n *\n * The following code snippet exemplifies the client-side code that uses this\n * function:\n *\n * ```js\n * const model = tf.sequential();\n * model.add(\n * tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));\n *\n * const saveResult = await model.save(tf.io.http(\n * 'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));\n * console.log(saveResult);\n * ```\n *\n * If the default `POST` method is to be used, without any custom parameters\n * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:\n *\n * ```js\n * const saveResult = await model.save('http://model-server:5000/upload');\n * ```\n *\n * The following GitHub Gist\n * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864\n * implements a server based on [flask](https://github.com/pallets/flask) that\n * can receive the request. Upon receiving the model artifacts via the requst,\n * this particular server reconsistutes instances of [Keras\n * Models](https://keras.io/models/model/) in memory.\n *\n *\n * @param path A URL path to the model.\n * Can be an absolute HTTP path (e.g.,\n * 'http://localhost:8000/model-upload)') or a relative path (e.g.,\n * './model-upload').\n * @param requestInit Request configurations to be used when sending\n * HTTP request to server using `fetch`. It can contain fields such as\n * `method`, `credentials`, `headers`, `mode`, etc. See\n * https://developer.mozilla.org/en-US/docs/Web/API/Request/Request\n * for more information. `requestInit` must not have a body, because the\n * body will be set by TensorFlow.js. File blobs representing the model\n * topology (filename: 'model.json') and the weights of the model (filename:\n * 'model.weights.bin') will be appended to the body. If `requestInit` has a\n * `body`, an Error will be thrown.\n * @param loadOptions Optional configuration for the loading. It includes the\n * following fields:\n * - weightPathPrefix Optional, this specifies the path prefix for weight\n * files, by default this is calculated from the path param.\n * - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,\n * the `fetch` from node-fetch can be used here.\n * - onProgress Optional, progress callback function, fired periodically\n * before the load is completed.\n * @returns An instance of `IOHandler`.\n *\n * @doc {\n * heading: 'Models',\n * subheading: 'Loading',\n * namespace: 'io',\n * ignoreCI: true\n * }\n */\nexport function http(path, loadOptions) {\n return new HTTPRequest(path, loadOptions);\n}\n/**\n * Deprecated. Use `tf.io.http`.\n * @param path\n * @param loadOptions\n */\nexport function browserHTTPRequest(path, loadOptions) {\n return http(path, loadOptions);\n}\n//# sourceMappingURL=http.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nclass PassthroughLoader {\n constructor(modelArtifacts) {\n this.modelArtifacts = modelArtifacts;\n }\n async load() {\n return this.modelArtifacts;\n }\n}\nclass PassthroughSaver {\n constructor(saveHandler) {\n this.saveHandler = saveHandler;\n }\n async save(modelArtifacts) {\n return this.saveHandler(modelArtifacts);\n }\n}\n/**\n * Creates an IOHandler that loads model artifacts from memory.\n *\n * When used in conjunction with `tf.loadLayersModel`, an instance of\n * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.\n *\n * ```js\n * const model = await tf.loadLayersModel(tf.io.fromMemory(\n * modelTopology, weightSpecs, weightData));\n * ```\n *\n * @param modelArtifacts a object containing model topology (i.e., parsed from\n * the JSON format).\n * @param weightSpecs An array of `WeightsManifestEntry` objects describing the\n * names, shapes, types, and quantization of the weight data.\n * @param weightData A single `ArrayBuffer` containing the weight data,\n * concatenated in the order described by the weightSpecs.\n * @param trainingConfig Model training configuration. Optional.\n *\n * @returns A passthrough `IOHandler` that simply loads the provided data.\n */\nexport function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {\n if (arguments.length === 1) {\n const isModelArtifacts = modelArtifacts.modelTopology != null ||\n modelArtifacts.weightSpecs != null;\n if (isModelArtifacts) {\n return new PassthroughLoader(modelArtifacts);\n }\n else {\n // Legacy support: with only modelTopology.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({ modelTopology: modelArtifacts });\n }\n }\n else {\n // Legacy support.\n // TODO(cais): Remove this deprecated API.\n console.warn('Please call tf.io.fromMemory() with only one argument. ' +\n 'The argument should be of type ModelArtifacts. ' +\n 'The multi-argument signature of tf.io.fromMemory() has been ' +\n 'deprecated and will be removed in a future release.');\n return new PassthroughLoader({\n modelTopology: modelArtifacts,\n weightSpecs,\n weightData,\n trainingConfig\n });\n }\n}\n/**\n * Creates an IOHandler that passes saved model artifacts to a callback.\n *\n * ```js\n * function handleSave(artifacts) {\n * // ... do something with the artifacts ...\n * return {modelArtifactsInfo: {...}, ...};\n * }\n *\n * const saveResult = model.save(tf.io.withSaveHandler(handleSave));\n * ```\n *\n * @param saveHandler A function that accepts a `ModelArtifacts` and returns a\n * `SaveResult`.\n */\nexport function withSaveHandler(saveHandler) {\n return new PassthroughSaver(saveHandler);\n}\n//# sourceMappingURL=passthrough.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { BatchMatMul } from '../kernel_names';\nimport { makeTypesMatch } from '../tensor_util';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Computes the dot product of two matrices, A * B. These must be matrices.\n *\n * ```js\n * const a = tf.tensor2d([1, 2], [1, 2]);\n * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);\n *\n * a.matMul(b).print(); // or tf.matMul(a, b)\n * ```\n * @param a First matrix in dot product operation.\n * @param b Second matrix in dot product operation.\n * @param transposeA If true, `a` is transposed before multiplication.\n * @param transposeB If true, `b` is transposed before multiplication.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction matMul_(a, b, transposeA = false, transposeB = false) {\n let $a = convertToTensor(a, 'a', 'matMul');\n let $b = convertToTensor(b, 'b', 'matMul');\n [$a, $b] = makeTypesMatch($a, $b);\n const inputs = { a: $a, b: $b };\n const attrs = { transposeA, transposeB };\n return ENGINE.runKernel(BatchMatMul, inputs, attrs);\n}\nexport const matMul = op({ matMul_ });\n//# sourceMappingURL=mat_mul.js.map","/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { OneHot } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport { op } from './operation';\n/**\n * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take\n * value `onValue` (defaults to 1), while all other locations take value\n * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank\n * `R+1` with the last axis of size `depth`.\n *\n * ```js\n * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();\n * ```\n *\n * @param indices `tf.Tensor` of indices with dtype `int32`.\n * @param depth The depth of the one hot dimension.\n * @param onValue A number used to fill in the output when the index matches\n * the location.\n * @param offValue A number used to fill in the output when the index does\n * not match the location.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nfunction oneHot_(indices, depth, onValue = 1, offValue = 0) {\n if (depth < 2) {\n throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);\n }\n const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');\n const inputs = { indices: $indices };\n const attrs = { depth, onValue, offValue };\n return ENGINE.runKernel(OneHot, inputs, attrs);\n}\nexport const oneHot = op({ oneHot_ });\n//# sourceMappingURL=one_hot.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { Transpose } from '../kernel_names';\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { op } from './operation';\n/**\n * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.\n *\n * The returned `tf.Tensor`'s dimension `i` will correspond to the input\n * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,\n * where `n` is the rank of the input `tf.Tensor`. Hence by default, this\n * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.\n *\n * ```js\n * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);\n *\n * a.transpose().print(); // or tf.transpose(a)\n * ```\n *\n * @param x The tensor to transpose.\n * @param perm The permutation of the dimensions of a.\n *\n * @doc {heading: 'Operations', subheading: 'Matrices'}\n */\nfunction transpose_(x, perm) {\n const $x = convertToTensor(x, 'x', 'transpose');\n if (perm == null) {\n perm = $x.shape.map((s, i) => i).reverse();\n }\n util.assert($x.rank === perm.length, () => `Error in transpose: rank of input ${$x.rank} ` +\n `must match length of perm ${perm}.`);\n perm.forEach(axis => {\n util.assert(axis >= 0 && axis < $x.rank, () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` +\n ` but got ${perm}`);\n });\n if ($x.rank <= 1) {\n return $x.clone();\n }\n const inputs = { x: $x };\n const attrs = { perm };\n return ENGINE.runKernel(Transpose, inputs, attrs);\n}\nexport const transpose = op({ transpose_ });\n//# sourceMappingURL=transpose.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { convertToTensor } from '../tensor_util_env';\nimport * as util from '../util';\nimport { cast } from './cast';\nimport { matMul } from './mat_mul';\nimport { oneHot } from './one_hot';\nimport { op } from './operation';\nimport { transpose } from './transpose';\n/**\n * Computes the confusion matrix from true labels and predicted labels.\n *\n * ```js\n * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');\n * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');\n * const numClasses = 3;\n * const out = tf.math.confusionMatrix(labels, predictions, numClasses);\n * out.print();\n * // Expected output matrix:\n * // [[2, 0, 0],\n * // [0, 1, 1],\n * // [0, 0, 1]]\n * ```\n *\n * @param labels The target labels, assumed to be 0-based integers\n * for the classes. The shape is `[numExamples]`, where\n * `numExamples` is the number of examples included.\n * @param predictions The predicted classes, assumed to be\n * 0-based integers for the classes. Must have the same shape as `labels`.\n * @param numClasses Number of all classes, as an integer.\n * Its value must be larger than the largest element in `labels` and\n * `predictions`.\n * @returns The confusion matrix as a int32-type 2D tensor. The value at\n * row `r` and column `c` is the number of times examples of actual class\n * `r` were predicted as class `c`.\n *\n * @doc {heading: 'Operations', subheading: 'Evaluation'}\n */\nexport function confusionMatrix_(labels, predictions, numClasses) {\n const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');\n const $predictions = convertToTensor(predictions, 'predictions', 'confusionMatrix');\n util.assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), () => `If provided, numClasses must be a positive integer, ` +\n `but got ${numClasses}`);\n util.assert($labels.rank === 1, () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);\n util.assert($predictions.rank === 1, () => `Expected the rank of predictions to be 1, ` +\n `but got ${$predictions.rank}`);\n util.assert($labels.shape[0] === $predictions.shape[0], () => `Mismatch in the number of examples: ` +\n `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` +\n `Labels and predictions should have the same number of elements.`);\n util.assert(numClasses > 0 && Number.isInteger(numClasses), () => `numClasses is required to be a positive integer, but got ` +\n `${numClasses}`);\n // TODO(cais): In the future, if oneHot supports tensors inputs for\n // `numClasses`, `confusionMatrix` can make `numClasses` optional.\n const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses);\n const oneHotPredictions = oneHot(cast($predictions, 'int32'), numClasses);\n const oneHotLabelsT = transpose(oneHotLabels);\n const product = matMul(oneHotLabelsT, oneHotPredictions);\n return cast(product, 'int32');\n}\nexport const confusionMatrix = op({ confusionMatrix_ });\n//# sourceMappingURL=confusion_matrix.js.map","/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { inferShape } from '../tensor_util_env';\nimport { assertNonNull } from '../util';\nimport { makeTensor } from './tensor_ops_util';\n/**\n * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.\n *\n * The same functionality can be achieved with `tf.tensor`, but in general\n * we recommend using `tf.tensor3d` as it makes the code more readable.\n *\n * ```js\n * // Pass a nested array.\n * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();\n * ```\n * ```js\n * // Pass a flat array and specify a shape.\n * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();\n * ```\n *\n * @param values The values of the tensor. Can be nested array of numbers,\n * or a flat array, or a `TypedArray`.\n * @param shape The shape of the tensor. If not provided, it is inferred from\n * `values`.\n * @param dtype The data type.\n *\n * @doc {heading: 'Tensors', subheading: 'Creation'}\n */\nexport function tensor3d(values, shape, dtype) {\n assertNonNull(values);\n if (shape != null && shape.length !== 3) {\n throw new Error('tensor3d() requires shape to have three numbers');\n }\n const inferredShape = inferShape(values, dtype);\n if (inferredShape.length !== 3 && inferredShape.length !== 1) {\n throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');\n }\n if (inferredShape.length === 1 && shape == null) {\n throw new Error('tensor3d() requires shape to be provided when `values` ' +\n 'are a flat array');\n }\n return makeTensor(values, shape, inferredShape, dtype);\n}\n//# sourceMappingURL=tensor3d.js.map","/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport { ENGINE } from '../engine';\nimport { env } from '../environment';\nimport { FromPixels } from '../kernel_names';\nimport { getKernel } from '../kernel_registry';\nimport { Tensor } from '../tensor';\nimport { convertToTensor } from '../tensor_util_env';\nimport { cast } from './cast';\nimport { op } from './operation';\nimport { tensor3d } from './tensor3d';\nlet fromPixels2DContext;\n/**\n * Creates a `tf.Tensor` from an image.\n *\n * ```js\n * const image = new ImageData(1, 1);\n * image.data[0] = 100;\n * image.data[1] = 150;\n * image.data[2] = 200;\n * image.data[3] = 255;\n *\n * tf.browser.fromPixels(image).print();\n * ```\n *\n * @param pixels The input image to construct the tensor from. The\n * supported image types are all 4-channel. You can also pass in an image\n * object with following attributes:\n * `{data: Uint8Array; width: number; height: number}`\n * @param numChannels The number of channels of the output tensor. A\n * numChannels value less than 4 allows you to ignore channels. Defaults to\n * 3 (ignores alpha channel of input image).\n *\n * @returns A Tensor3D with the shape `[height, width, numChannels]`.\n *\n * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}\n */\nfunction fromPixels_(pixels, numChannels = 3) {\n // Sanity checks.\n if (numChannels > 4) {\n throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');\n }\n if (pixels == null) {\n throw new Error('pixels passed to tf.browser.fromPixels() can not be null');\n }\n let isPixelData = false;\n let isImageData = false;\n let isVideo = false;\n let isImage = false;\n let isCanvasLike = false;\n let isImageBitmap = false;\n if (pixels.data instanceof Uint8Array) {\n isPixelData = true;\n }\n else if (typeof (ImageData) !== 'undefined' && pixels instanceof ImageData) {\n isImageData = true;\n }\n else if (typeof (HTMLVideoElement) !== 'undefined' &&\n pixels instanceof HTMLVideoElement) {\n isVideo = true;\n }\n else if (typeof (HTMLImageElement) !== 'undefined' &&\n pixels instanceof HTMLImageElement) {\n isImage = true;\n // tslint:disable-next-line: no-any\n }\n else if (pixels.getContext != null) {\n isCanvasLike = true;\n }\n else if (typeof (ImageBitmap) !== 'undefined' && pixels instanceof ImageBitmap) {\n isImageBitmap = true;\n }\n else {\n throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' +\n `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` +\n `in browser, or OffscreenCanvas, ImageData in webworker` +\n ` or {data: Uint32Array, width: number, height: number}, ` +\n `but was ${pixels.constructor.name}`);\n }\n if (isVideo) {\n const HAVE_CURRENT_DATA_READY_STATE = 2;\n if (isVideo &&\n pixels.readyState <\n HAVE_CURRENT_DATA_READY_STATE) {\n throw new Error('The video element has not loaded data yet. Please wait for ' +\n '`loadeddata` event on the
': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '
': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(2476);\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};"],"sourceRoot":""} \ No newline at end of file diff --git a/danfojs-browser/package.json b/danfojs-browser/package.json index 0f4ef47c..25a41242 100644 --- a/danfojs-browser/package.json +++ b/danfojs-browser/package.json @@ -1,6 +1,6 @@ { "name": "danfojs", - "version": "0.2.4", + "version": "0.2.5", "description": "JavaScript library providing high performance, intuitive, and easy to use data structures for manipulating and processing structured data.", "main": "lib/bundle.js", "types": "types/index.d.ts", diff --git a/danfojs-browser/src/index.js b/danfojs-browser/src/index.js index f3beb624..635cd8d7 100644 --- a/danfojs-browser/src/index.js +++ b/danfojs-browser/src/index.js @@ -16,4 +16,4 @@ export { Str } from "./core/strings"; export { Utils } from "./core/utils"; export * as tf from "@tensorflow/tfjs"; -export const _version = "0.2.4"; +export const _version = "0.2.5"; diff --git a/danfojs-browser/yarn.lock b/danfojs-browser/yarn.lock index e48d0d63..b8110db6 100644 --- a/danfojs-browser/yarn.lock +++ b/danfojs-browser/yarn.lock @@ -894,35 +894,35 @@ readdirp "^2.2.1" upath "^1.1.1" -"@tensorflow/tfjs-backend-cpu@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.2.0.tgz#847a50375586c7329c63208d8d9af791a4bd850d" - integrity sha512-L3Pp7FHO92BaeG8Uuc/RJMJ/e61UrIbKgFHS3MKr0zcbmEsqGfos6/5yR1EHj7SoYG2nPlC5+6HxbYy0zp22IA== +"@tensorflow/tfjs-backend-cpu@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.3.0.tgz#aa0a3ed2c6237a6e0c169678c5bd4b5a88766b1c" + integrity sha512-DLctv+PUZni26kQW1hq8jwQQ8u+GGc/p764WQIC4/IDagGtfGAUW1mHzWcTxtni2l4re1VrwE41ogWLhv4sGHg== dependencies: "@types/seedrandom" "2.4.27" seedrandom "2.4.3" -"@tensorflow/tfjs-backend-webgl@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.2.0.tgz#e80f2c6cf47321fd89a6e83491cf37f8afb662ae" - integrity sha512-WORXpDt5Ey5/+a4NioyrJkfbJUlleaSELpHnxeDsGt6BpRC2P/1pVJS1IjnBD/f4QlOm3mhouN2Oq28dRhRvqA== +"@tensorflow/tfjs-backend-webgl@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.3.0.tgz#29dd665f6a856c9defcb9108164f845e1fdcd02e" + integrity sha512-GWCtXbrjPTyye3ooId9GlcNDwnIMskZarUpNIQ5g/zeISLfwEQoutA/UqJF+HzuEHgGMsWFkmaO3xKVT7UMpdg== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.2.0" + "@tensorflow/tfjs-backend-cpu" "3.3.0" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" "@types/webgl2" "0.0.5" seedrandom "2.4.3" -"@tensorflow/tfjs-converter@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.2.0.tgz#4e80ced274aad2a3581a66a158237eeda7370a64" - integrity sha512-iE2Q0naHR8OVcMc9RluebMObsPysru7X1y+mWtkPNnYlNUJORxfkEitrMbVDAKw6lsivIfo4Ar5UcstiG8/ckQ== +"@tensorflow/tfjs-converter@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.3.0.tgz#d9f2ffd0fbdbb47c07d5fd7c3e5dc180cff317aa" + integrity sha512-k57wN4yelePhmO9orcT/wzGMIuyedrMpVtg0FhxpV6BQu0+TZ/ti3W4Kb97GWJsoHKXMoing9SnioKfVnBW6hw== -"@tensorflow/tfjs-core@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.2.0.tgz#cae4d3d2e58dacae7a260b8d960126e0efb09417" - integrity sha512-MZnTk9wcJai5lTfkC8T1rr6/M9C4eO0DfojZghopZXDflCTndLPIKcudx6E8qfrmZOkRSqMIwB7A8UFs7f+3Kg== +"@tensorflow/tfjs-core@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.3.0.tgz#3d26bd03cb58e0ecf46c96d118c39c4a90b7f5ed" + integrity sha512-6G+LcCiQBl4Kza5mDbWbf8QSWBTW3l7SDjGhQzMO1ITtQatHzxkuHGHcJ4CTUJvNA0JmKf4QJWOvlFqEmxwyLQ== dependencies: "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" @@ -930,30 +930,30 @@ node-fetch "~2.6.1" seedrandom "2.4.3" -"@tensorflow/tfjs-data@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.2.0.tgz#886f22309e91e69d686f27fba1d339d693bc7f1a" - integrity sha512-fG4rYJlxh/B9fzgc+/qdj5gPI485RsDUM99mErxovlh3UMIdRgMeHHdFse44VlyAShEAgsOehuWovhY5520kEw== +"@tensorflow/tfjs-data@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.3.0.tgz#ba943bd6a486fa4cb3ca312c12646ea4dcf6cce4" + integrity sha512-0x28tRe6RJu5GmYq3IYN2GNnOgXU0nY+o6zZrlijkK+W3vjSTJlZzaBSifoeD6J8gzVpjs8W8qd/JKHQ1MQp8w== dependencies: "@types/node-fetch" "^2.1.2" node-fetch "~2.6.1" -"@tensorflow/tfjs-layers@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.2.0.tgz#2f243c5044685ed22e288c1ceb063b817b29e569" - integrity sha512-TgTpH6RI+NmL4s8pQ76wkq15p79SfSQLOfFL2rGmJgatQRuA/mxLlH5GLir5HwwER3a0Vj8lMbexxCAGTqr2Xg== +"@tensorflow/tfjs-layers@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.3.0.tgz#d2097c5b22ec12e5fdbe470a88ca0a34a95ca11f" + integrity sha512-qO+TL2I29vWUiuFcQJXNyayWFYagwR+SIfbex8p5jjYaCGHGwE5GQcrH+ngoCgKZxm5tdMvYJsJPnih2M3fYzQ== -"@tensorflow/tfjs@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.2.0.tgz#503e62a7996204cdd3103d488babdbf8bf622954" - integrity sha512-rgcHHhzI+JVl206eMbYO8WzBW3DO9pinEbgtUWdxjfk+a4ojlqvJ34RPEISMSQZRR5KRCA7E/dHFv9+EULfqmw== - dependencies: - "@tensorflow/tfjs-backend-cpu" "3.2.0" - "@tensorflow/tfjs-backend-webgl" "3.2.0" - "@tensorflow/tfjs-converter" "3.2.0" - "@tensorflow/tfjs-core" "3.2.0" - "@tensorflow/tfjs-data" "3.2.0" - "@tensorflow/tfjs-layers" "3.2.0" +"@tensorflow/tfjs@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.3.0.tgz#db92099dd48c0eb1c1673f705125d2b57496a1a3" + integrity sha512-xo22GCUCGcPtNGIdDpLPrp9ms3atXmzX8AF4y3aIBEwK5KlvGe+ZhcoQ2xEOCPQGBr7NB7AO6rwT8gRoziAHVg== + dependencies: + "@tensorflow/tfjs-backend-cpu" "3.3.0" + "@tensorflow/tfjs-backend-webgl" "3.3.0" + "@tensorflow/tfjs-converter" "3.3.0" + "@tensorflow/tfjs-core" "3.3.0" + "@tensorflow/tfjs-data" "3.3.0" + "@tensorflow/tfjs-layers" "3.3.0" argparse "^1.0.10" chalk "^4.1.0" core-js "3" diff --git a/danfojs-node/README.md b/danfojs-node/README.md index 863ef659..481bc5d6 100644 --- a/danfojs-node/README.md +++ b/danfojs-node/README.md @@ -51,7 +51,7 @@ easy and intuitive. It is heavily inspired by [Pandas](https://pandas.pydata.org To use Danfo.js via script tags, copy and paste the CDN below to the body of your HTML file ```html - + ``` ### Example Usage in the Browser @@ -66,7 +66,7 @@ To use Danfo.js via script tags, copy and paste the CDN below to the body of you - + Document diff --git a/danfojs-node/dist/index.js b/danfojs-node/dist/index.js index f69b177b..a3e7a498 100644 --- a/danfojs-node/dist/index.js +++ b/danfojs-node/dist/index.js @@ -154,5 +154,5 @@ var _utils = require("./core/utils"); var _tf = _interopRequireWildcard(require("@tensorflow/tfjs-node")); exports.tf = _tf; -const _version = "0.2.5"; +const _version = "0.2.6"; exports._version = _version; \ No newline at end of file diff --git a/danfojs-node/dist/io/reader.js b/danfojs-node/dist/io/reader.js index 558ddad8..052214e2 100644 --- a/danfojs-node/dist/io/reader.js +++ b/danfojs-node/dist/io/reader.js @@ -26,7 +26,7 @@ const read_csv = async (source, configs = {}) => { } = configs; if (!(source.startsWith("file://") || source.startsWith("http"))) { - source = `file://${process.cwd()}/${source}`; + source = source.startsWith("/") ? `file://${source}` : `file://${process.cwd()}/${source}`; } let tfdata = []; diff --git a/danfojs-node/package.json b/danfojs-node/package.json index 02cf2831..db1241bd 100644 --- a/danfojs-node/package.json +++ b/danfojs-node/package.json @@ -1,6 +1,6 @@ { "name": "danfojs-node", - "version": "0.2.5", + "version": "0.2.6", "description": "JavaScript library providing high performance, intuitive, and easy to use data structures for manipulating and processing structured data.", "main": "dist/index.js", "types": "types/index.d.ts", diff --git a/danfojs-node/src/index.js b/danfojs-node/src/index.js index a487cf63..131f67e7 100644 --- a/danfojs-node/src/index.js +++ b/danfojs-node/src/index.js @@ -16,4 +16,4 @@ export { Str } from "./core/strings"; export { Utils } from "./core/utils"; export * as tf from "@tensorflow/tfjs-node"; -export const _version = "0.2.5"; +export const _version = "0.2.6"; diff --git a/danfojs-node/yarn.lock b/danfojs-node/yarn.lock index 0e27a3b9..9e1c7470 100644 --- a/danfojs-node/yarn.lock +++ b/danfojs-node/yarn.lock @@ -907,35 +907,35 @@ readdirp "^2.2.1" upath "^1.1.1" -"@tensorflow/tfjs-backend-cpu@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.2.0.tgz#847a50375586c7329c63208d8d9af791a4bd850d" - integrity sha512-L3Pp7FHO92BaeG8Uuc/RJMJ/e61UrIbKgFHS3MKr0zcbmEsqGfos6/5yR1EHj7SoYG2nPlC5+6HxbYy0zp22IA== +"@tensorflow/tfjs-backend-cpu@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.3.0.tgz#aa0a3ed2c6237a6e0c169678c5bd4b5a88766b1c" + integrity sha512-DLctv+PUZni26kQW1hq8jwQQ8u+GGc/p764WQIC4/IDagGtfGAUW1mHzWcTxtni2l4re1VrwE41ogWLhv4sGHg== dependencies: "@types/seedrandom" "2.4.27" seedrandom "2.4.3" -"@tensorflow/tfjs-backend-webgl@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.2.0.tgz#e80f2c6cf47321fd89a6e83491cf37f8afb662ae" - integrity sha512-WORXpDt5Ey5/+a4NioyrJkfbJUlleaSELpHnxeDsGt6BpRC2P/1pVJS1IjnBD/f4QlOm3mhouN2Oq28dRhRvqA== +"@tensorflow/tfjs-backend-webgl@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.3.0.tgz#29dd665f6a856c9defcb9108164f845e1fdcd02e" + integrity sha512-GWCtXbrjPTyye3ooId9GlcNDwnIMskZarUpNIQ5g/zeISLfwEQoutA/UqJF+HzuEHgGMsWFkmaO3xKVT7UMpdg== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.2.0" + "@tensorflow/tfjs-backend-cpu" "3.3.0" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" "@types/webgl2" "0.0.5" seedrandom "2.4.3" -"@tensorflow/tfjs-converter@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.2.0.tgz#4e80ced274aad2a3581a66a158237eeda7370a64" - integrity sha512-iE2Q0naHR8OVcMc9RluebMObsPysru7X1y+mWtkPNnYlNUJORxfkEitrMbVDAKw6lsivIfo4Ar5UcstiG8/ckQ== +"@tensorflow/tfjs-converter@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.3.0.tgz#d9f2ffd0fbdbb47c07d5fd7c3e5dc180cff317aa" + integrity sha512-k57wN4yelePhmO9orcT/wzGMIuyedrMpVtg0FhxpV6BQu0+TZ/ti3W4Kb97GWJsoHKXMoing9SnioKfVnBW6hw== -"@tensorflow/tfjs-core@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.2.0.tgz#cae4d3d2e58dacae7a260b8d960126e0efb09417" - integrity sha512-MZnTk9wcJai5lTfkC8T1rr6/M9C4eO0DfojZghopZXDflCTndLPIKcudx6E8qfrmZOkRSqMIwB7A8UFs7f+3Kg== +"@tensorflow/tfjs-core@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.3.0.tgz#3d26bd03cb58e0ecf46c96d118c39c4a90b7f5ed" + integrity sha512-6G+LcCiQBl4Kza5mDbWbf8QSWBTW3l7SDjGhQzMO1ITtQatHzxkuHGHcJ4CTUJvNA0JmKf4QJWOvlFqEmxwyLQ== dependencies: "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" @@ -943,25 +943,25 @@ node-fetch "~2.6.1" seedrandom "2.4.3" -"@tensorflow/tfjs-data@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.2.0.tgz#886f22309e91e69d686f27fba1d339d693bc7f1a" - integrity sha512-fG4rYJlxh/B9fzgc+/qdj5gPI485RsDUM99mErxovlh3UMIdRgMeHHdFse44VlyAShEAgsOehuWovhY5520kEw== +"@tensorflow/tfjs-data@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.3.0.tgz#ba943bd6a486fa4cb3ca312c12646ea4dcf6cce4" + integrity sha512-0x28tRe6RJu5GmYq3IYN2GNnOgXU0nY+o6zZrlijkK+W3vjSTJlZzaBSifoeD6J8gzVpjs8W8qd/JKHQ1MQp8w== dependencies: "@types/node-fetch" "^2.1.2" node-fetch "~2.6.1" -"@tensorflow/tfjs-layers@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.2.0.tgz#2f243c5044685ed22e288c1ceb063b817b29e569" - integrity sha512-TgTpH6RI+NmL4s8pQ76wkq15p79SfSQLOfFL2rGmJgatQRuA/mxLlH5GLir5HwwER3a0Vj8lMbexxCAGTqr2Xg== +"@tensorflow/tfjs-layers@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.3.0.tgz#d2097c5b22ec12e5fdbe470a88ca0a34a95ca11f" + integrity sha512-qO+TL2I29vWUiuFcQJXNyayWFYagwR+SIfbex8p5jjYaCGHGwE5GQcrH+ngoCgKZxm5tdMvYJsJPnih2M3fYzQ== -"@tensorflow/tfjs-node@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-node/-/tfjs-node-3.2.0.tgz#971726d289b8db48ba9c6172b93c5ce89b676a75" - integrity sha512-4k8HvT+lFauy30EMoKhLvXykQ4xKfi5yTs0EdWue80z9XNNDIMG3932owBpWMeaRb5P0ONUuv9MSu+pi17rNnA== +"@tensorflow/tfjs-node@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-node/-/tfjs-node-3.3.0.tgz#7066b619b067eec480af4c13ec701a9c2bbaeaa6" + integrity sha512-grRgaXereQt5mQnu31gHCPkzA6SGReXW94b5FEMk1Psenmb0APnT7MGgZbujiMruQ81vG0/8gYA28uyZeZKcJw== dependencies: - "@tensorflow/tfjs" "3.2.0" + "@tensorflow/tfjs" "3.3.0" adm-zip "^0.4.11" google-protobuf "^3.9.2" https-proxy-agent "^2.2.1" @@ -970,17 +970,17 @@ rimraf "^2.6.2" tar "^4.4.6" -"@tensorflow/tfjs@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.2.0.tgz#503e62a7996204cdd3103d488babdbf8bf622954" - integrity sha512-rgcHHhzI+JVl206eMbYO8WzBW3DO9pinEbgtUWdxjfk+a4ojlqvJ34RPEISMSQZRR5KRCA7E/dHFv9+EULfqmw== - dependencies: - "@tensorflow/tfjs-backend-cpu" "3.2.0" - "@tensorflow/tfjs-backend-webgl" "3.2.0" - "@tensorflow/tfjs-converter" "3.2.0" - "@tensorflow/tfjs-core" "3.2.0" - "@tensorflow/tfjs-data" "3.2.0" - "@tensorflow/tfjs-layers" "3.2.0" +"@tensorflow/tfjs@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.3.0.tgz#db92099dd48c0eb1c1673f705125d2b57496a1a3" + integrity sha512-xo22GCUCGcPtNGIdDpLPrp9ms3atXmzX8AF4y3aIBEwK5KlvGe+ZhcoQ2xEOCPQGBr7NB7AO6rwT8gRoziAHVg== + dependencies: + "@tensorflow/tfjs-backend-cpu" "3.3.0" + "@tensorflow/tfjs-backend-webgl" "3.3.0" + "@tensorflow/tfjs-converter" "3.3.0" + "@tensorflow/tfjs-core" "3.3.0" + "@tensorflow/tfjs-data" "3.3.0" + "@tensorflow/tfjs-layers" "3.3.0" argparse "^1.0.10" chalk "^4.1.0" core-js "3"